1. SnowMirror High Availability Cluster

Every server (including applications running on that server) faces the potential threat of failure. SnowMirror understands how important it is for customers to have their data up-to-date without interruptions. Therefore, SnowMirror comes with a support for high availability cluster (HA).

1.1. High Availability Cluster

A high availability cluster is a group of computers which run the same application (SnowMirror). When one server fails there is still the second one which can do all the work. Because of that, the potential downtime is reduced to a minimum.

SnowMirror can be installed on several servers. All the SnowMirror installations connect to the same configuration and mirror database.

If you create a synchronization on the first SnowMirror installation, the second SnowMirror installation will see the synchronization. Why? Because all the installations use the same configuration database.

ha cluster schema

1.2. Installation

Prerequisites:

  • Have two or more servers up and running.

  • Have empty databases prepared - one for configuration meta-data, the second one for the data itself. You must not use H2 embedded database.

  • Have a network drive prepared so that both servers can store activity logs to the same folder.

Installation:

  1. Install the first SnowMirror to the first server. Open it in you web browser and configure SnowMirror (license, Salesforce instance, mirror database, etc.).

  2. Install the second SnowMirror to the second server. Choose the embedded H2 database. You won’t use this database is in the end. This step will install all the necessary files. You will copy the configuration from the first server.

  3. Right after the installation finishes, stop the second SnowMirror.

  4. Configure the second SnowMirror to connect to the same configuration database as the first SnowMirror.

    1. Connect to the first server and copy <SnowMirror Installation Folder>/snow-mirror/data/installationId file to the same location on the second server. This is necessary so that both SnowMirror installations can encrypt and decrypt passwords in the configuration database.

    2. Open snowMirror.properties file (<SnowMirror Installation Folder>/snowMirror.properties) on the first server and copy the database settings to "snowMirror.properties" on the second server. More specifically, copy names and values of the following properties: "config.db.type", "config.jdbc.url", "config.jdbc.username", "config.jdbc.password", "config.jdbc.schema"

  5. Start the second SnowMirror.

  6. Open SnowMirror (whichever you want) in your web browser. Set the following properties to point to a network drive which both servers can access. You don’t have to restart SnowMirror after you changed them.

    Please use UNC path on Windows machines. That is the path beginning with two backslashes. E.g. \\YourServer\SnowMirror\activityLogs

    1. snowMirror.activityLog.dir - path to a folder on a network drive which both servers can access. All activity logs will be stored in that folder.

    2. snowMirror.attachment.rootDir - path to a folder on a network drive which both servers can access. All attachments will be stored in that folder. If you don’t synchronize attachments you don’t have to set it.

1.3. FAQ

I have two SnowMirror installations on two servers. Does that mean they execute more synchronizations in parallel?
No. The main purpose of the cluster is the high availability of SnowMirror service. Therefore, we will still execute only three synchronizations in parallel. If you want to increase the number, you have to change "snowMirror.quartz.threadCount" advanced property and increase a memory available to your SnowMirror.

Where do I find my activity logs?
By default, each SnowMirror installation stores the activity logs to its "<SnowMirror Installation Folder>\logs\activityLogs\" folder. That does not work in clustered environment. You have to set the activity logs folder to a network folder which both servers can access. See the image below.

ha cluster detailed

How do I know which server was used to run the synchronization?
Open an activity log of your synchronization and search for a computer name. See the image below.

ha cluster computer name

Does my license include support for HA Cluster?
Please contact our sales department at info@snow-mirror.com.