Disaster Recovery Standby Server
This topic explains how to set up a standby (secondary) adTempus server on a separate computer, and how to shift job execution to it if the primary server fails. This approach does not use Windows clustering; for a clustered configuration, see Failover Clustering.
adTempus stores most of its data in its database, including job definitions, history, and the current state of each job. A second installation on a different computer can therefore take over job execution, as long as it has access to the database or a copy of it. Any programs, batch files, and other software that your jobs run must also be installed on the secondary server.
Database Strategy
Choose one of these strategies for giving the secondary server access to the data:
Shared Database
Both servers are configured to use the same database, hosted on a standalone SQL Server instance accessible to both. The secondary server can be started immediately if the primary fails, because it has the latest data. This strategy is not available if you use the SQL Server Express instance installed with adTempus, and the SQL Server must itself be redundant (for example, clustered) and included in your disaster recovery planning.
Copied Database
The secondary server has its own database, which is loaded from a recent backup of the primary database when failover is needed. You must make sure that a recent backup is always available to the secondary server. adTempus creates a backup automatically each day when it uses SQL Server Express (see Database Backups); with a standalone SQL Server you must configure backups yourself. Copy each backup to the secondary server or to a location it can access in a disaster.
Setting Up the Secondary Server
- Install the same version of adTempus on the secondary server that is running on the primary server.
- When the Database Configuration Wizard runs:
- For a shared database, configure the secondary server to use the same database as the primary. Stop the service on the primary server while you install and test the secondary server, so that jobs do not run on both.
- For a copied database, let the wizard install SQL Server Express and create an empty database. You will load the data from a backup at failover.
- Change the startup type of the adTempus service on the secondary server to "Manual," so that it does not run jobs when it should not. If you need to review or change configuration on the secondary server without running jobs, disable job execution.
- On the primary server, run the Registry Editor and go to HKEY_LOCAL_MACHINE\SOFTWARE\Arcana Development\adTempus\Instances\InstanceName. Copy the "MachineID" value to the same key on the secondary server. This allows the secondary server to take over the database owned by the primary, and allows a Distributed Scheduling Controller to connect to its Agents.
- Install the software that your jobs run.
You do not need to purchase an additional license for the secondary server, but you must contact technical support to have a license issued for it.
Failover
- Shared database: Start the adTempus service on the secondary server. Always make sure the service is stopped on the primary server first, whether for failover or testing.
- Copied database: Before starting the service, use the Database Utility to restore a recent backup of the primary database. The restore replaces all data in the secondary server's database. Then start the service.
Failback
- Shared database: Stop the service on the secondary server and start it on the primary server. The primary server will have the history of jobs that ran on the secondary.
- Copied database: Restart the service on the primary server. Because the secondary server updated a different copy of the database, the primary server will not have the history of jobs that ran on the secondary, and this history cannot be transferred.
Captured Files
The contents of Captured Files are stored on disk, not in the database. If you view a Captured File that was captured on the other server, you will receive an error that the file cannot be found. To make files captured on the secondary server available on the primary after failback, copy any files that do not already exist on the primary server from the "CapturedFiles" folder under the secondary server's data folder (by default C:\Program Files\Arcana Development\adTempus\Instances\InstanceName\Data\CapturedFiles) to the same folder on the primary server.