Hello,

This is a beta version of a replication diff tool written in python. 

Design page (this needs updating - I hope to get that done tonight)

http://www.port389.org/docs/389ds/design/repl-diff-tool-design.html


Current usage:

  -v, --verbose         Verbose output
  -o FILE, --outfile=FILE
                        The output file
  -D BINDDN, --binddn=BINDDN
                        The Bind DN (REQUIRED)
  -w BINDPW, --bindpw=BINDPW
                        The Bind password (REQUIRED)
  -h MHOST, --master_host=MHOST
                        The Master host (default localhost)
  -p MPORT, --master_port=MPORT
                        The Master port (default 389)
  -H RHOST, --replica_host=RHOST
                        The Replica host (REQUIRED)
  -P RPORT, --replica_port=RPORT
                        The Replica port (REQUIRED)
  -b SUFFIX, --basedn=SUFFIX
                        Replicated suffix (REQUIRED)
  -l LAG, --lagtime=LAG
                        The amount of time to ignore inconsistencies (default
                        300 seconds)
  -Z CERTDIR, --certdir=CERTDIR
                        The certificate database directory for startTLS
                        connections
  -i IGNORE, --ignore=IGNORE
                        Comma separated list of attributes to ignore
  -M MLDIF, --mldif=MLDIF
                        Master LDIF file (offline mode)
  -R RLDIF, --rldif=RLDIF
                        Replica LDIF file (offline mode)

Examples:

python repl-diff.py -D "cn=directory manager" -w PASSWORD -h localhost -p 389 -H remotehost -P 5555 -b "dc=example,dc=com"
python repl-diff.py -D "cn=directory manager" -w PASSWORD -h localhost -p 389 -H remotehost -P 5555 -b "dc=example,dc=com" -Z /etc/dirsrv/slapd-localhost
python repl-diff.py -M /tmp/master.ldif -R /tmp/replica.ldif 


How long the tool takes to run depends on the number of entries per database.  See performance numbers below 

Entries per Replica     Time
---------------------------------
100k                    40 seconds
500k                    3m 30secs
1 million               7m 30secs
2 million               14 minutes
10 million              ~70 minutes


I'd be very interested in feedback, RFE's, and bugs.

Thanks,
Mark