Replication Gotchas
Created by Greg Noe, last modified by Emmanuel Lécharny on May 19, 2016
- Linux Listening on Localhost Only Thing
- “no update referral” error
- “<mirrormode> database is not a shadow” error
- A server can’t define two syncrepl consumer pointing on the same DIT
- Related articles
Linux Listening on Localhost Only Thing
<Something about that thing where Linux hosts only listen on localhost or something>
“no update referral” error
You will get this errors in the logs when the mirrorMode flag is not present in the configuration :
Nov 10 17:07:12 ldap01-test-cv slapd[5255]: conn=1006 op=18 SEARCH RESULT tag=101 err=32 duration=0.447ms nentries=0 text=
Nov 10 17:07:17 ldap01-test-cv slapd[5255]: conn=1006 op=19 ADD dn="cn=bobdole,dc=powerhrg,dc=com"
Nov 10 17:07:17 ldap01-test-cv slapd[5255]: conn=1006 op=19 RESULT tag=105 err=53 duration=0.670ms text=shadow context; no update referral
Simply add the mirrorMode flag in your database.
“<mirrormode> database is not a shadow” error
You will get this error when configuring replication using the slad.conf file and if you add the mirrorMode flag at the wrong place (ie, not where the syncrepl parameter is added ) :
syncrepl rid=001
provider=<the remote server and port>
binddn="<the DN of the replication user>"
bindmethod=simple
credentials=secret
searchbase="<The base DN on the server we want to replcate from>"
type=refreshAndPersis
interval=00:00:00:10
retry="5 5 300 5"
timeout=1
mirrorMode TRUE
...
Here is the error you will get :
Nov 10 17:13:38 ldap01-test-cv slapd[5431]: /opt/symas/etc/openldap/slapd.conf: line 55: <mirrormode> database is not a shadow
A server can’t define two syncrepl consumer pointing on the same DIT
Let’s say you have a server with a DIT containing two branches :
- ou=people,dc=symas,dc=com
- ou=groups,dc=symas,dc=com
where dc=symas,dc=com is a namingContext (so associated with a database).
A remote server won’t be able to define two consumers, one pointing on the ou=people,dc=symas,dc=com branch, and another pointing on the ou=grouos,dc=symas,dc=com branch. Such a configuration, for instance, will not work :
syncrepl rid=001
provider=ldap://producer:389/
type=refreshAndPersist
retry="60 10 300 3 600 +"
searchbase="ou=people,dc=symas,dc=com"
filter="(objectClass=*)"
scope=sub
schemachecking=off
bindmethod=simple
binddn="cn=replicator,dc=symas,dc=com"
credentials=secret
syncrepl rid=002
provider=ldap://producer:389/
type=refreshAndPersist
retry="60 10 300 3 600 +"
searchbase="ou=groups,dc=symas,dc=com"
filter="(objectClass=*)"
scope=sub
schemachecking=off
bindmethod=simple
binddn="cn=replicator,dc=symas,dc=com"
credentials=secret
You will get errors like : do_syncrep2: rid=001 CSN too old, ignoring 20160518141951.128946Z#000000#001#000000
The provider defines only one contextCSN per database, that does not play well on the consumer side.
Related articles
Page:
Page:
Page:
Page:
Page: