Cyrus IMAPでデータベースを再構築する
Cyrus IMAPでデータベースを再構築する
0.改訂履歴
1.はじめに
このドキュメントでは,Cyrys IMAPのサーバにあるデータベースの再構築手順(recontruct)を説明する. 現象として,,メールクライアントとの同期が終了しない等の動作不良があり,サーバ側でsyslogを確認すると,critical database situationというエラーが発生している. 今回対象となるCyrus IMAPは,のは,MacOS X 10.4 Serverで動作している.
2.エラーの確認
May 19 15:50:41 203 imap[334]: DBERROR: critical database situation
May 19 15:50:42 203 imap[354]: DBERROR: critical database situation
May 19 15:53:50 203 lmtpunix[476]: DBERROR: critical database situation
May 19 15:53:52 203 imap[433]: DBERROR: critical database situation
|
- データベース接続のエラーが出ている事が確認できた.
- データベースの修復を行って,回復させる.
3.修復
- データベースを修復する為に,メールサーバを,停止する.
- 停止する為には,rootユーザとなる.
mercury:~ ujpadmin$ su
Password:
mercury:/Users/ujpadmin root# serveradmin stop mail
mail:state = "STOPPED"
mail:status = 0
mercury:/Users/ujpadmin root#
|
- 念のために,現在のデータベースを名前を変えて保存しておく.
mercury:/Users/ujpadmin root# mv /var/imap /var/imap.old
mercury:/Users/ujpadmin root#
|
- 新しく,データベースを保存するディレクトリを作成する.
mercury:/Users/ujpadmin root# mkdir /var/imap
mercury:/Users/ujpadmin root#
|
mercury:/Users/ujpadmin root# /usr/bin/cyrus/tools/mkimap
reading configure file...
i will configure directory /var/imap.
i saw partition /var/spool/imap.
done
configuring /var/imap...
creating /var/spool/imap...
done
mercury:/Users/ujpadmin root#
|
mercury:/var root# chown -R cyrusimap:mail /var/imap
mercury:/var root#
|
mercury:/var root# sudo -u cyrusimap /usr/bin/cyrus/bin/reconstruct -i
user/aiwa
user/baba
user/daisuke
user/ebara
user/fujitsu
user/ujpadmin/ToDo
user/ujpadmin/Deleted Messages
user/yamada
user/yamaha
user/yamahada
user/watatsuki
|
mercury:/var root# serveradmin start mail
mail:state = "RUNNING"
mail:status = 0
mercury:/var root#
|