[不具合の内容]
PDC(プライマリドメインコントローラ)に新規ユーザ登録を行なうために"smbldap-useradd"コマンドを叩いたが、エラーが出て新規にユーザ登録ができなくなった。しかし、既にDBに登録済みのユーザ及びグループに対する"smbldap-usershow"、"smbldap-groupshow"、"smbldap-usermod"などの参照コマンドや修正コマンドは正常に処理される。
[動作環境]
OS: Miracle Linux v4.0(2.6.9)
Application:
・Samba 3.0.20b
・OpenLDAP-2.2.13
・Berkeley DB 4.2.52
Use: Primary Domain Controller, Backup Domain Controller
[不具合の原因]
停電の際にUPSの電源が持たず、2台のドメインコントローラが突然堕ちた(休日だったため自分でshutdownコマンドを押下しマシンの火を落とすことができなかったため)。slapdデーモンが動作中にサーバが突然堕ちたため、OpenLDAPのバックグラウンドDBとして動作しているBDB(BerkleyDB)が破損したと思われる。
なので、その復旧作業を行なった際の対処方法を忘れないように以下に記述。
[対処方法]
1. slapdの停止
[-@hoge]# /sbin/service ldap stop
2. DBのバックアップ
[-@hoge]# cp -r /var/lib/ldap /var/lib/ldap.20090807(←名前は適当に)
3. DBのリカバリ
[-@hoge]# /usr/bin/db_recover -c -v -h /var/lib/ldap
4. 「log.~」の削除
/var/lib/ldap下に、「log.~」があれば"rm"で削除。
5. BDBのインデックス再生成
[-@hoge]# /usr/sbin/slapindex -v -b "dc=hogehoge,dc=or,dc=jp" -f /etc/openldap/slapd.conf
6. slapdの実行
[-@hoge]# /sbin/service ldap start
7. slapdの動作確認
"ps", "netstat"でプロセスの起動及びソケットの待ちうけ状況を確認する。
正常に稼動していればO.K.
[結論]
上述の作業を実行した結果、"smbldap-useradd"コマンドを用いて新規ユーザ登録が正常に行なえることを確認した。
以 上