Exchange Server のトランザクション ログの切り捨て

Microsoft Exchange Server ログについて

Exchange は、トランザクションをデータベース ファイルにコミットする前に、そのトランザクションをトランザクション ログ ファイルに書き込みます。ログに記録されたどのトランザクションがコミットされたかを追跡するために、Exchange ではチェックポイント ファイルを使用します。トランザクションがデータベースにコミットされ、チェックポイント ファイルで追跡されると、データベースにはログ ファイルが不要になります。

ログ ファイルを削除しないと、最終的には使用可能な領域をすべて消費し、ログ ファイルをディスクから消去するまで Exchange データベースがオフラインになります。運用環境で循環ログ方式を使用することはベスト プラクティスではありません。循環ログ方式が有効になっていると、データがデータベースにコミットされた後に最初のログファイルが Exchange によって上書きされ、前回のバックアップまでしかデータを復元できません。

Exchange Server をバックアップした後は、その他のファイルとともにバックアップされているため、ログ ファイルを削除することをお勧めします。それゆえ、復元後は、データベースをロールバックすることもロールフォワードすることもできます。

トランザクション ログの詳細については、http://technet.microsoft.com/en-us/library/bb331958.aspx を参照してください。

[VSS 完全バックアップを有効化する] オプションを使用したログの切り捨て

ログを最も簡単に切り捨てるには、[VSS 完全バックアップを有効化する] バックアップ オプションを使用します([オプション] > [デフォルトのバックアップと復元のオプション] > [デフォルトのバックアップ オプション] > [ボリューム シャドウ コピー サービス] > [VSS 完全バックアップを有効化する])。ほとんどの場合、この方法をお勧めします。

このオプションを有効化しない場合(コンピュータ上で実行されている別の VSS 対応アプリケーションのログを保持する必要がある場合など)、次の推奨手順を実行してください。

オフライン データベースのログの切り捨て

通常のシャットダウンの後、データベースの状態は整合性があるとみなされ、データベース ファイルは自己完結しています。つまり、データベースまたはストレージ グループのすべてのログ ファイルを削除できるということです。

トランザクション ログ ファイルを削除するには、次の操作を実行します。

  1. データベースをマウント解除する(Exchange 2010 の場合)か、またはストレージ グループのすべてのデータベースをマウント解除します(Exchange 2003/2007 の場合)。詳細については、次をご参照ください。
  2. データベースまたはストレージ グループのすべてのログ ファイルを削除します。
  3. マウント解除したデータベースをマウントします。

    詳細については、次をご参照ください。

オンライン データベースのログの切り捨て

この方法は、常時使用していて、マウント解除できないデータベースに適しています。データベースが使用中の場合、データがデータベースにコミットされたトランザクション ログ ファイルのみ安全に削除できます。データがデータベースにコミットされていないログ ファイルは削除しないでください。予想外のシャットダウンからデータベースの整合性を復元するために不可欠です。

コミット済みのトランザクション ログを削除するには、次の手順を実行します

  1. Eseutil ツールを使用して、どのログがデータベースにコミットされているかを特定します。
    1. [eseutil /mk <チェックポイント ファイルへのパス>] コマンドを実行します。ここで、<チェックポイント ファイルへのパス> は、必要なデータベースまたはストレージ グループのチェックポイント ファイルへのパスです。
    2. 出力で Checkpoint フィールドを確認します。たとえば、次のような内容です。

      CheckPoint: (0x60B, 7DF, 1C9)

    最初の数値 0x60B は、現在のログ ファイルの 16 進数のログ世代番号です。これは、これより小さい番号のすべてのログ ファイルがデータベースにコミットされていることを表しています。

  2. 現在のログ ファイルの番号より小さい番号のログ ファイルはすべて削除します。たとえば、Enn0000060A.log、Enn00000609.log およびこれらより小さい番号のファイルは安全に削除できます。
バックアップ後のログの切り捨て

上記の切り捨て処理は、スクリプトを使用して自動化できます。スクリプトをバックアップ後に実行するコマンドに追加した場合、ログはバックアップ後直ちに切り捨てられます。

この方法は、ユーザーにスクリプトを作成するスキルがあり、Acronis Backup & Recovery 11.5 コマンド ライン ユーティリティ(acrocmd)をよく理解していることを前提にしています。acrocmd の詳細については、「コマンド ライン リファレンス」を参照してください。

スクリプトには、次の手順が含まれている必要があります。

  1. [mount] コマンドを使用して、必要なデータベース ファイルを含むボリュームをマウントします。

    テンプレート:

    acrocmd mount --loc=<パス> --credentials=<user name>,<password> --arc=<アーカイブ名> --volume=<ボリューム番号> --letter=<文字>

    例:

    acrocmd mount --loc=\\bkpsrv\backups --credentials=user1,pass1 --arc=my_arc --volume=1-1 --letter=Z

  2. マウントされたボリュームで、Eseutil ツールを使用して、どのログがデータベースにコミットされているかを特定します。この処理は、上記の「オンライン データベースのログの切り捨て」の手順 1 で説明されています。
  3. 対応するオンライン データベースまたはストレージ グループにあるバックアップで、現在のログ ファイルの番号より小さい番号のログ ファイルはすべて削除します。
  4. [umount] コマンドを使用して、マウントされているボリュームをマウント解除します。