DFS レプリケーション サービスが停止すると、ダウンストリーム サーバーの DFS レプリケーション ログにイベント ID 2104 が記録されます

適用先
Windows Server 2008 Microsoft Windows Server 2003

現象

たとえば次のようなシナリオを考えてみます。

  • 分散ファイル システム (DFS) レプリケーション ネットワーク環境を構築します。 このネットワーク内のサーバーは、2003 R2 または Windows Server 2008 Windows Server実行されています。
  • ハブ サーバーとして機能するダウンストリーム サーバーがあります。 このサーバーは、アップストリーム サーバーからデータをレプリケートします。

このシナリオでは、DFS レプリケーション サービスがダウンストリーム サーバーで停止する可能性があります。 さらに、イベント 2104 は、ダウンストリーム サーバーの DFS レプリケーション ログに記録されます。

ログ名: DFS レプリケーション
ソース: DFSR
イベント ID: 2104
タスク カテゴリ: なし
レベル:エラー
キーワード:クラシック
ユーザー: N/A
コンピューター: <コンピューター名>
説明:
DFS レプリケーション サービスは、ボリューム <ドライブ文字>:の内部データベース エラーから回復できませんでした。 このボリューム上のすべてのレプリケートされたフォルダーに対してレプリケーションが停止されました。

追加情報:
エラー: 9214 (内部データベース エラー (-1605))
ボリューム: <GUID>
データベース: <ドライブ文字>:\システム ボリューム情報\DFSR

注 エラー コード "-1605" は"JET_errKeyDuplicate" Jet エラーです。

同時に、イベント 2212 はアップストリーム サーバーの DFS レプリケーション ログに記録されます。

ログ名: DFS レプリケーション
ソース: DFSR
イベント ID: 2212
タスク カテゴリ: なし
レベル: 警告
キーワード:クラシック
ユーザー: N/A
コンピューター: <コンピューター名>
説明:
DFS レプリケーション サービスで、ボリューム <ドライブ文字>:で予期しないシャットダウンが検出されました。 これは、サービスが異常終了した場合 (電源喪失など)、またはボリュームでエラーが発生した場合に発生する可能性があります。 サービスによって復旧プロセスが自動的に開始されました。 確実に復旧できないと判断された場合、サービスはデータベースを再構築します。 ユーザー アクションは必要ありません。

追加情報:
ボリューム: <ドライブ文字>
GUID: <GUID>

しばらくすると、DFS レプリケーション サービスが自動的に再起動します。 ただし、同じ問題が再び発生する可能性があります。

原因

DFS レプリケーション サービス エラーが発生するのは、DFS レプリケーション データベースが、イベント ID 2122 のインスタンスをログに記録したアップストリーム サーバー上のダーティシャットダウン状態から復旧するためです。 ただし、ダウンストリーム サーバーでデータベースの不整合が発生します。

アップストリーム サーバーは、アップストリーム サーバーがグローバル バージョン シーケンス番号をデータベースにコミットする前に、ダウンストリーム サーバーへの更新のグローバル バージョン シーケンス番号を設定します。 その後、アップストリーム サーバーがクラッシュするか、最新のグローバル バージョン シーケンス番号をデータベースにコミットする前に電源喪失またはハード ディスク障害が発生します。

アップストリーム サーバーは再開後、別の更新プログラム用に既に発行されているグローバル バージョン シーケンス番号を再利用します。 ダウンストリーム サーバーは、同じグローバル バージョン シーケンス番号を持つさまざまな更新プログラムがあるため、不整合を検出します。

ただし、ダウンストリーム サーバーは、同じコンテンツ セット内の 2 つのID_RECORDsが同じグローバル バージョン シーケンス番号を持つことができないため、不整合を解決できません。 この問題を解決しようとすると失敗し、"JET_errKeyDuplicate" エラーを表す "-1605" エラー コードが生成されます。

修正プログラムがインストールされると、DFS レプリケーションは別の Jet データベース関数を呼び出します。 この関数は、アップストリーム サーバーがダウンストリーム サーバーへの更新のグローバル バージョン シーケンス番号を設定する前に、データベース トランザクションがアップストリーム サーバーのディスクにコミットされていることを確認します。

解決策

この問題を解決するには、次の手順を実行します。

  1. ダウンストリーム サーバーでデータベースの不整合の問題を解決するには、「回避策」セクションの手順を実行します。

  2. この問題が再び発生しないようにするには、アップストリーム サーバーに適切な修正プログラムをインストールします。

    • 2003 R2 Windows Server実行されているアップストリーム サーバーで、この修正プログラムをインストールします。
    • 2008 Windows Server実行されているアップストリーム サーバーで、次の Microsoft サポート技術情報の記事から修正プログラムをインストールします。
      979247 多くのアップストリーム サーバーからデータをレプリケートするように構成されているWindows Server 2008 ベースのダウンストリーム サーバーで DFS レプリケーション サービスがクラッシュする

修正プログラムの情報

マイクロソフトでは、この問題を修正する修正プログラムを提供しています。 ただし、この修正プログラムは、ここで説明する問題のみを修正することを目的としたものです。 この修正プログラムは、ここで説明する問題が発生しているシステムにのみ適用してください。 この修正プログラムは、今後さらにテストを行う場合があります。 したがって、この問題で深刻な影響を受けていない場合は、この修正プログラムが含まれる次のソフトウェア更新プログラムがリリースされるまで待つことを推奨します。

修正プログラムをダウンロードできる場合は、このサポート技術情報の資料の上部に「修正プログラムのダウンロード」セクションがあります。 このセクションが表示されていない場合は、Microsoft カスタマー サービス & サポート にお問い合わせのうえ、修正プログラムを入手してください。

注: 別の問題が発生した場合、またはトラブルシューティングが必要な場合には、別のサービス リクエストを作成することが必要になる場合があります。 特定の修正プログラムの対象とならない追加の質問および問題については、通常のサポート料金が適用されます。 Microsoft カスタマー サービス & サポート の電話番号一覧または別のサービス リクエストの作成については、次のマイクロソフト Web サイトを参照してください。

http://support.microsoft.com/contactus/?ws=support メモ "修正プログラムのダウンロードが可能" フォームには、修正プログラムを使用できる言語が表示されます。 使用している言語が表示されない場合は、その言語の修正プログラムが存在しないことになります。

前提条件

2003 R2 Service Pack 2 (SP2) Windows Server実行されているアップストリーム サーバーにこの修正プログラムを適用します。

Windows Server 2003 Service Pack を入手する方法の詳細については、次の記事番号をクリックして、Microsoft サポート技術情報の記事を参照してください。

889100 Windows Server 2003 の最新のサービス パックを入手する方法

レジストリ情報

このパッケージに含まれている修正プログラムを使用するために、レジストリを変更する必要はありません。

再起動の必要性

この修正プログラムをインストールした後、コンピューターを再起動する必要があります。

修正プログラムの置き換えに関する情報

この修正プログラムを適用しても、以前にリリースされた修正プログラムが置き換えられることはありません。

ファイル情報

この修正プログラムの英語 (米国) バージョンでは、次の表に示す属性を持つファイルがインストールされます。 これらのファイルの日付と時刻は世界協定時刻 (UTC) で記載されています。 お使いのコンピューターでは、これらのファイルの日付と時刻は夏時間 (DST) 調整済みのローカル時刻で表示されます。 さらに、ファイルに対して特定の操作を実行すると、日時が変更される場合があります。

Windows Server 2003 R2 ファイル情報注

  • これらのテーブルに記載されているファイルに加えて、この修正プログラムは、Microsoft デジタル署名で署名された関連するセキュリティ カタログ ファイル (KB番号.cat) もインストールします。

サポートされているすべての x86 ベースバージョンのWindows Server 2003 R2 SP2

ファイル名 ファイルのバージョン ファイル サイズ 日付 時刻 プラットフォーム SP の要件
W03a3409.dll 5.2.3790.4590 43,520 2009 年 9 月 16 日 12:16 x86 SP2
Dfsr.exe 5.2.3790.4651 1,705,984 2010 年 1 月 18 日 20:30 x86 SP2

サポートされているすべての x64 ベースバージョンのWindows Server 2003 R2 SP2

ファイル名 ファイルのバージョン ファイル サイズ 日付 時刻 プラットフォーム SP の要件 サービス ブランチ
Dfsr.exe 5.2.3790.4651 3,595,264 2010 年 1 月 20 日 01:57 x64 SP2 該当なし
W03a3409.dll 5.2.3790.4590 44,032 2010 年 1 月 20 日 01:57 x64 SP2 該当なし
Ww03a3409.dll 5.2.3790.4590 43,520 2010 年 1 月 20 日 01:57 x86 SP2 うわ ー

サポートされているすべての IA-64 ベースバージョンのWindows Server 2003 R2 SP2

ファイル名 ファイルのバージョン ファイル サイズ 日付 時刻 プラットフォーム SP の要件 サービス ブランチ
Dfsr.exe 5.2.3790.4651 5,501,440 2010 年 1 月 20 日 01:53 IA-64 SP2 該当なし
W03a3409.dll 5.2.3790.4590 42,496 2010 年 1 月 20 日 01:53 IA-64 SP2 該当なし
Ww03a3409.dll 5.2.3790.4590 43,520 2010 年 1 月 20 日 01:53 x86 SP2 うわ ー

回避策

DFS レプリケーション エラーの回避策

この問題を回避するには、古いID_RECORD レコードに対して廃棄処理を手動で実行し、新しいグローバル バージョン シーケンス番号を作成します。 手順は次のとおりです。

  1. 元の DFSR サーバーとファイル パスを決定します。 これは、ファイル GVSN の GUID と RG 名で構成され、CSID が一致します。

    したがって、上記の場合は、次のようになります。

    20091213 01:55:56.862 8820 RDCX 808 Rdc::SeedFile::Initialize ハッシュが一致します。 ダウンロードは冗長です。 uid:{8BB53DB2-9446-47D0-94E0-F93A56589D18}-v2357 gvsn:{58A90409-3866-4DC1-B4 74-BE1C8DE41B84}-v22461 fileName:4-5269.dot csId:{B890770A-6043-4004-A149-41E3A1935AC1

    20091213 01:55:57.705 8820 DOWN 5186 [ERROR] DownstreamTransport::RdcGet Failed on connId:{7D927665-24BF-4F 16-B503-708AABDBC9AE} csId:{B890770A-6043-4004-A149-41E3A1935AC1} rgName:SOME_RG 更新:

    実行:

     DFSRDIAG.EXE GUID2NAME /rgname:"SOME_RG" /guid:{58A90409-3866-4DC1-B474-BE1C8DE41B84}

  2. サーバーがわかったら、そのコンピューターに移動できます。

    • アップストリーム サーバーが 2008 R2 Windows Server実行されている場合は、次のコマンドを実行します。
      DFSRDIAG IDRECORD
    • アップストリーム サーバーが 2003 または 2008 Windows Server Windows Server実行している場合は、次のコマンドを実行します。
      /namespace:\\root\microsoftdfs path dfsridrecordinfo を WMIC.EXE します。アップストリーム サーバー側で重複した GVSN の Uid="<UID>" 呼び出し getfullfilepath
  3. 問題があるファイルの完全なパスを見つけます。

    1. Windows Server 2008 R2 を使用する場合は、DFSRDIAG IDRECORD を使用します。 次に例を示します。

      DFSRDIAG.EXE IDRECORD /UID:{8BB53DB2-9446-47D0-94E0-F93A56589D18}-v2357

    2. Win2003 または Win2008 を使用する場合は、WMIC を使用します。 次に例を示します。

      /namespace:\\root\microsoftdfs path dfsridrecordinfo を WMIC.EXE します。Uid="{8BB53DB2-9446-47D0-94E0-F93A56589D18}-v2357" 呼び出し getfullfilepath

  4. 同じフォルダー内のファイルのコピー (上の例では "4-5269.dot") を作成し、"fixed.ned" のようなランダムな名前を呼び出します。

  5. 古いファイルを削除します (上記の例では "4-5269.dot")。

  6. コピーしたファイルの名前を元の名前に戻します ("fixed.ned" から "4-5269.dot" に戻ります)。

  7. これにより、古いID_RECORDが廃棄され、新しいGVSNが作成され、すべてがうまくいくでしょう。

回避策の例

たとえば、影響を受けるダウンストリーム サーバーで次のデバッグ ログを受け取るとします。
20091213 01:55:56.862 8820 RDCX 808 Rdc::SeedFile::Initialize ハッシュが一致します。 The download is redundant, uid:{8BB53DB2-9446-47D0-94E0-F93A56589D18}-v2357 gvsn:{58A90409-3866-4DC1-B474-BE1C8DE41B84}-v22461 fileName:4-5269.dot csId:{B890770A-6043-4004-A149-41E3A1935AC120091213 01:55:57.705 8820 DOWN 5186 [ERROR] DownstreamTransport::RdcGet Failed on connId:{7D927665-24BF-4F16-B503-708AABDBC9AE} csId:{B890770A-6043-4004-A149-41E3A1935AC1} rgName:SOME_RG update: In this scenario, the "{58A90409-3866-4DC1-B474-BE1C8DE41B84}-v22461" GUID and the "SOME_RG"RgName には同じ "{B890770A-6043-4004-A149-41E3A1935AC1}" CSID があります。 したがって、このシナリオで遅延の問題を回避するには、次の手順に従います。

  1. 次のコマンドを実行して、問題のあるアップストリーム サーバー名を取得します。

    DFSRDIAG.EXE GUID2NAME /rgname:"SOME_RG" /guid:{58A90409-3866-4DC1-B474-BE1C8DE41B84}

  2. アップストリーム サーバーで、重複したグローバル バージョン シーケンス番号の GUID をデバッグ ログで見つけます。 次に、次のいずれかのコマンドを実行して、重複したグローバル バージョン シーケンス番号を持つファイルの完全なパスを取得します。

    • Windows Server 2008 R2 の場合は、次のコマンドを使用します。

      DFSRDIAG.EXE IDRECORD /UID:{8BB53DB2-9446-47D0-94E0-F93A56589D18}-v2357

    • Windows Server 2003 R2 または Windows Server 2008 の場合は、/namespace:\\root\microsoftdfs path dfsridrecordinfo command:WMIC.EXE を使用します。Uid="{8BB53DB2-9446-47D0-94E0-F93A56589D18}-v2357" 呼び出し getfullfilepath

  3. "4-5269.dot" ファイル名を取得するとします。 "4-5269.dot" ファイルをコピーし、コピーしたファイルの名前を "fix.dot" ファイル名に変更します。 "4-5269.dot" ファイルと "fix.dot" ファイルを同じフォルダーに配置してください。

  4. "4-5269.dot" ファイルを削除します。

  5. "fix.dot" ファイルの名前を "4-5269.dot" ファイル名に変更します。

次の手順に従って、この例の DFS レプリケーション データベースの問題を回避できます。

状態

Microsoft は、これが "適用対象" セクションに記載されている Microsoft 製品の問題であることを確認しました。

追加情報

ソフトウェア更新プログラムに関する用語の関連情報を参照するには、以下のサポート技術情報番号をクリックしてください。

824684 Microsoft ソフトウェア更新プログラムの説明に使用される標準用語の説明