Replikace Open Directory nemusí fungovat a v protokolu slapd.log se proto objeví chyba Size Limit exceeded (Překročen limit velikosti).

Replikace Open Directory nemusí fungovat a když k tomu dojde, objeví se v protokolu /var/log/slapd.log následující záznamy

slapd[209]: do_syncrep2: rid=001 LDAP_RES_SEARCH_RESULT (4) Size limit exceeded slapd[209]: do_syncrep2: rid=001 (4) Size limit exceeded

K tomu může dojít, pokud byl server Open Directory delší dobu mimo provoz nebo pokud je vytvořena replika, když je v datovém úložišti LDAP více než 11 000 objektů. 11 000 je výchozí maximální počet objektů, které lze vrátit při hledání.

Umožněte uživateli _ldap_replicator překročit limit vyhledávání. To se provádí změnou konfigurace serveru LDAP na každém serveru Open Directory. Je k tomu třeba pověření správce adresáře a spuštění několika příkazů Terminálu pro úpravu LDAP. Musí být také známý výchozí bod hledání pro server LDAP, označovaný také jako názvový kontext.

Lze toho dosáhnout následujícím postupem.

Nejprve určete výchozí bod hledání pro server LDAP

Určení výchozího bodu hledání pro server LDAP. Obvykle se jedná o plně kvalifikovaný název domény serveru s předponou dc= před každou úrovní názvu a tečkami změněnými na čárky.

Například server s názvem hostitele server.example.com by měl výchozí bod hledání „dc=server,dc=example,dc=com“. Výchozí bod hledání lze ověřit dotazem na samotný server LDAP pomocí následujícího příkazu Terminálu:

ldapsearch -x -LLL -b “” -s base namingContexts

Vyhledejte řádek obsahující namingContexts a výchozí bod hledání bude za dvojtečkou jako v příkladu výstupu níže.

dn: namingContexts: dc=server,dc=example,dc=com

Dále získejte pověření kerberos pro správce adresáře

Výchozí jméno tohoto uživatele je diradmin, ale toto jméno mohlo být změněno při vytváření hlavního serveru Open Directory. Provádí se to příkazem kinit v Terminálu. Spusťte následující příkaz (podle potřeby nahraďte diradmin správným jménem správce adresáře) a po zobrazení výzvy zadejte heslo. Příkaz nedává řádný výstup.

kinit diradmin

Poté v Terminálu v interaktivním režimu příkazu ldapmodify proveďte potřebné změny. Jednoduše spusťte v Terminálu následující příkaz:

ldapmodify

Poznámka: Příkaz zobrazí několik zpráv SASL a čeká na vstup. Správný výstup SASL by měl vypadat nějak takto:

SASL/GSSAPI authentication started SASL username: diradmin@REALM SASL SSF: 56 SASL data security layer installed.

Upravte konfiguraci

Nakonec proveďte úpravy konfigurace. K tomu je třeba v okně Terminálu zadat celý níže uvedený text jako vstup pro příkaz ldapmodify. Místo [search base] níže zadejte příslušný výchozí bod hledání. Přitom odstraňte také hranaté závorky.

dn: olcDatabase={1}bdb,cn=config changetype: modify add: olcLimits olcLimits: dn.exact="uid=_ldap_replicator,cn=users,[search base]" time.soft=unlimited time.hard=unlimited size.soft=unlimited size.hard=unlimited dn: olcDatabase={2}bdb,cn=config changetype: modify add: olcLimits olcLimits: dn.exact="uid=_ldap_replicator,cn=users,[search base]" time.soft=unlimited time.hard=unlimited size.soft=unlimited size.hard=unlimited

Nyní stiskněte Control-D.

Když všechno proběhne správně, zobrazí se zprávy podobné následujícím.

modifying entry "olcDatabase={1}bdb,cn=config" modifying entry "olcDatabase={2}bdb,cn=config"

Další informace

Alternativní skript Shell

Níže je text skriptu shellu, který můžete použít k automatizaci tohoto procesu. Stačí příkazem kinit získat pověření pro správce adresáře jako výše a následně spustit tento skript. Návrhy textových editorů naleznete v tomto článku.

#!/bin/sh nc=`ldapsearch -x -LLL -b "" -s base namingContexts | awk '/namingContexts/ {print $2}'` ldapmodify <

Tento dokument bude aktualizován podle toho, jak budou k dispozici nové informace.

Datum zveřejnění: