Setting up a Mirror / Disaster Recovery System

 

In this document, the "Primary Server" will refer to your 'live' system and "Mirror Server" will be your Disaster Recovery / idle server.

Requirements

  • Two Servers on their own Operating System and Hardware
  • Both systems need to be available on the network 100% of the time.
  • Both systems need to have the same DVMAX version installed.

 

 

Initial Setup

On the Primary Server

  1. You will need to configure all Mirror related settings first on the Primary Server, because once the Mirror server is up, no further changes can be made to that database.
  2. Log into DVMAX Admin Client.
  3. Go to the Admin menu and choose Setup.
  4. Click on the Utilities menu and click the Display button in Advanced Settings.
  5. Click I Understand at the prompt of the Advanced Settings window.
  6. In the Filter menu, type in 'mirror' to keep your selection of settings relevant to mirroring.
  7. Set internal.dvmax.useMirroring to True.
  8. Click the '+' icon at the bottom left. A dialog will appear for you to fill out.
  9. Add the following settings, choosing the following Key, Type and Value for each setting.

    KeyTypeValue
    mirror.createLogFileBooleanTrue
    mirror.isMirrorServerBooleanFalse
    mirror.isPrimaryServerBoolean

    True

    mirror.logFileNotificationBooleanTrue
    mirror.mirrorLogFileFolderTextThe full path to where the Mirror Server will parse Journal files from (ie. C:\journalfiles )
    mirror.mirrorAlertSubjectTextLog File Failure on Disaster Recovery (Mirror) Server
    mirror.mirrorAlertToAddressTextset this value to the admin email address that will want to see failures of the integration
    mirror.mirrorLogFileGeneratorDelayNumber120 (seconds between creating a new journal file)
    mirror.mirrorLogFileIntegratorDelayNumber180 (seconds between integrating a journal file on Mirror)
  10. Once the settings are saved, quit the DVMAX Admin Client.

  11. On the DVMAX Server application, Click on File, then Database Settings.

  12. Click the Backup icon and set the Backup schedule to Never.

  13. Quit the DVMAX Server application.

  14. Create a text file called isPrimaryServer.txt in the /Server Database/Resources/ folder.

  15. Leave the Primary Server without DVMAX running for now.

 

On the Mirror Server

  1. Move the entire datafile FROM the Primary Server TO the Mirror Server. This includes the following files:
    1. Datafile.4DD
    2. Datafile.4DIndx
    3. Datafile.4DSyncData
    4. Datafile.4DSyncHeader
    5. Datafile.Match
    6. Datafile.journal
  2. Create a text file called isMirrorServer.txt in the /Server Database/Resources/ folder.
  3. Create copy.bat file with robocopy or /copy/delete rules that will copy the journal files from the Primary Server to the folder path specified in your mirror.mirrorLogFileFolder setting.

    Example script:
    copy \\primaryserver\Data\*[*.journal E:\DVMaxResearch\Server\Data\ /y
    del \\primaryserver\Data\*[*.journal

  4. Create a task with Windows Task Scheduler to run the copy.bat at 5 minute intervals.
  5. Launch the DVMAX Server application on the Mirror Server.
  6. Point it to the datafile copy you placed on this machine from the Primary Server.
  7. Go to the Edit menu and choose Database Settings.
  8. Click the Backup icon.
  9. Click the Configuration tab
  10. Uncheck Use Log File.
  11. Click the Scheduler tab.
  12. Set the Automatic Backup Schedule to Daily and select a time. Click OK.
  13. Quit the Mirror Server application, and relaunch it as a service.

 

Final Steps

Launch the DVMAX Application on the Primary Server. This will allow the entire setup workflow to begin.

If you configured this correctly:

  • A new journal file will get created in the Primary Server's data folder every 2 minutes.
  • Your copy.bat task will execute on the Mirror Server every 5 minutes and move the old journal files on the Primary Server to the Mirror server.
  • The Mirror Server will check the folder path specified for new journal files every 3 minutes, and will integrate them if it finds them.

If the Mirror fails to integrate a journal file, an email will be sent to the value in mirror.mirrorAlertToAddress.

If the Mirror integrates the journal files successfully, a log file will be written for each success in the Applications Server Database/Logs/ folder named with today's date and time.