Exchange 2007 SP1 および SP2 でのオンライン保守によるデータベース スキャン

 

適用先: Exchange Server 2007 SP2, Exchange Server 2007 SP1

トピックの最終更新日: 2009-05-20

Microsoft Exchange Server 2007 Service Pack 1 (SP1) および Exchange 2007 Service Pack 2 (SP2) では、3 つのレジストリ サブキーを使用して、オンライン保守によるデータベース スキャンを有効にして構成することができます。オンライン保守によるデータベース スキャンが有効になっている場合、Exchange は次の手順を実行します。

  1. データベース ページを読み取ります。
  2. データベース ページのチェックサムを行います。チェックサム計算は、Exchange が、データベースの内容によって異なる値 (チェックサム) を計算することによってデータベースの整合性をチェックするプロセスです。
  3. 構成されている場合、データベース ページでページの解放を実行します。ページの解放は、ストリーミング バックアップの最後に実行される処理で、上書き用に選択した文字でデータベース内のデータが上書きされます。このことにより、従来の方法でデータを回復することはできなくなります。

ここで説明されている手順を使用してサーバーでオンライン保守によるデータベース スキャンを構成すると、ページの解放プロセスとチェックサム計算プロセスが結合される (ピギーバックされるとも言います) ため、読み取りの入出力 (I/O) の負荷は実質的に半分に削減されます。

ここでは、以下について説明します。

  • RTM (Release To Manufacturing) 版の Exchange 2007 と Exchange 2007 SP1 および SP2 での、Exchange データベースに対するチェックサム計算およびページの解放プロセス。
  • オンライン保守によるデータベース スキャンを有効にして構成するために使用できるレジストリ サブキー。
  • オンライン保守によるデータベース スキャンの実行中にシステム動作の分析に使用できるパフォーマンス カウンタ。
  • オンライン保守によるデータベース スキャンの監視に使用できるイベント。

Exchange 2007 RTM でのチェックサム計算およびページの解放

Exchange 2007 RTM では、データの整合性がチェックサム計算によって自動的に検証されず、ページの解放が発生しないシナリオがいくつかあります。

これらのシナリオには、次のものがあります。

  • クラスタ連続レプリケーション (CCR) またはローカル連続レプリケーション (LCR) 構成内のストレージ グループのパッシブ コピーからのみバックアップを作成する場合。パッシブ コピーからのみバックアップを作成する場合、データベースのアクティブ コピーはチェックサム計算されません。
  • Microsoft Data Protection Manager (DPM) を使用して Exchange データのブロック レベルの差分バックアップを作成する場合。このシナリオでは、バックアップされる変更されたデータのみがチェックサム計算されます。変更されていないデータはチェックサム計算されません。その結果、データの整合性が確実ではなくなります。長い間にデータが破損している (一般にビット腐敗と呼ばれる状態) 場合があるためです。
  • CCR または LCR 構成でボリューム シャドウ コピー サービス (VSS) ベースのバックアップを使用している場合。このシナリオでは、ページの解放はストリーミング バックアップに対してのみ有効になるため、ページの解放は発生しません。
  • CCR または LCR 構成でストリーミング バックアップを使用している場合。このシナリオでは、データベースのアクティブ コピーに対するページの解放動作によってトランザクション ログ ファイルは生成されません。トランザクション ログ ファイルがないと、これらの変更をデータベースのパッシブ コピーにレプリケートできません。

データベースのチェックサム計算

既に説明したように、チェックサム計算は、データベースの内容によって異なる値 (チェックサム) を計算することによってデータベースの整合性をチェックするプロセスです。チェックサムはデータと共に格納され、Exchange はこの値を使用してデータが破損していないことを確認します。Exchange 2007 SP1 より前のバージョンでは、オンライン完全ストリーミング バックアップの実行時にデータベース全体がチェックサム計算されました。また、データベースの VSS スナップショット全体もチェックサム計算できました (ただし、チェックサム計算されるのはコピーで、実際の運用データベースはチェックサム計算されませんでした)。しかし、CCR と LCR の開発および DPM の導入により、この方法は適切ではなくなりました。

CCR および LCR でのチェックサム計算

CCR と LCR ではいずれも Exchange データベースのコピーが 2 つあり、ソース コピーをバックアップするかターゲット コピーをバックアップするかを選択できます。バックアップされるコピーがチェックサム計算されます (ストリーミングの場合でも VSS を使用する場合でも)。他のコピーはチェックサム計算されません。

Exchange 2007 SP1 より前のバージョンでは、完全バックアップの実行が、チェックサム計算をスケジュールする唯一の方法でした。この問題を回避するための一般的な方法は次の 2 つでした。

  • クラスタ化メールボックス サーバーを週単位で移動して、バックアップが代替コピーに移動されるようにします。この方法は次の理由で推奨されません。
    • バックアップ アプリケーションが CCR に対応している必要があります。
    • 管理がさらに複雑になります。
    • ダウンタイムが長くなります (この方法では、99.999 の稼働時間を実現できません)。
    • LCR では動作しません。
  • レプリケーションと再生を中断し、Exchange Server データベース ユーティリティ (Eseutil) を使用してデータベースをチェックサム計算します。中断期間中、クラスタは障害に対する回復機能を失い、回避策を手動で実行する必要があるため、この方法は推奨されません。実際、定期的にチェックサム計算できるのは 1 つのコピーのみなので、クラスタ内のデータベース コピーのいずれかの整合性は確実でなくなります。データベースの両方のコピーが破損する前に、エラーを早期に検出する必要があります。

Exchange 2007 SP1 ではオンライン保守によるデータベース スキャンが導入されたため、これらの回避方法を使用する必要はなくなりました。

DPM でのチェックサム計算

Microsoft Data Protection Manager (DPM) Version 2 は、Exchange 2007 データベースのバックアップと復元をサポートします。DPM は、差分ブロック同期を実行することによって、意図的に完全な VSS バックアップを作成できます。この意図的な完全バックアップは、前回の完全バックアップ以降に変更されたブロックのみをコピーします (これにより、バックアップ時間が短縮されます)。意図的な完全バックアップの副作用は、変更されていないデータベース ページがチェックサム計算されないことです。このため、一部のデータベース ページは、長期間にわたってチェックサム計算されない場合があります。ブロックの差分バックアップでは、元のコピーが信頼でき、破損していないことを保証する方法はありません。管理者にわかるのは、バックアップ コピーが検証されたことだけです。

データベースのページの解放

ページの解放 (ゼロ設定またはページ除去とも呼ばれます) は、上書き用に選択した文字でデータベース内のデータが上書きされるストリーミング バックアップの最後に実行される処理です。このことにより、従来の方法でデータを回復することはできなくなります。Exchange サーバーからアイテムが削除され (たとえば、ユーザーが自分のメールボックスからメッセージを削除する)、削除済みアイテムの保存が無効になっている場合、そのアイテムによって占有されていたページは未使用としてマークされます。ページの解放が有効になっている場合、未使用ページに格納されているデータは、オンライン バックアップ中に選択された上書き文字で上書きされます。各データベース ページがバックアップされるときに、ページは、ハード ディスク上のデータベース内で、選択された文字で一度に上書きされます。バックアップが完了すると、削除されたデータはバックアップコピーに存在しますが、データベースには存在しなくなり、従来の方法で回復することはできなくなります。

Exchange 2007 RTM では、Zero Database During Backup レジストリ キーを設定することによって、ストリーミング オンライン バックアップが実行されたときに、削除済みのデータベース ページをゼロ設定できました。この方法は適切に動作しました。ただし、VSS バックアップおよび CCR では、VSS バックアップに削除済みのページをゼロ設定する方法が用意されていないため、この方法ではもはや十分ではありません。

note注 :
ベスト プラクティスとして、データベースでページの解放を有効にする場合、データベースを作成する際に有効にしておく必要があります。データベースを作成する際にページの解放を構成しない場合、初回のページの解放がデータベースに対して行われ、これがサーバーのパフォーマンスに重大な影響を与えます。ページの解放でデータベースの初回受け渡しが完了した後は、パフォーマンスに及ぼす影響は非常に小さいものです。調整を使用すると、初回のページの解放がパフォーマンスに与える影響を制限できます。

連続レプリケーションによるページの解放

Exchange Server 2003 および Exchange 2007 では、ページの解放が必要な場合は、ストリーミング バックアップを使用して VSS バックアップを補強することができました。Exchange 2007 での CCR および LCR の導入により、ページの解放により、対応するトランザクション ログが生成されずにデータベースが変更されるという別の問題が発生します。つまり、CCR および LCR 構成では、ページの解放動作はデータベース間でレプリケートされません。Exchange 2007 RTM で、CCR でのページの解放を実効性のあるものにするには、次の作業のいずれかを実行する必要があります。

  • 各コピーに対してストリーミング バックアップを実行します。これにより、ノード間で CCR クラスタ化メールボックス サーバーが移動します。
  • ターゲット データベースをオフラインにし、Eseutil を使用して eseutil /z コマンドを実行します。

