第 10 章「自動バックアップ (csstored) の設定」で説明されている自動バックアップ機能を使用している場合、ライブデータベースが破損したときにバックアップコピーを復元できます。
ここでは、2 つの異なる自動バックアップの復元方法について説明します。
バックアップを復元する前に、必ず次の操作を行っていることを確認してください。
どのトランザクションがライブデータベースの破損の原因になったか診断を試みていること。
新規のアーカイブが破損されないように、破損しているトランザクションを削除または修正していること。
破損したデータベースを、別のディレクトリまたはリムーバブルメディアにコピーして保存していること。このコピーは、テクニカルサポートに問い合わせを行う際に必要になります。
ライブデータベースが破損した場合は、ホットバックアップがバックアップの最初の選択肢となります。バックアップを復元するには、次の手順を実行します。
破損したライブデータベースのディレクトリで、適用されていない、または書き込み可能な状態のログファイルを識別します。
書き込み可能なログを閉じます。このログには、最新のトランザクションが含まれています。
新規の (復元) ディレクトリを作成します。
現在のホットバックアップのコピーを、新規の復元データベースのディレクトリにコピーします。
log.* ファイルを、破損したライブデータベースのディレィトリから、新規の復元データベースのディレクトリにコピーします。
データベースのアーカイブコピーを保持している場合は、ライブデータベースに適用されなかったログをアーカイブディレクトリにコピーします。
新規の復元データベースに対して指定された -c -h オプションを指定して、db_recover を実行します。
たとえば、新規の復元ディレクトリの名前が recoverydb の場合、コマンドは次のようになります。
db_recover -c -h recoverydb
log.* ファイルは、新規のディレクトリに残しておきます。
db_recover プログラムではログファイルを新規の復元データベースに適用しましたが、バージョン 4.2 以降、Berkeley DB ではログファイルをそのまま残しておくことを勧めします。
新規の復元ディレクトリ内のデータベースファイルに対して、db_verify を実行します。
手順については、「カレンダデータベースの破損をチェックするには」を参照してください。
新規の復元ディレクトリに対して、csdb -v list を実行します。
新規の復元ディレクトリで 上記の 3 つの手順を実行したら、古い破損したライブデータベースを新規の復元ディレクトリと置き換えます。
新しいスナップショットとして機能させるために、新規のライブデータベースをホットバックアップのディレクトリにコピーします。
次の定期的なスナップショットが取得されるまで、すべての新しいログがこのコピーに適用されます。
Calendar Server を起動します。
新規の復元ディレクトリでいずれかの手順に失敗した場合は、次のようにして破損していない古いホットバックアップを特定します。
ホットバックアップを新しい順から逆にたどり、各ファイルに対して順番に db_verify および csdb -v list を実行して、破損していない最新のコピーを見つけます。
パスする最初のホットバックアップコピーが、ライブデータベースのディレクトリに復元されます。
「ホットバックアップを復元するには」で説明している手順に従い、破損したライブデータベースを新規のホットバックアップと置き換えます。最初に、必ず 「復元する前に」をお読みください。
ホットバックアップがどれも動作せず、アーカイブバックアップがない場合は、テクニカルサポートに問い合わせてください。アーカイブバックアップがある場合は、「アーカイブバックアップを復元するには」にある手順を実行します。「復元する前に」も参照してください。
破損したホットバックアップはないが、アーカイブバックアップとトランザクションログがある場合は、次の手順を実行して、アーカイブしたデータベースの最新の破損していないデータベースを復元できます。
破損したライブデータベースのディレクトリで、適用されていない、または書き込み可能な状態のログファイルを識別します。
書き込み可能なログを閉じます。このログには、最新のトランザクションが含まれています。
新規の (復元) ディレクトリを作成します。
最新のアーカイブコピーとそのログファイルを、新規の復元データベースのディレクトリにコピーします。
適用されていない log.* ファイルを、破損したライブデータベースのディレクトリから、新規の復元データベースのディレクトリにコピーします。
新規の復元データベースに対して指定された -c -h オプションを指定して、db_recover を実行します。
たとえば、新規の復元ディレクトリの名前が recoverydb の場合、コマンドは次のようになります。
db_recover -c -h recoverydb
log.* ファイルは、新規の復元ディレクトリに残しておきます。
db_recover プログラムではログファイルを新規の復元データベースに適用しましたが、バージョン 4.2 以降、Berkeley DB ではログファイルをそのまま残しておくことを勧めします。
新規の復元ディレクトリ内のデータベースファイルに対して、db_verify を実行します。
手順については、「カレンダデータベースの破損をチェックするには」を参照してください。
新規の復元ディレクトリに対して、csdb -v list を実行します。
新規の復元ディレクトリで 上記の 3 つの手順を実行したら、古い破損したライブデータベースを新規の復元ディレクトリと置き換えます。
新しいスナップショットとして機能させるために、新規のライブデータベースをホットバックアップのディレクトリにコピーします。
Calendar Server を起動します。
新規の復元ディレクトリがいずれかの手順に失敗した場合は、次のようにして破損していない古いアーカイブバックアップを特定します。
アーカイブバックアップのコピーを新しい順から逆に調べて、順に各ファイルに対して次の 3 つのリカバリプログラムを実行して、破損していない最新のコピーを見つけます。db_recover -c-h、db_verify、および csdb -v list。
パスする最初のアーカイブアップコピーが、ライブデータベースのディレクトリに復元されます。
「アーカイブバックアップを復元するには」で説明している手順に従い、破損したライブデータベースを新規のアーカイブバックアップと置き換えます。
アーカイブバックアップがどれも動作しない場合は、テクニカルサポートに問い合わせてください。