輕量級目錄訪問協(xié)議(LDAP) 允許你擁有一個主服務(wù)器+從服務(wù)器設(shè)置,擁有一旦發(fā)生故障時的容錯功能或者分散工作量的功能。這擁有明顯的優(yōu)勢。但是,它也隱藏了主服務(wù)器的一些問題。
如果你的主服務(wù)器關(guān)機(jī),從服務(wù)器工作正常,進(jìn)行l(wèi)dapsearch搜索和其它查詢是很好的。但是,如果你設(shè)法修改這個數(shù)據(jù)庫(利用使用ldapadd命令),你將得到這樣的錯誤的信息:ldap_add: Referral (10)
referrals:
ldaps://masterldap.example.com/uid=test,ou=People,
dc=example,dc=com
從服務(wù)器不能修改這個數(shù)據(jù)庫。因此,它設(shè)法重新指向這個主服務(wù)器,并且得到失敗的結(jié)果。如果你現(xiàn)在使用ldapsearch搜索命令查詢你新輸入的內(nèi)容,你會找不到那個內(nèi)容。
你可以通過如下方法證實這個診斷:使用ldapsearch -H ldaps://masterldap.example.com強(qiáng)制綁定這個主服務(wù)器。
下一步是找到引起故障的原因。把/etc/ldap/slapd.conf配置文件中的記錄水平設(shè)置為1,然后重新啟動slapd并且查看記錄。
兩個常見的問題是:
一個老的slapd線程沒有恰當(dāng)?shù)仃P(guān)閉。用ps進(jìn)行檢查并且如果有必要的話關(guān)閉這個線程。
一個alock問題。這個問題在記錄中看起來是這樣的:
slapd[27069]: bdb_db_open: alock package is unstable
slapd[27069]: backend_startup_one: bi_db_open failed! (-1)
要解決這個問題,你可以刪除/var/lib/ldap/alock文件(或者檢查在你的本地數(shù)據(jù)目錄中的slapd.conf配置文件)。運行db_recover命令修復(fù)這個數(shù)據(jù)庫,或者重新啟動slapd,它應(yīng)該能夠自己恢復(fù)。你需要給它一點時間或者重新啟動它。
要記住在完成上述操作之后把記錄水平恢復(fù)到正常狀態(tài),否則,服務(wù)器的運行速度會很慢。此外,考慮使用監(jiān)視軟件捕捉這些隱藏的問題。