2009/04/15(水)OpenLDAP の Berkeley DB が壊れた……

長年運用してきた某所にある OpenLDAP の Berkeley DB が(リセットなどのトラブルで)ファイル破損しました。

# slapd.sh start

して一応数秒返ってくるんですが、OpenLDAPシステムが起動したまま接続を受付ない。どうも起動プロセスの途中で止まってしまう模様で、ログにもスタートしました以外、何も残ってない。

# slapd.sh stop

してもプロセスがみつからないと言われるし、実際にプロセスはあるんだけど kill -KILL しないと落ちてくれない。「telnet 127.0.0.1 387」しても何も応答がない。

結果的には、OpenLDAPのデータ管理している Berkeley DB の故障で、故障すると BDB 関係の関数がハングアップする模様。さてこれは困った。

復旧コマンドがあったらしい

BDBを開こうとするだけで停止するので、ダンプも何もできない。さて困った……と思ったら、db_recover という復旧コマンドがあるらしい。OpenLDAP 2.2.30 on FreeBSD だったので、DBDはVer4.2。ということで、

/var/db# db_recover-4.2 -c -v -h openldap-data
db_recover: Finding last valid log LSN: file: 1 offset 10445896
db_recover: Recovery starting from [1][28]
db_recover: Recovery complete at Wed Apr 15 00:11:18 2009
db_recover: Maximum transaction ID 800019e7 Recovery checkpoint [1][10445896]

とやって無事復旧しました。Berkeley DBは壊れたとき、必ずしも「エラー」になってくれないので原因究明が厄介ですね。

svnとかもそうだけど、Berkeley DBは時々壊れてくれるので、バックアップ取っておかないと痛い目みる。

参考

2009/02/25(水)Plone / Archetypes のプロダクトサンプル

ArchExampleをベースに製作したプロダクトサンプルを配布し、解説します。ArchetypesによるPlone3.x Product開発に資料はあるにはありますが、とても直感的には理解しにくいため、分かっている範囲で分かりやすく解説します。*1

続きを読む

2009/02/23(月)Ploneのメモ

2009/02/10(火)Ploneの概要と、Ubuntu/Debianへのインストール方法

Ubuntu8.04上に、Ploneと呼ばれるWeb型CMSをインストールしたときの記録。

よければこちらも参照ください→PloneメモPlone / Archetypes のプロダクトサンプル

Plone(ぷろーん)とは

PythonというRubyっぽいオブジェクト指向言語の上で動く、CMSツールです。Zopeと呼ばれるWebアプリケーションワークフレームの上で動作します。Ploneの動作サンプルはオフィシャルを見るのが良いようです

Zopeとは、Pythonで記述されたWebアプリケーションフレームワーク。CGIフレームワークとは異なり、それ自体がWebサーバ機能、データベース機能を内包しています。

スタンドアローンで動作するので通常のレンタルサーバ等では動作しません。ユーザーのホームにPython+Zopeをインストールし、特権ポートをListenしなければユーザー権限で動作させることもできます。Apacheからのmod_proxyなりで透過的に接続させることもあるようです。

……というレベルの説明が、どうしてPloneオフィシャルサイトに書いてないのか謎。*1

続きを読む