Replikasi Open Directory mungkin tidak berfungsi; "Ukuran Melebihi Batas" akan muncul di slapd.log

Replikasi Open Directory mungkin tidak berfungsi; bila ini terjadi, entri seperti berikut akan muncul di /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

Hal ini dapat terjadi jika server Open Directory tidak aktif selama jangka waktu yang lebih lama, atau jika replika dibuat saat ada lebih dari 11.000 objek dalam penyimpanan data LDAP.  11.000 adalah jumlah maksimum default objek yang dapat dikembalikan dalam pencarian.

Izinkan pengguna _ldap_replicator untuk menimpa batas pencarian.  Hal ini dilakukan dengan mengubah konfigurasi server LDAP pada setiap server Open Directory. Ini termasuk mengesahkan sebagai administrator direktori dan menjalankan beberapa perintah modifikasi LDAP di Terminal. Dasar pencarian, yang disebut juga sebagai konteks penamaan, untuk server LDAP juga harus diketahui.

Langkah-langkah berikut dapat digunakan untuk melakukan ini.

Pertama, cari dasar pencarian untuk server LDAP

Mencari dasar pencarian untuk server LDAP  Ini biasanya nama domain yang benar-benar memenuhi syarat dari server dengan dc= yang ditambahkan ke awal setiap label dan titik yang diganti dengan tanda koma.

Misalnya, server dengan nama host server.example.com akan memiliki dasar pencarian default “dc=server,dc=example,dc=com”.  Dasar pencarian dapat diverifikasi dengan meminta server LDAP itu sendiri dengan perintah Terminal berikut:

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

Cari baris yang berisi namingContext dan dasar pencarian akan berada setelah tanda kurung seperti dalam contoh output di bawah ini.

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

Kedua, dapatkan informasi pengesahan kerberos untuk administrator direktori

Nama default untuk pengguna ini adalah diradmin tetapi nama dapat diubah ketika master Open Directory sudah dibuat. Ini dilakukan dengan menggunakan perintah kinit di Terminal.  Jalankan perintah berikut, mengganti nama yang benar untuk administrator direktori untuk diradmin jika diperlukan, lalu masukkan kata sandi saat diminta. Tidak ada output.

kinit diradmin

Selanjutnya, gunakan ldapmodify dalam mode interaktif di Terminal untuk melakukan perubahan. Cukup lakukan berikut ini di Terminal=:

ldapmodify

Catatan: Ini akan mengoutput beberapa pesan SASL dan menunggu input.  Saat berhasil, output SASL akan terlihat seperti ini:

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

Modifikasi konfigurasi

Terakhir, buat modifikasi pada konfigurasi. Tindakan ini memerlukan semua teks di bawah dimasukkan di jendela Terminal sebagai input ke perintah ldapmodify. Dasar pencarian harus diganti dengan [dasar pencarian] di bawah. Braket juga harus dihapus.

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

Sekarang tekan Control-D.

Jika semuanya berhasil, pesan seperti berikut akan ditampilkan.

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

Pelajari lebih lanjut

   

Alternatif skrip shell

Di bawah ini adalah teks skrip shell yang dapat digunakan untuk mengotomatiskan proses ini. Cukup kinit administrator direktori seperti di atas dan jalankan skrip ini. Baca artikel ini untuk saran editor teks.

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