Replication: Add Servers and Designate a Slave Monitor
These steps should be followed when first setting up One-Way Replication or Daisy Chain Replication. In general you will do the following:
- Add each server.
- Designate a slave monitor for each server.
A slave monitor computer constantly monitors the health of the replication process. One computer must be designated as the slave monitor, and each server must have the slave monitor specified in the Slave Monitor field.
- The slave monitor should stay on and logged on to Open Dental at all times.
- The slave monitor does not need to be the replication server; it can be the name of any workstation on the network. Typically, users specify the replication server as its own monitor because Open Dental must be running and a user must be logged on for the monitor to work. It should at least be a computer that is on the same network as the replication server so it will continue to function normally if the internet goes down.
Example: There are two replications servers (A and B) at two different offices. In server A's office, the replication monitor could be any computer on network A. It would not be a computer on network B, because if the internet went down, the monitor would quit working.
Note: If you previously set up replication and turned random primary keys on, see Random Primary Keys instead. Using random primary keys is no longer recommended; instead we recommend using offset keys.
- In the main menu click Setup, Advanced Setup, Replication.
- Click Add to add a server, or double click a server to edit.
- Enter the server information:
Server Description: Server name. It should exactly match your server name or IP address. We recommend using IP address to reduce possible DNS issues. Not actually linked to the Clinic table.
server_id: Assign a unique server_id to each server. This ID will be specified in the my.ini file during setup. Each workstation can then use a query to identify which server it is connected to.
A to Z folders: Assign each server an A to Z folder. It can differ by server. This allows use of a folder in the local area network rather than one that's accessed across a VPN. This path will show in the Data Path window. Keeping the A to Z folders synchronized between locations is up to the customer and requires additional software and expertise (see Shared Network Folder Replication).
Update Blocked: Set whether an Open Dental software update can occur from this server. We recommend updating Open Dental from only one server and blocking updates from others.
Checked: No workstation connected to this server will be allowed to initiate an update. This is typically checked for servers that are considered slave or peripheral. It is possible that this could prevent startup of the program in certain situations.
Unchecked: Workstations connected to this server can initiate an update.
Report Server: Flag the server as a 'report' replication server so it can run dangerous Queries such as those with CREATE TABLE or DROP TABLE syntax. These queries can cause replication failure so should only be run on 'report' servers. More than one computer can be a 'report' server.
Slave Monitor: Specify the computer that will monitor the status of the replication process. If replication fails, this computer will be responsible for disabling access to Open Dental from all computers on this server until replication has been restored. The slave monitor should stay on and logged on to Open Dental at all times.
- Click OK to save.
Synching databases will update all databases in the chain with new entries.
- Enter the MySQL username and password. MySQL Security
- Click Synch.
Note: Open Dental will use the text in the server Description as the computer name for each replication server. The synch will fail if the description is not a valid replication server computer name.
Slave Monitor Triggers and Technical Details
To detect replication failure, Open Dental must be running on the designated slave monitor
How replication failure is detected.
- The monitor polls the slave status every 10 seconds with the following query: SHOW SLAVE STATUS \G;
- If the Slave_SQL_Running and Slave_IO_Running column does not equal "Yes", then the slave updates the database to trigger that replication has failed.For example if server ID is 3:
UPDATE preference SET ValueString = '3' WHERE PrefName = 'ReplicationFailureAtServer_id';
- If the Slave_SQL_Running and Slave_IO_Running column show "Yes" and the Last_Errno column is blank, then the user will recieve "Warning: Replication data receive is off at server [Server]. The server will not receive updates until the slave is started again. Contact your IT admin to run the SQL command START SLAVE.". This usually happens when the slave is manually stopped with an SQL statement.
- All users are kicked out of Open Dental on all servers.
- When users try to use Open Dental on the failed slave, they are told, "This database is temporarily unavailable. Please connect instead to your alternate database at the other location."
It is up to the administrators of the replication service to ensure that training is in place to make sure users know what to do when they see this message.
The slave monitor will detect failure if replication stops or fails on any server, for any reason. So do not stop replication unless Open Dental is shut down on the monitor. The slave monitor will not react to loss of internet connection; MySQL will gracefully continue replication where it left off when reconnected. Stopping the MySQL service will cause other error messages in Open Dental, but will not trigger a reaction by the slave monitor.
See also Troubleshooting Replication.