Open Directory-replikering fungerar kanske inte; ”Size Limit exceeded” anges i slapd.log

Open Directory-replikering fungerar kanske inte. När detta inträffar kan poster liknande den följande uppträda i /var/log/slapd.log

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

Detta kan inträffa om en Open Directory-server har varit nere en längre tid eller om en replika skapas när det finns fler än 11 000 objekt i LDAP-datalagret.  11 000 är den förvalda maxgränsen för hur många objekt som kan returneras i en sökning.

Låt _ldap_replicator-användaren åsisdosätta sökgränsen.  Detta görs genom att du ändrar LDAP-serverkonfigurationen på varje Open Directory-server. Proceduren innefattar autentisering som katalogadministratör och att köra några LDAP-modifieringskommandon i Terminal. Sökbasen, även känd som namngivningskontext, för LDAP-servern måste också vara känd.

Följande steg kan användas för att åstadkomma detta.

Leta först reda på sökbasen för LDAP-servern

Leta reda på sökbasen för LDAP-servern.  Det är vanligen det fullständigt kvalificerade domännamnet för servern med dc= tillagt före varje etikett och punkterna utbytta mot komman.

Exempel: En server med värdnamnet server.example.com har standardsökbasen dc=server,dc=example,dc=com.  Sökbasen kan verifieras genom att ställa en fråga till själva LDAP-servern med följande Terminal-kommando:

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

Leta efter raden som innehåller namingContexts så hittar du sökbasen efter kolonet, som i exemplet nedan.

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

Hämta sedan in kerberos-inloggingsinformationen för katalogadministratören

Standardnamnet för den här användaren är diradmin men det kan ha ändrats när Open Directory-huvudposten skapades. Detta görs med kommandot kinit i Terminal.  Kör följande kommando och byt ut namnet på katalogadministratören mot diradmin om det behövs och ange sedan lösenordet när du uppmanas till det. Inga utdata visas.

kinit diradmin

Använd sedan ldapmodify i interaktivt läge i Terminal för att göra ändringarna. Kör följande i Terminal=:

ldapmodify

Obs! Några SASL-meddelanden matas ut och sedan stannar skärmen och väntar på indata.  Om allt fungerar ska SASL-utdata se ut ungefär så här:

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

Ändra konfigurationen

Gör slutligen ändringarna i konfigurationen. Detta kräver att all text nedan anges i Terminal-fönstret som indata till kommandot ldapmodify. Sökbasen måste bytas ut mot [sökbas] nedan. Hakparenteserna måste också tas bort.

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

Tryck nu på Ctrl-D.

Om det lyckas, visas meddelanden likt det följande.

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

Läs mer

   

Shellskriptsalternativ

Nedan visas texten för ett shellskript som kan användas för att automatisera denna process. Kör kinit för katalogadministratören som ovan och kör detta skript. Se den här artikeln för textredigerarförslag.

#!/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
Publiceringsdatum: