回復モードで Eseutil /R を実行する方法

 

回復とは、トランザクション ログ ファイルをデータベースに再生するプロセスを指します。回復には、ハード リカバリとソフト リカバリの 2 種類があります。ハード リカバリは、Eseutil で復元モード (/C) を使用することにより実行できます。Eseutil による回復の詳細については、「Eseutil /R 回復モード」を参照してください。

Eseutil /R を実行するためのコマンド ライン構文

Eseutil /R を実行するには

  • Eseutil でソフト リカバリを実行するための基本的なコマンド ライン構文は次のとおりです。

    ESEUTIL /R Enn
    
  • たとえば、次のように入力します。

    ESEUTIL /R E00
    
    note注 :
    Enn は、データベースに再生しようとしているトランザクション ログのログ ファイルのプレフィックスを指定します。このコマンド ラインは、トランザクション ログ ファイルが存在するフォルダから実行し、かつ回復されるデータベースが元のパスの場所に存在する場合にのみ動作します。ログのプレフィックス指定子は、Eseutil /R の必須パラメータです。

より複雑な回復シナリオ用のコマンド ライン構文

トランザクション ログ ファイルが現在のフォルダに存在しない

一般的な規則として、Eseutil /R は常に、再生するトランザクション ログ ファイルが存在するフォルダから実行する必要があります。これは、既定のソフト リカバリ処理が、トランザクション ログ ファイルを調べてデータベースへのパスを見つけるためです。ログ ファイルが存在しないフォルダから回復を実行すると、新しいトランザクション ログ ファイルが生成されるため、このログ ファイルはデータベースの場所を認識できません。トランザクション ログ フォルダ以外の場所から回復を実行する場合は、次のスイッチをコマンドに追加します。

/Lpath_to_logfiles

たとえば、次のように入力します。

ESEUTIL /R E00 /Ld:\exchsrvr\logfiles

チェックポイント ファイルの制御

手動でソフト リカバリを実行するとき、ほとんどの場合は、チェックポイント ファイルを削除するか、または非表示にします。これは、一般に、使用可能なシーケンスの途中から開始するのではなく、使用可能なすべてのトランザクション ログを再生したいと考えるためです。

有効なチェックポイント ファイルが存在するフォルダから回復を実行しており、そのファイルが回復に影響しないようにする場合は、回復中に作成されるチェックポイント ファイルのための別のパスを定義する必要があります。この処置は、データベースを実行しているストレージ グループにオフライン バックアップを復元した後に必要になる場合があります。

別のフォルダから回復を実行しており、チェックポイント ファイルを使用して回復を制御する場合は、チェックポイント ファイルのパスを指する必要があります。

回復中にチェックポイント ファイルの使用を制御する場合は、次のスイッチを回復コマンドに追加します。

/Spath_to_or_away_from_current_checkpoint

たとえば、次のように入力します。

ESEUTIL /R E00 /Sd:\

データベースの 1 つが紛失しているストレージ グループの回復

ストレージ グループが予期せずに停止し、不整合データベースのいずれかが削除されているか、または使用できない場合は、紛失しているデータベースを復元するか、または /I スイッチを使用して手動で回復を実行するまで、ストレージ グループ内のどのデータベースもマウントできません。

important重要 :
紛失しているデータベースを無視して回復する前に、現在のログ ファイル (Enn.log) を含め、すべてのトランザクション ログ ファイルのバックアップ コピーを作成する必要があります。Enn.log が他のデータベースの回復によって変更されてしまうと、紛失しているデータベースが再び使用可能になったときに、そのデータベースの回復に使用できなくなる可能性があります。

"所定の場所以外" でのデータベースの回復

この回復方法では、回復処理が、実行中のストレージ グループから完全に分離されます。これはまた、任意のログ ファイルをバックアップに再生しようとする場合に、回復用ストレージ グループでオフライン バックアップを回復するときの方法でもあります。

この方法を準備するには、データベース ファイル (.edb および .stm) と、再生しようとしているすべてのトランザクション ログを単一の一時フォルダに移動する必要があります。

所定の場所以外で Eseutil を実行するには

  • このフォルダから、次のコマンドを実行できます。

    ESEUTIL /R Enn /I /D
    
  • たとえば、次のように入力します。

    ESEUTIL /R E00 /I /D
    

/I スイッチが必要になるかどうかは、ログにアタッチされていた他のデータベースのトランザクション ログ内にクリーン シャットダウン レコードがあるかどうかによって決まります。ログ ファイル内のどこかに "ハング アタッチ" が存在した場合に回復を再び開始しなくても済むように、この状況ではこのスイッチを使用することをお勧めします。

/D スイッチの動作については、もう少し説明が必要です。/D スイッチが存在しない場合は、トランザクション ログ ファイルに記録されているデータベース パスがデータベースの検索に使用されます。Exchange 2000 以前のバージョンの Eseutil では、これが使用可能な唯一の動作です。/D スイッチがパスなしで使用された場合は、現在のディレクトリがデータベース ファイルのパスとして使用されます。/D スイッチの直後に (間にスペースを入れずに) ファイル パスを指定すると、そのパスがデータベースの検索に使用されます。Exchange データベースの移動時に /D スイッチを使用してトランザクション ログの問題を解決する方法の詳細については、「Exchange メールボックス データベースを移動する際のトランザクション ログ ファイルの問題」を参照してください。

入力エラーの可能性があるため、既にすべてのデータ ファイルが存在するフォルダから Eseutil を実行することによって、Eseutil スイッチでパスを使用しなくても済むようにすることを強くお勧めします。

回復が完了し、データベース ファイルがクリーン シャットダウン状態になったら、それらのファイルを適切なストレージ グループ内の場所に移動し、データベースをマウントすることによってその場所にあるログ ファイルにアタッチすることができます。

note注 :
通常は、データベースをマウントする前に、Exchange システム マネージャで、データベース オブジェクトのプロパティの [復元時はこのデータベースを上書きする] チェック ボックスをオンにする必要があります。

コマンド ライン リファレンス

次に示すのは、Exchsrvr\Bin フォルダのコマンド プロンプトで「eseutil ./?」と入力し、復元を意味する R を選択したときに表示されるコマンド ライン リファレンスです。

RECOVERY:
    DESCRIPTION:  Performs recovery, bringing all databases to a
                  clean-shutdown state.
         SYNTAX:  ESEUTIL /r <3-character logfile base name> [options]
        OPTIONS:  zero or more of the following switches, separated by a space:
                  /l<path>          - location of log files
                                      (default: current directory)
                  /s<path>          - location of system files (eg. checkpoint file)
                                      (default: current directory)
                  /i                - ignore mismatched/missing database attachments
                  /t                - on successful recovery, truncate log files
                  /u[log]           - stop recovery when the Undo phase is reached with the option
                                      to stop when a certain log generation is recovered.
                                      [log] is the log generation number and if not specified
                                      the replay will go to the end of the existing logs.
                  /d[path]          - location of database files, or current directory
                                      if [path] not specified (default: directory
                                      originally logged in log files)
                  /n<path1[:path2]> - new location of database file and optional old location
                                      if the database file location changed.
                                      Can be specified for each database file.
                                      If a certain database is not in the list,it won't get recovered.
                                      To allow recovery in the original location
 for all other database, use /n*.
                                      (not valid with /d switch, not valid with
/b switch)
                  /8                - set 8k database page size (default: 4k)
                  /o                - suppress logo

詳細情報

詳細については、『Exchange Server データベース ユーティリティ ガイド』の以下のトピックを参照してください。