ただし、セキュリティと準拠に関する懸念が高まっているため、これらのオプションでは十分ではなくなりました。Exchange 2007 SP1 および SP2 では、ページの解放はバックグラウンド プロセスに移動され、ログが生成されます。このログを送信して、スタンバイ連続レプリケーション (SCR) を使用する環境だけでなく、CCR 環境および LCR 環境のデータベース コピーにページの解放をレプリケートすることができます。

note注 :
オンライン保守時にページの解放を有効にすると、一時的にログの生成が増加します。機能を有効にしてからしばらくすると、ログの生成処理はページの解放を有効にする前のレベルに戻ります。

Exchange 2007 SP1 および SP2 でのオンライン保守によるデータベース スキャン

Exchange 2007 SP1 および SP2 でオンライン保守によるデータベース スキャンを有効にすると、Exchange はデータベース ページを読み取り、チェックサム計算し、構成されている場合はページの解放を実行します。これらの手順はすべて、バックグラウンドで実行されます。

Exchange 2007 SP1 および SP2 のオンライン保守によるデータベース スキャンには、次の機能があります。

  • オンライン保守によるデータベース スキャンは、既定では有効になっていません。データベース スキャンはサーバーのパフォーマンスに影響を与える可能性があるため、レジストリにサブキーを追加して手動で選択する必要があります。詳細については、後の「レジストリ キーを使用したオンライン保守によるデータベース スキャンの有効化および構成」を参照してください。
  • データベースのチェックサム計算は、ページの解放と共に、または単独で有効にすることができます。
  • データベースのページの解放とチェックサム計算は、ストリーミング バックアップ プロセスの外側で実行されます。どちらの操作も、ページがディスクから取得されるときにページに対して実行されます。いずれかが有効になっている場合、ページの解放とオンライン チェックサムの検証の両方を行う 1 つのデータベース スキャン タスクが存在します。
  • データベース スキャンは、オンラインでのディスクの最適化と似た方法で進捗状況を追跡します。進捗状況を定期的に更新するため、中断後に再開したときに中断したところから続行できます。
  • データベース スキャンは、サーバー レベルでのみ有効にできます。ストレージ グループ レベルおよびデータベース レベルでのデータベース スキャンの有効化はサポートされていません。
  • データベース スキャンは、CCR と LCR の両方で、データベース コピー間で変更をレプリケートするデータベースのページの解放メカニズムを提供します。
  • 変更を CCR コピーおよび LCR コピーにレプリケートできるよう、データベース スキャンではページの解放トランザクションが通常のトランザクション ログ記録プロセスを通過する必要があります。
  • 調整は、320 KB の I/O ごとに、指定されたミリ秒数にわたってオンライン保守によるデータベース スキャンを中断します。このプロセスにより、サーバーは他のタスクを実行できます。平日にオンライン保守によるデータベース スキャンを実行する場合などは、調整を使用して、サーバー上でオンライン チェックサム プロセスがパフォーマンスに与える影響を軽減できます。
  • オンライン保守によるデータベース スキャンを有効にすると、特定のデータベースに対してスケジュールされているオンライン保守の時間帯は、データベース スキャン プロセスとデータベースのオンラインでのディスクの最適化プロセスに分けられます。たとえば、8 時間のオンライン保守の時間帯をスケジュールする場合、約 4 時間がデータベース スキャン タスクに使用され、4 時間がオンラインでのディスクの最適化タスクに使用されます。

レジストリ キーを使用したオンライン保守によるデータベース スキャンの有効化および構成

次の表は、オンライン保守によるデータベース スキャンを有効にして構成するために使用できるレジストリ サブキーを示しています。これらのサブキーは、管理者がレジストリに追加する必要があります。これらは、Exchange のインストール時に既定でレジストリに追加されません。各サブキーのパスは HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSExchangeIS\ParametersSystem です。

Caution注意 :
レジストリに対して誤った編集を行うと、重大な問題が発生する可能性があり、オペレーティング システムの再インストールが必要になる場合があります。 誤ったレジストリ編集に起因する問題は、解決できない場合もあります。 レジストリを編集する前に、重要なデータをバックアップしてください。

