ここで説明する内容は次のとおりです。
ダンプとロードの手順を使用して破損したデータベースの復元を試みます。ダンプとロードの手順では、Berkeley データベースの db_dump ユーティリティーと db_load ユーティリティーを使用します。Calendar Server では、これらのユーティリティーは次のディレクトリに格納されています。
cal_svr_base/SUNWics5/cal/tools/unsupported/bin |
db_dump ユーティリティーはデータベースファイルを読み取り、エントリを db_load ユーティリティーと互換性のある形式で出力ファイルに書き込みます。
db_dump ユーティリティーと db_load ユーティリティーのマニュアルについては、次の Sleepycat Software の Web サイトを参照してください。
http://www.sleepycat.com/docs/utility/index.html
db_dump と db_load によるデータベースの復元が成功するかどうかは、データベースの破損具合によって決まります。データベースを復元するまでに、db_dump オプションを何度か実行しなければならないこともあります。ただし、破損が著しいデータベースは復元できません。この場合は、データベースの最終ホットバックアップまたはアーカイブを使用する必要があります。
ダンプとロードの手順を実行するときは、カレンダデータベースが Berkeley DB バージョン 3.2.9 以上である必要があります。それ以前のバージョンを使用している場合は、最初に cs5migrate ユーティリティーを使用してカレンダデータベースをアップグレードしてください。
最新バージョンの cs5migrate については、ご購入先のテクニカルサポートに問い合わせてください。
Calendar Server を実行するユーザーやグループ (icsuser と icsgroup など)、またはスーパーユーザー (root) としてログインします。
Calendar Server が停止していなければ、停止します。
csbackup ユーティリティーや Sun StorEdge Enterprise BackupTM ソフトウェア、Legato Networker® などを使用して、破損しているデータベースのバックアップを作成します。
詳細は、第 17 章「Calendar Server データのバックアップと復元」を参照してください。
db_dump ユーティリティーを使用して、破損しているデータベースの各ファイルをダンプします。
データベースファイルは、ics50calprops.db、ics50journals.db、ics50alarms.db、ics50events.db、ics50todos.db、および ics50gse.db です。
データベースが復元されるまで (または復元不可能であると判断されるまで)、次のオプションを順に指定して db_dump を実行します。
オプションなし: 軽度のデータベース破損。
-r オプション: 中度のデータベース破損。
-R オプション: 重度のデータベース破損。-R オプションを指定した場合、破損しているデータベースから、部分的なレコードや削除されたレコードなども含め、-r オプションを指定した場合より多くのデータがダンプされます。
たとえば、-r オプションを指定して db_dump を実行するときは、次のように入力します。
db_dump -r ics50events.db \> ics50events.db.txt |
db_load ユーティリティーを使用して、出力ファイルを新しいデータベースファイルにロードします。
次に例を示します。
db_load new.ics50events.db < ics50events.db.txt |
db_load が奇数のキーまたはデータエントリをレポートする場合は、db_dump 出力ファイルを編集して、異常のあるキーまたはデータエントリを削除します。次に、db_load を再実行します。
破損しているその他のデータベースファイルに対して、前の 2 つの手順を繰り返します。
つまり、破損しているその他のデータベースファイルに対して db_dump を実行します。
「破損したカレンダデータベースの再構築」で説明している csdb rebuild コマンドを使用して、復元したデータベースファイルを再構築します。
rebuild の実行が完了したら、出力ファイルを確認します。再構築が正常に完了した場合、rebuild.out ファイルの最後の行は次のようになります。
Calendar database has been rebuilt |
csdb rebuild コマンドが正常に終了しなかった場合は、次レベルの db_dump オプション (-r または -R) を使用してデータベースのダンプを行います。
db_dump -R オプションを実行しても破損しているデータベースを復元できない場合は、ご購入先のテクニカルサポートまたは販売代理店までご連絡ください。それまでの間は、データベースの最終バックアップを使用する必要があります。