コンテンツへスキップ

BerkeleyDBの制限

LDAPサーバのバックエンドにBerkeleyDBを使っていましたが、DBが壊れるタイミングが分かりました。

複数プロセスからDBにアクセスがあり、うち1プロセスで更新が発生した時にほぼ必ずDBが壊れました。

1プロセス内でのトランザクションはサポートしているようです。

LDAPサーバのバックエンドにBerkeleyDBを使う場合、

「更新される可能性のあるエントリが存在するLDAPサーバを稼働中にはslapcatコマンドを使ってはいけない」ということです。

slapcatのmanにも「一般に、データベースの一貫性を保証したいのであれば slapcat を実行している間は slapd (8) の実行を中断してください(少なくとも更新できないようにしてください)。 」とあります。

LDAPのバックエンドとしてBerkeleyDBを使う時にDBを壊さないためのTipsはまだあるので、次のブログエントリで書きます。

© 2003 Kurusugawa Computer Inc.