これらのレジストリ キーを使用したオンライン保守によるデータベース スキャンの有効化と構成の詳細については、「Exchange 2007 SP1 および SP2 でオンライン保守によるデータベース スキャンを設定する方法」を参照してください。

タスク レジストリ サブキー 種類 説明

オンライン保守によるデータベース チェックサム計算の有効化

Online Maintenance Checksum

REG_DWORD

このレジストリ サブキーにより、オンライン保守の処理中にデータベースのチェックサム計算が有効になります。レジストリにこのサブキーが存在しない場合 (または、存在するが 0 に設定されている場合)、データベースのチェックサム計算は実行されません。

オンライン保守によるデータベースのページの解放の有効化

Zero Database Pages During Checksum

REG_DWORD

このレジストリ サブキーにより、データベースのページの解放が有効になります。レジストリにこのサブキーが存在しない場合 (または、存在するが 0 に設定されている場合)、オンライン保守によるデータベース スキャンの実行時にページの解放は実行されません。

オンライン保守によるデータベース調整の有効化

Throttle Checksum

REG_DWORD

このレジストリ サブキーを使用して調整時間 (320 KB の I/O ごとに確保するミリ秒単位の時間) を指定します。サーバーはこの間に他のタスクを実行できます。レジストリにこのサブキーが存在しない場合 (または、値が 0 に設定されている場合)、調整は使用されません。

オンライン保守によるデータベース チェックサム計算およびページの解放を監視するためのパフォーマンス カウンタ

次の表は、データベース スキャンでのシステム パフォーマンスを監視および分析するために使用できるパフォーマンス カウンタを示しています。

note注 :
次の表に示されたパフォーマンス カウンタを使用するには、拡張 ESE (Extensible Storage Engine) パフォーマンス カウンタを有効にする必要があります。拡張 ESE パフォーマンス カウンタを有効化する方法については、拡張 ESE パフォーマンス カウンタを有効化する方法のページを参照してください (このサイトは英語の場合があります)。

チェックサム計算のパフォーマンスを監視するカウンタ

パフォーマンス カウンタ 説明

MSExchangeDatabase\Online Maintenance (DB Scan) Pages Read/sec

このパフォーマンス カウンタは、オンライン保守によるデータベース スキャンの実行中に、Exchange ストア全体のすべてのデータベースからデータベース ページが読み取られる速度を示します。

MSExchangeDatabase==>Instances\Online Maintenance (DB Scan) Pages Read/sec

このパフォーマンス カウンタは、オンライン保守によるデータベース スキャンの実行中に、個別のインスタンス (単一のストレージ グループなど) のデータベース ページが読み取られる速度を示します。

ページの解放のパフォーマンスを監視するカウンタ

パフォーマンス カウンタ 説明

MSExchangeDatabase\Online Maintenance (DB Scan) Pages Zeroed/sec

このパフォーマンス カウンタは、オンライン保守によるデータベース スキャンの実行中に、Exchange ストア全体のすべてのデータベースのデータベース ページがゼロ設定される速度を示します。

MSExchangeDatabase\Database==>Instances\ Online Maintenance (DB Scan) Pages Zeroed/sec

このパフォーマンス カウンタは、オンライン保守によるデータベース スキャンの実行中に、個別のインスタンス (単一のストレージ グループなど) のデータベース ページがゼロ設定される速度を示します。

オンライン保守によるデータベース スキャンを監視するためのイベント

次の表は、オンライン保守によるデータベース スキャンを監視するためにイベント ビューアで使用できるイベントを示しています。

詳細については、「Exchange 2007 SP1 および SP2 でオンライン保守によるデータベース スキャンを監視する方法」を参照してください。

イベント 説明 イベント ビューア内のアプリケーション ログの例

イベント 717:データベース チェックサムのバックグラウンド タスクが開始されました。

このイベントは、データベース チェックサム計算が開始されたときに発生します。

該当なし

イベント 718:データベース ページの解放のバックグラウンド タスクが開始されました。

このイベントは、データベース ページの解放が開始されたときに発生します。

該当なし

イベント 721:データベース チェックサムのバックグラウンド タスクが完了しました。

このイベントは、データベース チェックサム計算が完了したときに発生します。このイベントは、次の情報を報告します。

  • 参照したページの数
  • 正しくないチェックサムの数
  • 初期化されていないページの数

イベントの種類 : 情報

イベント ソース : ESE

イベント カテゴリ : Online Defragmentation

イベント ID : 721

日付 : 6/20/2007

