Я настроил второй хост для репликации основного сервера LDAP через syncrepl в slapd.conf
:
syncrepl rid=666
provider=ldaps://my-main-server.com
type=refreshAndPersist
searchBase="dc=Staff,dc=my-main-server,dc=com"
filter="(objectClass=*)"
scope=sub
schemachecking=off
bindmethod=simple
binddn="cn=repadmin,dc=my-main-server,dc=com"
credentials=mypassword
Когда я перезапускаю slapd
, он пишет в /var/log/debug
Jun 11 15:48:33 cluster-mn-04 slapd[29441]: @(#) $OpenLDAP: slapd 2.4.9 (Mar 31 2009 07:18:37) $ ^Ibuildd@yellow:/build/buildd/openldap2.3-2.4.9/debian/build/servers/slapd
Jun 11 15:48:34 cluster-mn-04 slapd[29442]: slapd starting
Jun 11 15:48:34 cluster-mn-04 slapd[29442]: null_callback : error code 0x14
Jun 11 15:48:34 cluster-mn-04 slapd[29442]: syncrepl_entry: rid=666 be_modify failed (20)
Jun 11 15:48:34 cluster-mn-04 slapd[29442]: do_syncrepl: rid=666 quitting
Я просмотрел источники кода возврата и нашел только
#define LDAP_TYPE_OR_VALUE_EXISTS 0x14
в include/ldap.h
. В любом случае, я не совсем понимаю, что означает сообщение об ошибке.
Можете ли вы помочь мне решить эту проблему и выяснить, почему репликация LDAP не работает? Мне удалось поставить "ручную" копию через slapcat
и slapadd
в базу данных, но я хотел бы синхронизировать автоматически.
ОБНОВИТЬ: "Решено" удалением /var/lib/ldap/*
и повторно импортируем базу данных с slapadd
.
Вы уверены, что slapd имеет право писать в каталогах? Обычно после вставки с нуля необходимо сменить владельца каталогов.