Индексация базы OpenLDAP
Для увеличения производительности операций с OpenLDAP можно воспользоваться индексацией.
Сервер OpenLDAP в логах сам подсказывает по каким критериям можно настроить индексы. Выполните:
grep -o "bdb_equality_candidates.*" /var/log/debug | sort | uniq
для получения списка атрибутов которые рекомендуется проиндексировать.
/var/log/debug - файл куда пишутся логи от openldap, у вас он может отличаться.
Формат индекса (index)
Параметры индексации настраиваются в файле конфигурации 1) сервера openldap.
Формат следующий:
index {attrlist | default} [pres,eq,approx,sub,none]
где
- attrlist – список атрибутов (через запятую), для которых будет включена индексация
- default – используется для указания всех явно не указанных, но используемых в базе, атрибутов
- pres (present) – индекс для более быстрого определения установлен ли указанный атрибут
- eq (equality) – индекс для точного поиска указанного значения атрибута (cn=Roman Sozinov)
- approx (approximate) – индексация для быстрого поиска созвучных (по фонетике) значений (cn=smith и cn=smit)
- sub (substring) – индексация при поиске по неполным строкам (cn=Roma*)
Пример использования:
index cn index sn,uid,mail eq,sub index default none
В данном случае для cn-атрибута будут включены все методы индексации; для sn, uid и mail только eq и sub. Для всех остальных атрибутов индексация будет отключена (default none).
Переиндексация
При внесении изменений в настройки индексов необходимо переиндексировать базу. Для этого нужно остановить работающий сервер:
/etc/init.d/slapd stop
Запустить индексатор:
slapindex -v
Корректирована прав:
chown ldap:ldap -R /var/lib/openldap-data/
Запуск:
/etc/init.d/slapd start
Исходная статья – http://blog.sozinov.eu/2007/06/openldap.html
Обсуждение