Možná nefunguje replikace služby Open Directory. V souboru slapd.log se objeví informace Size limit exceeded (Byl překročen limit velikosti).

Možná nefunguje replikace služby Open Directory. Pokud k tomu dojde, objeví se v souboru /var/log/slapd.log záznamy podobné následujícím.

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 delší dobu vypnutý server služby Open Directory, nebo když byla vytvořená replika v případě, kdy je v datovém skladu LDAP víc než 11 000 objektů.  11 000 je výchozí maximální počet objektů, který může být vrácen při hledání.

Umožněte uživateli _ldap_replicator přepsat limit hledání.  To se dá provést změnou konfigurace LDAP serveru na všech serverech služby Open Directory. K tomu je potřeba ověření jako správce adresáře a spuštění několika příkazů pro úpravu LDAP v Terminálu. Musí být taky známá báze hledání, nazývaná taky jako názvový kontext, pro LDAP server.

K tomu je možné použít následující kroky.

Nejdřív vyhledejte bázi hledání pro LDAP server.

Vyhledejte bázi hledání pro LDAP server.  Obvykle se jedná o plně kvalifikovaný název domény serveru, kde je u jednotlivých označení použitá předpona dc= a tečky jsou zaměněné za čárky.

Například server s názvem hostitele server.priklad.com by měl výchozí bázi hledání „dc=server,dc=priklad,dc=com“.  Bázi hledání jde ověřit zasláním dotazu do samotného LDAP serveru pomocí následujícího příkazu Terminálu:

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

Vyhledejte řádek obsahující text namingContexts a báze hledání bude za dvojtečkou, jako v níže uvedeném ukázkovém výstupu.

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

Potom získejte pověřovací údaje protokolu Kerberos pro správce adresáře

Výchozí název pro tohoto uživatele je diradmin, ale název mohl být při vytváření masteru služby Open Directory změněn. To jde provést pomocí příkazu kinit v Terminálu.  Spusťte následující příkaz, v případě potřeby nahraďte správný název správce adresáře za diradmin a pokud budete vyzváni, zadejte heslo. Nezobrazí se žádný výstup.

kinit diradmin

Potom proveďte změny použitím příkazu ldapmodify v interaktivním režimu v Terminálu. Jednoduše v Terminálu proveďte následující:

ldapmodify

Poznámka: Výstupem bude několik zpráv SASL a čekání na vstup.  V případě úspěchu by měl výstup SASL vypadat přibližně takto:

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

Upravte konfiguraci

Nakonec proveďte úpravy konfigurace. To vyžaduje, abyste v okně Terminálu do příkazu ldapmodify zadali jako vstup níže uvedený text. Báze hledání musí být nahrazena za [bázi hledání] níže. Musí se odstranit taky 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

Teď stiskněte Ctrl-D.

Pokud všechno úspěšně proběhlo, zobrazí se zprávy podobné následujícímu příkladu.

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

Další informace

   

Alternativa s shell skriptem

Níže je uvedený text shell skriptu, kterým jde tento proces zautomatizovat. Stačí na správce adresáře použít příkaz kinit, jak je uvedeno výše, a spustit tento skript. Návrhy textových editorů najdete v tomto článku.

#!/bin/sh
nc=`ldapsearch -x -LLL -b "" -s base namingContexts | awk '/namingContexts/ {print $2}'`
ldapmodify  <<EOF
dn: olcDatabase={1}bdb,cn=config
changetype: modify
add: olcLimits
olcLimits: dn.exact="uid=_ldap_replicator,cn=users,$nc" 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,$nc" time.soft=unlimited time.hard=unlimited size.soft=unlimited size.hard=unlimited

EOF
#end of script
Datum zveřejnění: