Fixing Inconsistent Object Totals on Replicas

Novell Cool Solutions: Feature

If there are inconsistencies in the total number of objects on replicas on your servers, you may see the following errors:

Error "-672" seen in Report Synchronization Status Check in DSREPAIR or seen DSTRACE

Error "-626" seen in Report Synchronization Status Check in DSREPAIR or seen DSTRACE

These inconsistencies will cause object collisions in a partition, resulting in object renaming. As a result, the server will also be removed from the replica ring. These problems are caused when a server holds some but not all of the objects in the replica rings (i.e., one server holds an object but other servers in the ring do not).

The steps below will help to ensure that all servers in your replica ring hold the same objects. See also TID 10054647.

Steps to Follow

Using NDS Manager or DSREPAIR, write down all servers in the replica ring.

Once Repair is running on all servers, you can go back to the first server start saving the repaired the databases and exit DSREPAIR.

Note: This process sets any Unknown objects in the replica ring to a Reference state. In a reference state, these objects will be overwritten if a valid object is sent to that server and they will not synchronize the unknown object out to other servers in the replica ring.

On each server in the replica ring perform a "Send all object to every replica in the ring" command, one at a time, by following steps 7 and 8.

Using your list, rconsole to each server and start the Send All process with the following: Load DSREPAIR | Advanced options | Replica and partition operations | <your partition> | View Replica ring | <server you are rconsoled into> | Send all object to every replica in the ring.

Notes

"Send all object to every replica in the ring" does exactly what it says - it sends all objects on that servers replica to every other server in the replica ring. The receiving servers will either a) discard the received information because it already has the object, or b) add the object in the receiving servers database because it did not previously have it, or c) overwrite an unknown object with a valid object it just received.

This process will generate a lot of traffic, so you should do Send All "after hours" and wait for it to complete on each server before starting it on the next server. You can find out when it has completed on the server by watching it in DSTRACE (SET DSTRACE=OFF, SET DSTRACE=+S, SET DSTRACE=*h). Toggle into the Directory Services trace screen, and you should see all the objects being sent out from that server. Once it's done sending all the objects out, you'll see an ALL PROCESSED=YES message for the partition.

When the process finishes, be sure to view the objects in the partition and delete any unknown, renamed, or other objects that should not be there. This process helps prevent renamed objects (such as 1_1, #_#, etc.) in that partition and helps ensure that all servers in the replica ring have exactly the same information in their replica of the partition.