Open Directory -kopiointi ei ehkä toimi, jolloin slapd.log-tiedostossa näkyy Size Limit exceeded -merkintä

Open Directory -kopiointi ei ehkä toimi, jolloin seuraavanlaisia merkintöjä näkyy /var/log/slapd.log-tiedostossa:

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

Näin voi käydä, jos Open Directory -palvelin on ollut pitkään alhaalla tai jos kopio luodaan, kun LDAP-tietosäilössä on yli 11 000 objektia. Haku voi oletusarvoisesti palauttaa enintään 11 000 objektia.

Salli _ldap_replicator -käyttäjän ohittaa haun rajoitus. Tämä tehdään muuttamalla LDAP-palvelimen määrityksiä jokaisessa Open Directory -palvelimessa. Tämä edellyttää todentautumista hakemiston ylläpitäjänä ja LDAP-muokkauskomentojen suorittamista Päätteessä. Myös LDAP-palvelimen hakukanta eli nimeämiskonteksti täytyy olla tiedossa.

Tämä voidaan tehdä seuraavasti.

Etsi ensin LDAP-palvelimen hakukanta

Etsi LDAP-palvelimen hakukanta. Tämä on yleensä palvelimen absoluuttinen domain-nimi, jonka jokaisen tunnisteen eteen on lisätty dc= ja josta on muutettu pisteet pilkuiksi.

Esimerkiksi jos palvelimen palvelinnimi olisi palvelin.esimerkki.fi, sen oletushakukanta olisi "dc=palvelin,dc=esimerkki,dc=fi". Hakukanta voidaan vahvistaa lähettämällä kysely itse LDAP-palvelimeen käyttämällä seuraavaa komentoa Päätteessä:

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

Etsi rivi, jossa lukee namingContexts, niin hakukanta on puolipisteen jälkeen, kuten alla olevassa esimerkkitulosteessa.

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

Hanki sitten hakemiston ylläpitäjän kerberos-tunnistetiedot

Tämän käyttäjän oletusnimi on diradmin, mutta se on saatettu vaihtaa Open Directory -masterin luomisen yhteydessä. Tämä tehdään käyttämällä kinit-komentoa Päätteessä. Suorita seuraava komento siten, että tarvittaessa korvaat diradmin-kohdan hakemiston ylläpitäjän todellisella nimellä. Anna salasana pyydettäessä. Mitään tulostetta ei näy.

kinit diradmin

Tee sitten muutokset käyttämällä ldapmodify-komentoa vuorovaikutteisessa tilassa Päätteessä. Suorita seuraava komento Päätteessä:

ldapmodify

Huomautus: Tulosteena näkyy muutamia SASL-viestejä, jonka jälkeen odotetaan syötettä. Jos toimenpide onnistuu, SASL-tulosteen pitäisi näyttää tämänkaltaiselta:

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

Muokkaa määrityksiä

Tee lopuksi muutokset määrityksiin. Tämä edellyttää, että kaikki alla oleva teksti syötetään Pääte-ikkunaan ldapmodify-komennon syötteenä. Alla olevaan [search base] -kohtaan tulee hakukanta. Myös hakasulut täytyy poistaa.

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

Paina nyt ctrl-D-näppäinyhdistelmää.

Jos toimenpide onnistuu, näkyviin tulee seuraavanlaisia viestejä:

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

Lisätietoja

   

Vaihtoehtoinen komentotulkkiskripti

Alla on komentotulkkiskripti, jonka avulla tämä prosessi voidaan automatisoida. Suorita kinit-komento hakemiston ylläpitäjälle edellä kuvatulla tavalla ja suorita tämä skripti. Ehdotuksia mahdollisista tekstieditoreista on tässä artikkelissa.

#!/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
Julkaisupäivämäärä: