I decided to use syncrepl (refreshAndPersist) instead of slurpd to synchronize.
I made simple tests but something doesn't work right for me.
I started a totally empty OpenLDAP slave - it got replicated from the master. Any change made on the master is also replicated fine.
Unfortunately, when the connection between the slave and the master is broken (i.e., master restarted), the slave never reconnects. According to the fine slapd.conf manual, reconnection should be made quite fast:
"If the connection is lost, the consumer will attempt to reconnect at an interval time (specified by interval parameter; 60 seconds by default) until the session is re-established."
I waited for about 12 hours, and it didn't happen. Restarting slave helped, and all pending changes were transferred from the master.
Am I missing a setting or something?
The slave is running slapd from OpenLDAP 2.3.37, and here is its slapd.conf part concerning syncrepl:
syncrepl rid=0 provider=ldap://master:389 # interval=00:00:00:30 <- also didn't help if it's 30 secs type=refreshAndPersist searchbase="dc=some,dc=domain" bindmethod=simple binddn="cn=replicationuser,dc=some,dc=domain" credentials=secret schemachecking=off