Product SiteDocumentation Site

8.11. Forcing Replication Updates

When a Directory Server involved in replication is stopped for regular maintenance, it must be updated immediately when it comes back online. In the case of a supplier in a multi-master environment, the directory information needs to be updated by the other supplier in the multi-master set. In other cases, when a hub or a dedicated consumer is taken offline for maintenance, when they come back online, they need to be updated by the supplier server.
Even if the replication agreements are configured to keep the supplier and consumer servers always in sync, it is not sufficient to bring back up-to-date a server that has been offline for over five minutes. The Always Keep in Sync option means that the server generates a replication operation for every update operation it processes. However, if this replication operation cannot be performed because the consumer is offline, the operation times out after 10 minutes.

NOTE

The procedures described in this section can only be used when replication is already set up and consumers have been initialized.
To ensure that directory information will be synchronized immediately when a server comes back online, use either the Directory Server Console on the supplier server that holds the reference copy of the directory information or a customizable script.

8.11.1. Forcing Replication Updates from the Console

To ensure that replication updates are sent immediately when a consumer or a supplier in a multi-master replication configuration comes back online after a period of time, do the following on the supplier server that holds the most recent version of the directory information:
  1. In the Directory Server Console, click the Configuration tab, expand the Replication folder and database nodes, and select the replication agreement corresponding to the replica to update.
  2. Right click the replication agreement, and choose Send Updates Now from the drop-down list.
This initiates replication toward the server that holds the information that needs to be updated.

8.11.2. Forcing Replication Updates from the Command-Line

NOTE

This script must be run manually since it cannot be configured to run automatically as soon as the server, which was offline, comes back online again.
#!/bin/sh
SUP_HOST=supplier_hostname
SUP_PORT=supplier_portnumber
SUP_MGRDN=supplier_directoryManager
SUP_MGRPW=supplier_directoryManager_password 
MY_HOST=consumer_hostname 
MY_PORT=consumer_portnumber

ldapsearch -1 -T -h ${SUP_HOST} -p ${SUP_PORT} -D "${SUP_MGRDN}" \
     -w ${SUP_MGRPW} -b "cn=mapping tree, cn=config" 
     \"(&(objectclass=nsds5replicationagreement)(nsDS5ReplicaHost=${MY_HOST}) 
     \(nsDS5ReplicaPort=${MY_PORT}))" dn nsds5ReplicaUpdateSchedule > /tmp/$$ 

cat /tmp/$$ |awk 'BEGIN { s = 0 }/^dn: / { print $0;print "changetype: modify";print 
     "replace: nsds5ReplicaUpdateSchedule";print "nsds5ReplicaUpdateSchedule: 0000-2359 
     0123456";print "-";print "";print $0;print "changetype: modify";
     print "replace:nsds5ReplicaUpdateSchedule";} 

/^nsds5ReplicaUpdateSchedule: / { s = 1; print $0; }/^$/{if ( $s == 1 ){ print "-" ; 
     print ""; }else{ print "nsds5ReplicaUpdateSchedule: 0000-2359 0123456";print "-" ; 
     print ""; };s = 0; } 

' > /tmp/ldif.$$echo "Ldif is in /tmp/ldif.$$"echo 

ldapmodify -c -h ${SUP_HOST} -p ${SUP_PORT} -D "${SUP_MGRDN}" \-w ${SUP_MGRPW} 
     -f /tmp/ldif.$$
Example 8.5. Replicate_Now Script Example

Variable Definition
supplier_hostname Hostname of the supplier to contact for information on replication agreements with the current consumer.
supplier_portnumber LDAP port in use on the supplier.
supplier_directoryManager DN of the privileged Directory Manager user on the supplier.
supplier_directoryManager_password Password of the privileged Directory Manager user on the supplier.
consumer_hostname Hostname of the current consumer.
consumer_portnumber LDAP port in use on the consumer.
Table 8.4. Replicate_Now Variables

For the update operation to occur over an SSL connection, modify the ldapmodify command in the script with the appropriate parameters and values. For more information on the ldapmodify command, see Section 2.2, “Managing Entries from the Command-Line” and the Directory Server Configuration, Command, and File Reference.