Open Directory-replicatie werkt mogelijk niet; 'Size Limit exceeded' (Groottelimiet overschreden) verschijnt in slapd.log
Open Directory-replicatie werkt mogelijk niet; wanneer dit gebeurt, verschijnen vermeldingen zoals de volgende in /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
Dit kan gebeuren als een Open Directory-server gedurende langere tijd niet beschikbaar is geweest of als er een replica wordt aangemaakt terwijl er meer dan 11.000 objecten in de LDAP-gegevensopslag staan. 11000 is het standaard maximale aantal objecten dat in een zoekopdracht kan worden geretourneerd.
Geef de _ldap_replicator-gebruiker toestemming om de zoeklimiet te overschrijven. Dit doe je door de LDAP-serverconfiguratie op elke Open Directory-server te wijzigen. Hiervoor moet je de adreslijstbeheerder authenticeren en enkele LDAP-wijzigingscommando's uitvoeren in Terminal. De zoekbasis, ook wel naamgevingscontext genoemd, voor de LDAP-server moet ook bekend zijn.
Om dit te bereiken, kun je de volgende stappen doorlopen.
Zoek eerst de zoekbasis voor de LDAP-server
Zoek de zoekbasis voor de LDAP-server. Dit is doorgaans de volledig gekwalificeerde domeinnaam van de server, met dc= voor elk label en de punten veranderd in komma's.
Een server met hostnaam server.example.com zou bijvoorbeeld een standaardzoekbasis hebben van 'dc=server,dc=example,dc=com'. De zoekbasis kan worden geverifieerd door deze met het volgende Terminal-commando op te vragen in de LDAP-server:
ldapsearch -x -LLL -b “” -s base namingContexts
Zoek de regel met 'namingContexts'. De zoekbasis staat na de dubbelepunt, zoals in de onderstaande voorbeelduitvoer.
dn: namingContexts: dc=server,dc=example,dc=com
Ten tweede moet je de kerberos-inloggegevens voor de adreslijstbeheerder verkrijgen
De standaardnaam voor deze gebruiker is diradmin, maar de naam kan zijn gewijzigd toen de Open Directory-master werd aangemaakt. Dit wordt gedaan met behulp van het commando kinit in Terminal. Voer de volgende opdracht uit, waarbij je indien nodig diradmin. vervangt door de juiste naam voor de adreslijstbeheerder. Voer het wachtwoord in wanneer je daarom wordt gevraagd. Er is geen uitvoer.
kinit diradmin
Gebruik vervolgens ldapmodify in de interactieve modus in Terminal om de wijzigingen aan te brengen. Voer het volgende uit in Terminal=:
ldapmodify
Opmerking: Hierdoor worden een paar SASL-berichten weergegeven en wordt op invoer gewacht. Als het goed is, zou de SASL-uitvoer er ongeveer zo uit moeten zien:
SASL/GSSAPI authentication started SASL username: diradmin@REALM SASL SSF: 56 SASL data security layer installed.
Wijzig de configuratie
Breng ten slotte de wijzigingen aan in de configuratie. Hiervoor moet alle onderstaande tekst in het Terminal-venster worden ingevoerd als invoer voor het commando ldapmodify. [search base] hieronder moet worden vervangen door de zoekbasis. De haakjes moeten ook worden verwijderd.
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
Druk nu op Control-D.
Als alles gelukt is, worden berichten zoals de volgende weergegeven.
modifying entry "olcDatabase={1}bdb,cn=config" modifying entry "olcDatabase={2}bdb,cn=config"
Meer informatie
Shell-scriptalternatief
Hieronder staat de tekst van een shellscript dat kan worden gebruikt om dit proces te automatiseren. Gebruik gewoon het commando 'kinit' als adreslijstbeheerder zoals hierboven en voer dit script uit. Raadpleeg dit artikel voor suggesties voor teksteditors.
#!/bin/sh nc=`ldapsearch -x -LLL -b "" -s base namingContexts | awk '/namingContexts/ {print $2}'` ldapmodify <
Dit document wordt bijgewerkt wanneer meer informatie beschikbaar is.