カレンダデータベースは、システムリソースの競合、ハードウェアの障害、アプリケーションエラー、データベース障害、人為的な原因など、さまざまな原因で破損することがあります。ここでは、カレンダデータベースの破損を検出する方法について説明します。
データベースが破損しないとだれにも保証はできません。ですが、データの損失と運用停止時間を最小限にとどめることができます。破損を早期に検出するには、厳密にデータベースおよびカレンダサービスを監視することが重要です。頻繁に完全なバックアップを行っておくことが、破損が検出された場合に復元する秘訣です。
カレンダデータベースで起こりうる破損には、2 つのレベルがあります。
アプリケーションレベル: 1 つ以上のデータベースファイルのエントリに問題があると、それらを基にしている場合、サーバーが稼動しなくなります。
データベースレベル: Berkeley データベースのページが破損すると、さまざまな問題が発生します。一般的な症状は、csdb check を実行するとループすることです。もう一つの一般的な症状は、次のようなエラーメッセージが表示されることです。
“illegal page type or format”, or “page 97895 doesn’t exist, create flag not set.”
データベース破損の兆候を示すエラーメッセージについて、アラームログを含む Calendar Server ログファイルを監視します。ログファイルについては、「Calendar Server ログファイルの使用」を参照してください。
ALERT、CRITICAL、ERROR、および WARNING レベルのエラーについて、ログファイルを定期的に調べてください。これらのエラーが見つかったときは、Calendar Server の動作で考えられる問題について調査します。NOTICE および INFORMATION レベルのログ予定は、Calendar Server の通常動作中に生成されることがあります。これは、サーバーアクティビティの監視に役立つように提供されています。
データベースディレクトリ内のトランザクションログファイルを削除しないでください。トランザクションログファイルにはトランザクションの更新 (追加、変更、削除) が記録されており、これを削除すると復元できない状態にまでカレンダデータベースが破損してしまうことがあります。
Calendar Server に関するテクニカルサポートを依頼する場合、問題解決のためにログファイルの提出が必要となることがあります。
Calendar Server を監視するには、csmonitor ユーティリティーを使用します。このユーティリティーは、複数のトランザクションログファイルの発生や、カレンダデータベースのディスク容量の不足などの問題が生じた時点で、管理者に電子メールを送信するようにします。詳細は、「csmonitor」を参照してください。
カレンダプロパティー (calprops)、予定、および仕事 (作業) を含め、カレンダデータベースを走査して破損がないかどうか調べるには、check コマンドを使用します。check コマンドにより回復不能な不整合が検出された場合、その状況がレポートとして出力されます。
check コマンドは、アラームまたは GSE (グループスケジューリングエンジン) データベースの破損をチェックしません。
Calendar Server がインストールされているシステムの管理権限を持つユーザーとしてログインします。
Calendar Server は稼動中でも停止していてもかまいませんが、可能であれば停止してください。
カレンダデータベースのコピーをまだ作成していない場合は、コピーを作成します。
データベース (.db) ファイルだけをコピーします。共有ファイル (__db.*) やログファイル (log.*) をコピーする必要はありません。
cal_svr_base/SUNWics5/cal/sbin ディレクトリに移動します。
たとえば、Solaris オペレーティングシステムでは、デフォルトのディレクトリには次のように入力します。
cd /opt/SUNWics5/cal/sbin |
カレンダデータベースのコピーに対して check コマンドを実行します。
./csdb check dbdir /tmp/check.out |
dbdir を指定しない場合、現在のディレクトリに格納されているデータベースに対して check が実行されます。
check コマンドは大量の情報を生成する可能性があるため、この例で示すように stdout や stderr を含むすべての出力をファイルとして書き出すことをお勧めします。
check の実行が完了したら、出力ファイルを確認します。データベースが破損していた場合は、rebuild コマンドを実行します。
「破損したカレンダデータベースの再構築」を参照してください。