1 つまたは複数のメールボックスが破損した場合、reconstruct ユーティリティーを使用してメールボックスまたはメールボックスデータベースを再構築し、すべての矛盾を修復することができます。
reconstruct ユーティリティーは、1 つまたは複数のメールボックスまたはマスターメールボックスファイルを再構築し、すべての矛盾を修復します。このユーティリティーを使うと、メールストアにおけるほとんどすべてのデータ破損を回復することができます。詳細については、「reconstruct が必要であることを示すエラーメッセージ」を参照してください。
表 20–14 に、reconstruct オプションの一覧を示します。構文や使用要件の詳細については、『Sun Java System Messaging Server 6.3 Administration Reference』の「reconstruct」を参照してください。
表 20–14 reconstruct オプション
オプション |
説明 |
---|---|
-e |
再構築の前に、store.exp ファイルを削除します。これは、ストア処理によって消去されなかった削除済みメッセージの内部ストアレコードを除去します。-i または -e を使用するときに -f オプションも使用すると役立ちます。これは、これらのオプションはフォルダが実際に再構築された場合にのみ機能するからです。同様に、-n オプション (再構築ではなくチェックを実行する) を使用する場合は、-i および -e オプションは機能しません。 reconstruct が破損を検出しない場合は、reconstruct -e は削除済みメッセージを復元しません。-f は、再構築を強要します。 |
-i |
再構築の前に、store.idx ファイル長を 0 に設定します。-i または -e を使用するときに -f オプションも使用すると役立ちます。これは、これらのオプションはフォルダが実際に再構築された場合にのみ機能するからです。同様に、-n オプション (再構築ではなくチェックを実行する) を使用する場合は、-i および -e オプションは機能しません。 |
-f |
reconstruct に 1 つまたは複数のメールボックスで修復を行うように強制します。 |
-l |
lright.db を再構築します。 |
-m |
整合性チェックを行い、必要に応じてメールボックスデータベースを修復します。このオプションを使用すると、スプールエリアで見つかったすべてのメールボックスがチェックされ、必要に応じてメールボックスのデータベースエントリの追加または削除が行われます。データベースでエントリの追加または削除が行われると、メッセージが標準出力ファイルに出力されます。つまり、folder.db、quota.db、および lright.db を修復します |
-n |
メールボックスの修復を実行せずに、メッセージストアだけをチェックします。メールボックス名を指定せずに、-n オプションを単独で使用することはできません。メールボックス名を指定しない場合、-n オプションは -r オプションとともに使用する必要があります。-r オプションは、-p オプションと組み合わせることもできます。たとえば、次のコマンドはすべて有効です。 reconstruct -n user/dulcinea/INBOX reconstruct -n -r reconstruct -n -r -p primary reconstruct -n -r user/dulcinea/ |
-o |
廃止。mboxutil -o を参照してください。 |
-o -d filename |
廃止。mboxutil -o を参照してください。 |
-p partition |
-p オプションを -m オプションとともに使用し、再構築の範囲を指定されたパーティションに制限します。-p オプションを指定しない場合、reconstruct はデフォルトですべてのパーティションを再構築します。つまり、folder.db および quota.db を修復しますが、lright.db は修復しません。これは lright.db を修復すると、メッセージストア内のすべてのユーザーに対して ACL のスキャンを実行する必要があるためです。これをすべてのパーティションに対して実行するのは効率的でありません。lright.db を修復するには、reconstruct -l を実行します。 パーティション名を指定します。完全なパス名は使用しないでください。 |
-q |
制限容量サブシステムの矛盾 (メールボックスの制限容量ルートが正しくない、または制限容量ルートで誤った容量の使用状況がレポートされるなど) を修正します。-q オプションは、ほかのサーバープロセスの実行中に実行できます。 |
-r [mailbox] |
指定した 1 つまたは複数のメールボックスのパーティションエリアを修復し、整合性をチェックします。また、-r オプションは、指定したメールボックス内のすべてのサブメールボックスも修復します。-r を指定してメールボックス引数を入力しなかった場合は、ユーザーパーティションディレクトリ内にあるすべてのメールボックスのスプールエリアが修復されます。 |
-u user |
-u オプションを -m オプションとともに使用し、再構築の範囲を指定されたユーザーに制限します。-u オプションは、-p オプションとともに使用する必要があります。-u オプションを指定しない場合、reconstruct はすべてのパーティションまたは -p オプションで指定されたパーティションを再構築します。 ユーザー名を指定します。完全なパス名は使用しないでください。 |
メールボックスを再構築するには -r オプションを使用します。このオプションは次の場合に使用します。
メールボックスにアクセスしたら、「システム I/O エラーが発生しました」または「メールボックスのフォーマットが不正です」のどちらかのエラーが返された場合。
メールボックスにアクセスしたらサーバーがクラッシュした場合。
ファイルがスプールディレクトリに追加されたか、スプールディレクトリから削除された場合。
reconstruct -r は、最初に整合性チェックを行います。問題が検出された場合にのみ、すべての整合性を報告し、再構築を行います。したがって、このリリースでは reconstruct ユーティリティーのパフォーマンスが向上しています。
reconstruct は、次の例で説明するように使用することができます。
ユーザー daphne に属するメールボックスのスプール領域を再構築するには、次のコマンドを使用します。
reconstruct -r user/daphne
メールボックスデータベースに一覧表示されたすべてのメールボックスのスプール領域を再構築するには、次のように入力します。
reconstruct -r
ただし、このオプションは注意して使用してください。メールボックスデータベースに一覧表示されたすべてのメールボックスのスプール領域を再構築する場合、メッセージストアが大規模なため非常に長い時間を要する可能性があるからです。(「20.14.3.3 reconstruct のパフォーマンス」を参照。) これよりも優れた障害復旧に対する手段は、ストア用に複数のディスクを使用することでしょう。ディスクが 1 つダウンしてもストア全体がダウンすることはないからです。ディスクが破損した場合、次のように -p オプションを使用してストアの一部分を再構築するだけですみます。
reconstruct -r -p subpartition
コマンド行の引数にリストされたメールボックスが primary パーティションに存在する場合のみそれらを再構築するには、次のように入力します。
reconstruct -p primary mbox1 mbox2 mbox3
primary パーティションに存在するすべてのメールボックスを再構築する必要がある場合は、次のようになります。
reconstruct -r -p primary
整合性チェックを実行せずにフォルダを再構築する場合は、-f オプションを使用します。たとえば、次のコマンドはユーザーフォルダ daphne の再構築を実行します。
reconstruct -f -r user/daphne
すべてのメールボックスを修正せずにチェックする場合は、次のように -n オプションを使用します。
reconstruct -r -n
高レベルの整合性チェックを行い、メールボックスデータベースを修復するには、次のように入力します。
reconstruct -m
整合性チェックを行い、プライマリパーティションを修復するには次のように入力します。
reconstruct -p primary -m
-p および -m フラグを指定して reconstruct を実行しても、lright.db は修復されません。これは lright.db を修復すると、メッセージストア内のすべてのユーザーに対して ACL のスキャンを実行する必要があるためです。これをすべてのパーティションに対して実行するのは効率的でありません。lright.db を修復するには、reconstruct -l を実行します。
整合性チェックを行い、john という名前のユーザーのメールボックスを修復するには次のように入力します。
reconstruct -p primary -u john -m
-m オプションは次の場合に使用します。
1 つまたは複数のディレクトリがストアスプール領域から削除されたため、メールボックスデータベースのエントリも削除する必要が生じた場合。
1 つまたは複数のディレクトリがストアスプール領域に復元されたため、メールボックスデータベースのエントリも追加する必要が生じた場合。
stored -d オプションによってデータベースの整合性を保つことができない場合。
stored -d オプションによってデータベースの整合性を保つことができない場合、次の手順を順番に実行します。
すべてのサーバーを停止します。
store_root/mboxlist 内のすべてのファイルを削除します。
サーバープロセスを再起動します。
reconstruct -m を実行して、スプール領域の内容から新しいメールボックスデータベースを構築します。
reconstruct が処理を実行するのにかかる時間は、次に示すいくつかの要素によって異なります。
実行される処理と選択したオプションの種類
ディスクパフォーマンス
reconstruct -m 実行時のフォルダの数
reconstruct -r 実行時のメッセージの数
メッセージストアの全体サイズ
システムが実行するほかのプロセスとシステムのビジー状態
実行中の POP、IMAP、HTTP、または SMTP アクティビティーが存在するかどうか
reconstruct -r オプションにより、最初の整合性チェックが実行されます。このチェックでは、再構築の必要なフォルダの数に応じて reconstruct のパフォーマンスが向上します。
ユーザー数が約 2400、メッセージストアが 85G バイトで、POP、IMAP、または SMTP アクティビティーが同時にサーバーで実行されているシステムでは、次のパフォーマンスが得られました。
reconstruct -m に要した時間は約 1 時間
reconstruct -r -f に要した時間は約 18 時間
reconstruct の操作にかかる時間は、サーバーで POP、IMAP、HTTP、または SMTP アクティビティーが実行されていない場合、大幅に減少します。