Open Directory çoğaltma işlemi çalışmayabilir ve slapd.log dosyasında "Size Limit exceeded" (Boyut Sınırı aşıldı) girişleri olabilir

Open Directory çoğaltma işlemi çalışmayabilir. Bu durum gerçekleştiğinde /var/log/slapd.log dosyasında aşağıdaki gibi girişler olabilir

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

Bu durum, bir Open Directory sunucusu uzun süre boyunca kapalı olduğunda veya çoğaltılan öğe LDAP veritabanında 11.000'den fazla öğe mevcutken oluşturulduğunda ortaya çıkabilir.  11.000, bir aramada dönen nesne sayısı için saptanmış olarak belirlenen maksimum sayıdır.

Arama sınırını geçersiz kılmak için _ldap_replicator kullanıcısına izin verin.  Bu işlem tüm Open Directory sunucuları için LDAP sunucu yapılandırmasının değiştirilmesiyle gerçekleştirilir. Bu işlem için dizin yöneticisi olarak kimlik doğrulama gerçekleştirmek ve bazı LDAP komutlarını Terminal'de çalıştırmak gerekir. Ayrıca LDAP sunucusunun adlandırma kapsamı olarak da bilinen arama tabanı bilinmelidir.

Bunu başarmak için aşağıdaki adımlar kullanılabilir.

İlk olarak LDAP sunucusunun arama tabanını bulun

LDAP sunucusunun arama tabanını bulma.  Bu, genellikle her bir etiket için başına dc= eklenen ve noktaları virgülle değiştirilen tam alan adıdır.

Örneğin, ana bilgisayar adına sahip sunucunun server.example.com saptanmış arama tabanı “dc=server,dc=example,dc=com” değeridir.  Bu arama tabanı LDAP sunucusunun kendisinde aşağıdaki Terminal komutu sorgulanarak doğrulanabilir:

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

namingContexts terimini içeren satırı arayın. Arama tabanı aşağıdaki örnek çıkıştaki sütundan sonra yer alır.

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

İkinci olarak, dizin yöneticisi için kerberos kimlik bilgilerini alın

Bu kullanıcının saptanmış adı diradmin olmasına karşın bu ad Open Directory master oluşturulurken değiştirilmiş olabilir. Bu değiştirme işlemi Terminal'de kinit komutu kullanılarak gerçekleştirilir.  Gerekirse doğru dizin yöneticisi adını diradmin ile değiştirerek aşağıdaki komutu çalıştırın ve yönetici için istenildiğinde parolayı girin. Bu komutun bir çıktısı yoktur.

kinit diradmin

Ardından değişiklik yapmak için Terminal'de etkileşimli modda ldapmodify komutunu girin. Terminal'deki aşağıdaki komutu girin=:

ldapmodify

Not: Bu işlem birkaç SASL mesajı çıkışı sağlar ve klavyeden giriş yapılmasını bekler.  İşlemin başarılı olması durumunda, SASL çıktısı şuna benzer:

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

Yapılandırmayı değiştirme

Son olarak yapılandırmada değişiklikler gerçekleştirin. Bu işlem için aşağıdaki metnin tamamının Terminal penceresinde ldapmodify komutu girişi olarak girilmesi gerekir. Bu komutta [search base] arama tabanı olarak değiştirilmelidir. Ayrıca köşeli parantezler kaldırılmalıdır.

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

Şimdi Control-D tuşlarına basın.

İşlem başarılı olursa aşağıdaki gibi mesajlar görüntülenir.

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

Daha fazla bilgi

   

Kabuk program alternatifi

Aşağıdaki kabuk betiği metni bu işlemi otomatik hale getirmek için kullanılabilir. Sadece yukarıda belirtilen şekilde dizin yöneticisine kinit komutunu uygulayın ve bu betiği çalıştırın. Metin düzenleyici önerileri için bu makaleye bakın.

#!/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
Yayın Tarihi: