この記事では、Windows 2008 または Windows 2012 でイベント ID 2213 をトリガーする問題について説明します。
適用対象: Windows Server 2008 R2 Service Pack 1
元の KB 番号: 2846759
まとめ
Microsoft では、修正プログラム 2663685を使用して、Windows Server 2008 R2 の DFS レプリケーション (DFSR) サービスに新機能を導入しました。 Windows Server 2008 R2 で修正プログラム 2663685以降のバージョンのDfsrs.exeをインストールした後、DFSR サービスは、データベースでダーティ シャットダウンが発生した後、拡張記憶域エンジン (ESE) データベースの自動復旧を実行しなくなります。 代わりに、新しい DFSR 動作がトリガーされると、イベント ID 2213 が DFSR ログに記録されます。 DFSR 管理者は、DFSR によってダーティ シャットダウンが検出された後、レプリケーションを手動で再開する必要があります。
Windows Server 2012 では、既定でこの動作が示されます。
DFSR サービスは、レプリケートされたフォルダーをホストするボリューム上のボリュームごとに 1 つの ESE データベースを保持します。 DFSR は、このデータベースを使用して、レプリケートされたフォルダー内の各ファイルとフォルダーに関するメタデータを格納します。 サービスが正常に動作し続けるためには、データベースの整合性を維持する必要があります。
サービスをシャットダウンする必要があることを DFSR に通知されると、ESE データベースへの未処理の変更のコミットが開始されます。 DFSR サービスがシャットダウンされる前に、DFSR サービスが保留中のすべての変更を DSFR ESE データベースにコミットできない場合、DFSR のダーティ シャットダウンが発生します。 DFSR サービスは、起動時にデータベースの整合性をチェックします。
ダーティ シャットダウンの復旧によって大きなバックログが発生する可能性があり、その結果、レプリケーションの競合が発生する可能性があります。 場合によっては、 hotfix 2780453 の修正プログラムがリリースされる前に、勝利したファイルがエンド ユーザーが望むバージョンではない可能性があります。 ダーティ シャットダウン中にレプリケーションを停止する更新プログラムは、レプリケーションが再開される前に最後のバックアップが実行されてからの差分をキャプチャするために管理者がデータをバックアップできるようにするセーフガードとして意図されていました。
修正プログラム 2780453をインストールした後、ダーティ シャットダウン中にレプリケーションを一時停止する必要がなくなりました。 hotfix 2780453からの修正は、すべての Windows 2012 の既定のメディアに含まれています。
ベスト プラクティス
サーバーの役割、OS、パッチ レベルに基づく自動回復のベスト プラクティス:
ロール | Windows Server 2008 R2 | KB 2780453がインストールされている Windows Server 2008 R2 | Windows Server 2012 |
---|---|---|---|
DC | オン | オン | オン |
クラスター ノード | オン | オン | オン |
書き込み可能な DFSR サーバー | "オフ" | オン | オン |
読み取り専用 DFSR サーバー | オン | オン | オン |
自動回復でレプリケーションの停止機能を無効にする
ダーティ データベースのシャットダウンが検出されたときに DFSR で自動回復を実行するには、Windows Server 2008 R2 に修正プログラム 2780453 がインストールされた後、次のレジストリ値を編集します。 この変更は、Windows Server 2012 のすべてのバージョンに展開できます。 値が存在しない場合は、作成する必要があります。
- キー:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\DFSR\Parameters
- 値: StopReplicationOnAutoRecovery
- 型: Dword
- データ: 0
イベント 2213 がログに記録された後にレプリケーションを再開する
イベント 2213 がログに記録された後、管理者は WMIC コマンドを実行してレプリケーションを再開する必要があります。 コマンドの詳細は、イベント ID 2213 のテキストで提供されます。
手順 1: DFSR サーバーに記録されたイベント ID 2213 の回復手順
ボリューム上のすべてのレプリケート フォルダー内のファイルをバックアップします。 これを行わないと、レプリケートされたフォルダーの復旧中に予期しない競合の解決によってデータが失われる可能性があります。
このボリュームのレプリケーションを再開するには、
DfsrVolumeConfig
クラスのResumeReplication
WMI メソッドを使用します。 たとえば、管理者特権でのコマンド プロンプトから、次のコマンドを実行します。
wmic /namespace:\\root\microsoftdfs path dfsrVolumeConfig where volumeGuid="E18D8280-2379-11E2-A5A0-806E6F6E6963" call ResumeReplication
手順 2: イベント ID 2213 回復手順の手順 2 から WMIC コマンドをコピーし、管理者特権のコマンド プロンプトに貼り付けます
コマンドが正常に実行されると、次の結果が返されます。
wmic /namespace:\\root\microsoftdfs pathdfsrVolumeConfig where volumeGuid="F1CF316E-6A40-11E2-A826-00155D41C919" call ResumeReplication
Executing(file://ww2008r2dc1/root/microsoftdfs:DfsrVolumeConfig.VolumeGuid=%22F1CF316E-6A40-11E2-A826-00155D41C919%22)-%3EResumeReplication()">\WW2008R2DC1\root\microsoftdfs:DfsrVolumeConfig.VolumeGuid="F1CF316E-6A40-11E2-A826-00155D41C919")->ResumeReplication()
メソッドの実行が成功しました。Out Parameters:instance of __PARAMETERS{ ReturnValue = 0;};
PowerShell ユーザーの場合、次のように、POWERShell から実行するには、WMIC コマンドに単一引用符を追加する必要があります。
wmic /namespace:\\root\microsoftdfs pathdfsrVolumeConfig where 'volumeGuid="F1CF316E-6A40-11E2-A826-00155D41C919"' call ResumeReplication
手順 3: イベント ID 2212 と 2214 がログに記録されているかどうかを確認する
レプリケーション再開コマンドを実行したサーバーにイベント ID 2212 と 2214 がログオンしているかどうかを確認します。 ダーティ シャットダウン後にレプリケートされたフォルダーを再初期化する (または初期同期を実行する) 必要がある場合は、回復に関する追加の注意を次の手順に従います。
- レプリケートされたフォルダーを無効にします。
- DFSR サーバーに記録されているイベント ID 2213 の前の 回復手順 セクションの手順を使用して、レプリケーションを有効にします。
- レプリケートされたフォルダーを有効にします。
WMIC コマンドを実行する前にレプリケートされたフォルダーを無効にして有効にした場合、ボリューム マネージャーがオフラインであるため、初期同期は行われません。
ダーティ シャットダウンの可能性を減らす手順
Windows では、サービスはシャットダウン通知を受信した後、30 秒でシャットダウンします。 30 秒後、Service Control Manager はサービスを強制的にシャットダウンします。 DFSR サービスが関係する場合、ビジー状態のハブ サーバーは、未解決の変更をデータベースにコミットするために 30 秒以上必要になる場合があります。 DFSR サービスが、Service Control Manager によって割り当てられた 30 秒以内にすべての変更をコミットしない場合、サービスは強制的に閉じられ、ダーティ シャットダウンの復旧がトリガーされます。
停電やその他の DFSR サーバーのハード 再起動によって、ダーティ シャットダウンの回復がトリガーされる場合もあります。 ダーティ シャットダウンの可能性を減らすには、DFSR サーバーが正常にシャットダウンできるように、DFSR サーバーが無停電電源装置 (UPS) に接続されていることを確認します。
サービスのシャットダウン時間を延長する
シャットダウンに 30 秒を超える DFSR サーバーでは、 WaitToKillServiceTimeout 値を使用して、すべてのサービスがシャットダウンできる期間を延長できます。
シャットダウンに時間が必要な DSFR サーバーでは、通常、ほとんどのサーバーの再起動またはサービスの再起動時にイベント 2212 と 2214 がログに記録されます。 または、ダーティ シャットダウンからの自動回復が有効になっている場合、DFSR サービスのサーバーの再起動または再起動のたびにイベント 2213 が記録されます。
- パス:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control
- 値: WaitToKillServiceTimeout
- 種類: 文字列
- データ: 300000
この値の単位はミリ秒です。 次の使用例は、5 分間のシャットダウン時間を表示します。 値は、必要に応じて増減できます。 この値は、DFSR だけでなく、すべてのサービスに影響します。 この値は、DFSR が正常にシャットダウンするのに十分な時間を与える最小値に設定することをお勧めします。 DFSR サービスをシャットダウンする必要がある期間を確認するには、次のプロセスを使用します。
WaitToKillServiceTimeout レジストリ値を 300000 ミリ秒 (5 分) の設定で追加します。 サーバーを再起動して設定を有効にします。
重要
2549760のインストールに関する注意事項については、次の「Notes about WaitToKillServiceTimeOut」セクションを参照してください)。
DFSR イベント 1006 (DFSR が停止中) と 1008 (DFSR 停止) について、サーバーの次のいくつかの再起動を監視します。 イベント 1006 から 1008 までの経過時間に注意してください。
WaitToKillServiceTimeout 値を変更して、DSFR が完全にシャットダウンする必要がある実際の時間をより正確に反映するように、シャットダウンに許容される時間を調整します。
WaitToKillServiceTimeOut に関する注意事項
サーバーを再起動するか、DFSR を複数回連続して再起動すると、DFSR をシャットダウンする必要がある時間の適切なサンプルは提供されません。 保留中のデータベース トランザクションを蓄積するには、サービスの実行時間をしばらく待つ必要があります。
WaitToKillServiceTimeout 設定の最大値は 1 時間です。 設定が 1 時間を超えると、SCM はサービスのシャットダウン時に既定の設定である 30 秒に戻ります。
WaitToKillServiceTimeout 設定が関係する場所で SCM が正しく動作することを確認するには、修正プログラム 2549760 が Windows Server 2008 R2 にインストールされていることを確認します。