Open Directory-replikering kanske inte fungerar. Size Limit exceeded visas i slapd.log

Open Directory-replikering kanske inte fungerar. När detta händer visas poster som följande 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 inaktiv under en längre tid, eller om en replika skapas när det finns fler än 11 ​​000 objekt i LDAP-dataarkivet. 11 000 är det förinställda högsta antalet objekt som kan returneras i en sökning.

Tillåt användaren av _ldap_replicator att åsidosätta sökgränsen. Detta görs genom att ändra LDAP-serverkonfigurationen på varje Open Directory-server. Detta omfattar autentisering som katalogadministratör och körning av LDAP-modifieringskommandon i Terminal. Sökbasen, även känd som namngivningskontexten, för LDAP-servern måste också vara känd.

Följande steg kan användas för att göra detta.

Hitta först sökbasen för LDAP-servern

Hitta sökbasen för LDAP-servern. Detta är vanligtvis det fullständigt kvalificerade domännamnet för servern med dc= i början av varje etikett och punkterna ändrade till kommatecken.

Till exempel skulle en server med värdnamnet server.example.com ha standardsökbasen dc=server,dc=example,dc=com. Sökbasen kan verifieras genom att fråga på LDAP-servern med följande Terminal-kommando:

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

Leta efter raden som innehåller namingContexts och sökbasen kommer att finnas efter kolon som i exemplet nedan.

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

För det andra, hämta kerberos-inloggningsuppgifterna för katalogadministratören

Standardnamnet för denna användare är diradmin men namnet kan ha ändrats när Open Directory-huvudservern skapades. Detta görs med kommandot kinit i Terminal. Kör följande kommando och ersätt diradmin med det korrekta namnet för katalogadministratören vid behov, och ange lösenordet när du uppmanas att göra det. Det finns ingen utdata.

kinit diradmin

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

ldapmodify

Obs: Detta kommer att producera några SASL-meddelanden och vänta på indata. Korrekt SASL-utdata se ut ungefär så här:

SASL-användarnamn startat av SASL/GSSAPI-autentisering: diradmin@REALM SASL SSF: 56 SASL data security layer installed.

Ändra konfigurationen

Slutligen, gör ändringarna i konfigurationen. Detta kräver att all text nedan skrivs in i Terminal-rutan som indata till kommandot ldapmodify. Sökbasen måste ersättas med [search base] nedan. Parenteserna 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 allt lyckats kommer meddelanden som följande att visas.

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

Läs mer

Alternativ för kommandoskript

Nedan är texten till ett kommandoskrift som kan användas för att automatisera denna process. Använd kinit med katalogadministratören enligt ovan och kör det här skriptet. Du kan se förslag för textredigeraren i den här artikeln.

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

Det här dokumentet kommer att uppdateras efterhand som ytterligare information blir tillgänglig.

Publiceringsdatum: