[Date Prev][Date Next] [Chronological] [Thread] [Top]

delta-syncrepl replica out of date



I have a master and nine delta-syncrepl replicas all running on RHEL 4 using OpenLDAP 2.3.38 on the master and all replicas.

The master is configured to purge entries from the accesslog after 12 hours (and checks every 2 hours). I forget where I grabbed that from why I used it.

Anyway, I have discovered that if one of the replicas gets more than 12 hours behind (ie, is shutdown or we reload the database from yesterday), that it will grab all the updates that have happened in the last 12 hours and then the CSN of the replica and the master will be in agreement, but the changes that happened more than the 12 hours (of the accesslog) ago are not present on the replica.

Is this a configuration mistake I have made (other than setting the accesslog purge time to 12 hours) or is this a limitation (that I likely knew at one time and then forgot and now have relearned the hard way)?

Is there an option I can set on the replica's so they will refuse to start if their CSN is older than the oldest record in the accesslog of the master when they start up?

If this has been discussed in the past, I'm sorry, I did search, but not certain of the terms to use, I didn't have any luck finding anything that looked promising.

Here's the relevant parts of the master's slapd.conf

database hdb
suffix cn=accesslog
directory /var/lib/ldap/accesslog
rootdn cn=accesslog
checkpoint 1024 5
index default eq
index entryCSN,objectClass,reqEnd,reqResult,reqStart
overlay syncprov
syncprov-nopresent TRUE
syncprov-reloadhint TRUE

database bdb
suffix dc=example,dc=com
...
overlay syncprov
syncprov-checkpoint 1000 60

overlay accesslog
logdb cn=accesslog
logops writes
logsuccess TRUE
logpurge 12:00 02:00

And from the replica's:

database bdb
suffix dc=example,dc=com
...
syncrepl rid=100
	provider=ldaps://ldaprw.example.com
	bindmethod=simple
	binddn="cn=MySyncUser,dc=example,dc=com"
	credentials=NotMyRealPassword
	searchbase="dc=example,dc=com"
	logbase="cn=accesslog"
	logfilter="(&(objectclass=auditWriteObject)(reqResult=0))"
	schemachecking=on
	type=refreshAndPersist
	retry=30,+
	syncdata=accesslog

Thanks,
--
Frank Swasey                    | http://www.uvm.edu/~fcs
Sr Systems Administrator        | Always remember: You are UNIQUE,
University of Vermont           |    just like everyone else.
  "I am not young enough to know everything." - Oscar Wilde (1854-1900)

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature