Syncrepl синхронизация, но не обновление - PullRequest
2 голосов
/ 29 июня 2011

Описание проблемы

Существует два сервера openldap: «провайдер» и «потребитель». Поставщик работает нормально и доступен потребителю на локальном хосте: 1000 с использованием stunnel.

Если потребитель запускается с пустой базой данных, он автоматически синхронизирует базу данных провайдера и работает нормально.

Но если что-то изменится у провайдера позже, оно не достанется потребителю.


Конфигурация

Домены изменены, пароль отредактирован. У провайдера есть учетная запись ldapsync, которая используется для синхронизации.

Средний

Debian GNU / Linux 5.0

OpenLDAP: slapd 2.4.11 (23 июля 2010 21:37:26)

$ less /etc/ldap/slapd.conf
[...]
moduleload      syncprov.la
[...]
overlay syncprov
syncprov-checkpoint 10 60
syncprov-sessionlog 1000

Потребитель

Debian GNU / Linux 5.0

OpenLDAP: slapd 2.4.11 (24 июля 2010 г., 08:14:20)

$ less /etc/ldap/slapd.conf
[...]
syncrepl rid=123
  provider=ldap://localhost:1000
  type=refreshAndPersist
  interval=00:00:05:00
  searchbase="dc=mydomain,dc=com"
  scope=sub
  schemachecking=off
  bindmethod=simple
  binddn="cn=ldapsync,ou=Roles,dc=mydomain,dc=com"
  credentials=<***REDACTED***>

Что я пробовал до сих пор?

Я работал в основном на основе: http://www.openldap.org/doc/admin22/syncrepl.html

Я пробовал type=refreshOnly вместо type=refreshAndPersist.

1 Ответ

1 голос
/ 06 ноября 2014

Syncrepl использует «cookie» в поисковых запросах.Если «cookie» совпадает с «contextCSN:» в базе данных провайдеров, возвращается 0 записей.После любых обновлений в базе данных «contextCSN:» должен автоматически изменяться процессом LDAP.Но по некоторым причинам он может зависнуть, например, если часы не синхронизированы.Вы можете создать полный дамп базы данных ("slapcat") и проверить поле "contextCSN:"

...