時刻 : 08:21:37 AM

ユーザー : 該当なし

コンピュータ : ExchangeServer01

説明 :

MSExchangeIS (6544) 第 3 ストレージ グループ:データベース 'J:\sg3\priv3.edb' に対するオンライン保守によるデータベース チェックサム バックグラウンド タスクが完了しました。この処理は 2007/7/9 に開始されて合計 20 秒間実行され、1 日間で 1 回の呼び出しが必要でした。

操作の概要 :

768 ページ参照されました。

正しくないチェックサムが 0 件あります。

初期化されていないページが 268 ページあります。

イベント 722:データベース ページの解放のバックグラウンド タスクが完了しました。

このイベントは、データベース ページの解放が完了したときに発生します。このイベントは、次の情報を報告します。

  • 参照したページの数
  • 正しくないチェックサムの数
  • 初期化されていないページの数
  • 前回の解放以降変更されていないページ
  • 解放された未使用ページの数
  • 参照された使用済みページの数
  • 解放された削除済みレコードの数
  • 解放された未参照のデータ群の数

イベントの種類 : 情報

イベント ソース : ESE

イベント カテゴリ : Online Defragmentation

イベント ID : 722

日付 : 6/20/2007

時刻 : 08:21:37 AM

ユーザー : 該当なし

コンピュータ : ExchangeServer01

説明 :

MSExchangeIS (6544) 第 3 ストレージ グループ:データベース 'J:\sg3\priv3.edb' に対するオンライン保守によるデータベースの解放バックグラウンド タスクが完了しました。この処理は 2007/6/20 に開始されて合計 369 秒間実行され、1 日間で 1 回の呼び出しが必要でした。操作の概要 :

5,850,768 ページ参照されました。

正しくないチェックサムが 0 件あります。

初期化されていないページが 72,681 ページあります。

4,379,723 ページが前回の解放以降変更されていません

解放された未使用ページは 33,759 ページです

参照された使用済みページは 1,210,764 ページです

解放された削除済みレコードは 57,214 です

解放された未参照のデータ群は 0 です

イベント 723:データベース チェックサムのバックグラウンド タスクでエラーが発生しました。

このイベントは、データベース チェックサムのバックグラウンド タスクでエラーが発生したときに発生します。

該当なし

イベント 724:データベース ページの解放のバックグラウンド タスクでエラーが発生しました。

このイベントは、データベース ページの解放のバックグラウンド タスクでエラーが発生したときに発生します。

該当なし

イベント 729:データベース ページの解放が一時停止されました。

このイベントは、オンライン保守の実行中にフラッシュ可能な空きページがないことが原因で、データベース ページの解放が一時停止されたときに発生します。

イベントの種類 : エラー

イベント ソース : ESE

イベント カテゴリ : オンライン保守

イベント ID : 729

日付 : 7/27/2007

時刻 : 05:05:30 AM

ユーザー : 該当なし

コンピュータ : ExchangeServer01

説明 :

MSExchangeIS (5828) SG15: 過去 60 分以内に、次のデータベースに対するオンライン保守によるページの解放が 1 回以上一時停止されました:'v:\sg15\data\priv15test.edb'.ESE データベース キャッシュには、一覧に示されたデータベースに対してオンライン保守によるページの解放を同時に実行するのに必要な容量の ESE データベース キャッシュがありません。アクション : 一覧に示されたデータベースに対するオンライン保守のタイム ウィンドウを交互に実行するか、サーバーの物理 RAM の容量を増やします。

詳細情報

System Center DPM 2007 の詳細については、System Center Data Protection Manager 2007 についてのページを参照してください (このサイトは英語の場合があります)。

DPM 関連の情報については、Exchange Server チーム ブログの記事 System Center Data Protection Manager 2007 Beta 2 を参照してください (このサイトは英語の場合があります)。

note注 :
各ブログの内容とその URL は、将来予告なしに変更されることがあります。 各ブログの内容は、保証なしに "現状のまま" 提供され、権利を付与するものではありません。 含まれているスクリプト サンプルまたはコードの使用は、「Microsoft Terms of Use」に規定されている条件に従います (このサイトは英語の場合があります)。

オンライン保守によるデータベース スキャンおよび CCR の詳細については、「クラスタ連続レプリケーションの計画」を参照してください。

参照している情報が最新であることを確認したり、他の Exchange Server 2007 ドキュメントを見つけたりするには、Exchange Server TechCenter を参照してください。