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


