LDAP: резервное копирование с slapcat по сравнению с ldapsearch

Б/У: openldap-servers-2.4.23-34.el6_5.1.x86_64

Задача: создайте сценарий для crontab создать запланированное полное резервное копирование базы данных.

1) slapcat - создайте файл в в формате по умолчанию, Беркли DB.

2) slapcat может быть сделан в то время как slapd выполнение (если bdb/hdb используемая база данных).

3) Восстановить файл после slapcat - должен использоваться slapadd (нет ldapadd).

4) slapcat/add не требует пароля.

5) slapadd может быть сделан только когда slapd остановленный.

Пример:

 $ slapcat -f /etc/openldap/slapd.conf -b "dc=db_1" -l db_1_backup.ldif
 $ slapadd -l db_1_backup.ldif

Вместо slapcat/add - позвольте нам, смотрел на ldapsearch/add:

1) ldapsearch - создает файл почти с той же информацией как slapcat;

2) ldapadd - может использовать файл от ldapsearch, не требует slapd быть остановленным;

3) ldapadd/search - требует пароля.

Пример:

 $ ldapsearch -D "cn=root,dc=db_1" -W -b "dc=db_1" "dc=db_1" -LLL > db_1_backup2.ldif
 $ ldapadd -x -D "cn=root,dc=db_1" -W -f db_1_backup2.ldif

Таким образом - вопрос:

1) Я пропускаю что-нибудь в этом описании инструментов?

2) Что еще различие между ldapadd/slapadd и ladpsearch/slapcat?

11
задан 31 January 2019 в 14:46
2 ответа

Хорошее подведение итогов, некоторые дополнительные моменты:

  • slapcat дампов из любого (локального) бэкэнда прямого хранилища, это не обязательно должен быть Беркли (hdb или bdb), он также работает с OLC (cn=config). Он выполняет сброс в LDIF формат. (Под прямым я понимаю непосредственно управляемый OpenLDAP, а не, например, SQL бэкенд, даже если он хранится локально. )
  • ldapadd требует, чтобы ведомая работала , slapadd требует, чтобы она не работала , запущенная
  • ldapsearch требует, чтобы slapadd работала, slapcat не заботится о том, работает ли он с бэкэндом BDB, как вы заметили

Короче говоря:

  • slapcat - это способ получить хорошую резервную копию, которую можно быстро восстановить, хотя и с простоями на ведущем устройстве (вы можете работать с этим, настроив различные типы репликации). Это то, что вы должны использовать для общего резервного копирования, а также для резервного копирования перед обновлением.
  • ldapsearch (без +) предоставит вам резервную копию портативную , которую вы, вероятно, сможете загрузить с небольшими трудностями в любой другой сервер каталога, но это будет жизнеспособное восстановление только в простой установке OpenLDAP (без репликации, без специальных оверлеев, без перезаписи), и если вас не волнует сохранение UUID/создание/изменение мета-данных. Вам понадобятся любые дополнительные файлы схем, которые тоже идут вместе с вашими данными.
  • ldapadd (используя его другой идентификатор ldapmodify) можно использовать для простого применения изменений LDAP (изменение объекта, удаление и переименование). которые неосуществимы или невозможны только с помощью slapadd/slapcat

Для большинства администраторов основные соображения вытекают из слегка различающегося содержания LDIF в каждом случае, а также из требования slapd быть запущенным (или не быть запущенным). Более важными различиями являются:

  1. slapcat работает быстрее, потому что он просто дампетрует базу данных, пропускает накладные расходы протокола LDAP, аутентификацию, контроль доступа, ограничения по объектам и времени, оверлеи; и не осуществляет поиск по иерархии LDAP.
  2. slapadd работает быстрее (опять же, никаких накладных расходов по LDAP-протоколу), и в случае, если вы восстанавливаете резервную копию известного вам товара, вы можете запустить быстрый режим (-q), чтобы ускорить импорт больших объемов данных. Также можно отключить проверку схемы (-s), хотя обратите внимание, что небольшие изменения в схеме или проверке данных между версиями OpenLDAP не редкость.
  3. slapcat ограничен локальными базами данных, он не будет пересекаться с другими каталогами (например, с back-ldap, back-meta) способом ldapsearch. То же самое относится к slapadd/ldapadd.
  4. ldapsearch вернет динамические атрибуты, которые не хранятся в бэкэнде, например hasSubordinates или атрибуты, поддерживаемые оверлеями (например slapo-memberof). У вас будут проблемы с их загрузкой с помощью ldapadd (например, рабочие атрибуты с отсутствием модификации пользователя). Перезапись (slapo-rwm) также может исказить вид содержимого директории ldapsearch.
  5. slapcat включает в себя внутренние (рабочие) атрибуты, если вы используете репликацию, то эти атрибуты критичны. При использовании репликации вы несколько меньше зависите от резервного копирования, но если вы используете ldapadd для перезагрузки хозяина, каждый объект будет воссоздан путем репликации (изменен entryUUID entryCSN). Хотя вы можете включить операционные атрибуты, используя специальный атрибут "+" с помощью ldapsearch (или allop overlay), это не то же самое, что slapcat, см. предыдущий пункт о том, почему это так. Эти атрибуты также включают в себя создание/изменение DN и временных меток, которые могут быть важны для некоторых приложений.
  6. , поскольку slapcat не соблюдает иерархию LDAP (подразумеваемое упорядочивание), нет гарантии, что его упорядочивание данных будет возможным с помощью ldapadd - т.е. даже если вы удалите операционные атрибуты, ldapadd может пожаловаться, потому что подорбитаты могут появиться перед их начальством (родителями). Спецификации LDAP требуют, чтобы существовал родитель, но также оставляют порядок следования результатов поиска неопределенным в этом отношении. Смотрите комментарий Говарда ниже, OpenLDAP slapadd беззвучно поддерживает неупорядоченные данные для некоторых бэкендов. В случае ошибки вы можете многократно использовать slapadd с опцией continue on error (-c) до тех пор, пока не будут созданы все "неупорядоченные" родители, останавливаясь, когда вы больше не получаете код ошибки 32 (нет такого объекта, то есть отсутствующего родителя) и получаете только код 68 (уже существует) для каждого объекта.
  7. ldapadd подчиняется правилам LDAP и оверлеям, например, ссылочная целостность, ppolicy (политика паролей)
  8. slapcat предпочитает использовать base-64 закодированные значения атрибутов как минимум для userPassword (указывается с помощью :: после имени атрибута)
  9. ldapsearch имеет больше возможностей для форматирования LDIF, а также записи больших атрибутов в отдельные файлы. Он также может обрабатывать рефералы и псевдонимы .
12
ответ дан 2 December 2019 в 21:51

slapcat не работает, если у вас есть наложения, например член . Поэтому, если вы выполните цикл slapcat / slapadd , оверлеи членства больше не будут работать.

1
ответ дан 2 December 2019 в 21:51

Теги

Похожие вопросы