次の方法で共有


ドメイン コントローラーを復元すると、ドメイン コントローラー間の不整合が発生する可能性があります

この記事では、ドメイン コントローラーを復元するとドメイン コントローラー間の不整合が発生する問題の解決に役立ちます。

適用対象: Windows Server 2012 R2
元の KB 番号: 316829

現象

ドメイン コントローラーを復元すると、ドメイン コントローラー間の不整合を示すイベント ID 1587 が発生する可能性があります。 この場合、一部の残留オブジェクトが復元されたドメイン コントローラーに存在する可能性があります。 また、復元されたドメイン コントローラー上の新しいオブジェクトはレプリケートされません。

原因

この問題は、ドメイン コントローラーが新しい呼び出し ID を割り当て、元の highwater マークを使用しているために発生します。

回避策

この問題を回避するには、復元されたドメイン コントローラーを降格してから昇格します。 影響を受けるサーバーを降格する前に、影響を受けるサーバーを別のドメイン コントローラーに強制的に完全にレプリケーションします。 (大規模なドメインでは、完全同期がリソースを大量に消費する可能性があります)。ドメイン パーティションと構成パーティションで完全同期を実行します。 次の行は、同期の実行に使用する Repadmin コマンドの構文を示しています。

repadmin /sync <Naming Context> <Dest DC> <Source DC GUID> [/force] [/full]

次の行は、このコマンドの使用例です。

repadmin /sync DC=domain,DC=root good_DC dc1 122a5239-36b3-488a-b24c-971ed0ca8a46 /force /full 

このコマンドの例では、次の手順を実行します。

  • "DC=domain,DC=root" はドメインの名前付けコンテキストです。
  • "good_DC" は宛先 DC です。 これは、更新プログラムを受け取る優れたパートナーです。
  • DSA GUID は、復元された DC のレプリケーション GUID です。 これは、復元されたサーバーで Repadmin /showreps を実行することで取得できます。 GUID は、"DC オブジェクト GUID" の上部に表示されます。

同期が成功すると、次のメッセージが表示されます。122a5239-36b3-488a-b24c-971ed0ca8a46 から正常に完了Good_DC同期します。

次のようなコマンドを使用して、構成の名前付けコンテキストのプロセスを繰り返します。

repadmin /sync cn=configuration,DC=domain,DC=root good_DC dc1 122a5239-36b3-488a-b24c-971ed0ca8a46 /force /full

これを行った後、問題は解決されない可能性があります。 これを行った後、修正プログラムをインストールするか、降格してから、ドメイン コントローラーを昇格して問題を解決します。

状態

Microsoft は、この記事の冒頭に記載されている Microsoft 製品の問題であることを確認しました。 この問題は、Windows 2000 Service Pack 3 で最初に修正されました。

詳細

ドメイン コントローラーを復元すると、最もコミットされた USN がバックアップが作成された時点にロールバックされます。 ドメイン コントローラーの呼び出し ID は廃止され、新しい呼び出し ID が割り当てられます。 パートナーが復元後に初めてレプリケートしようとすると、次のメッセージが記録されます。

イベントの種類: 情報
イベント ソース: NTDS レプリケーション
イベント カテゴリ: (5)
イベント ID: 1587
日付: <DateTime>
時刻: <DateTime>
ユーザー: CONTOSO\CO-NA-DC-01$
コンピューター: CO-DC-02
説明:
objectGuid d0a6a575-9702-4f4e-bf68-bb2a9f875188 に対応するディレクトリ サービス エージェント (DSA) は、USN 94727614 でのバックアップからのローカル DSA の最新の復元の前にあるブックマークから始まる変更を要求しました。 ブックマークは次のように調整されています。以前の呼び出し ID: bc546028-fae7-4978-abe0-d294694da32b
以前のオブジェクト更新 USN: 95853579
前のプロパティの更新 USN: 95853579
新しい呼び出し ID: ae6286cb-740b-4bb3-ace7-9577efa9dc9f
新しいオブジェクト更新 USN: 94727614
新しいプロパティ更新 USN: 94727614

このイベントは、復元されたドメイン コントローラーの場合に一般的です。 単独では、これは問題を示すものではありません。 これは、復元されたドメイン コントローラーで作成されたオブジェクトが "サイレント" にレプリケートされない場合に問題になります。

問題のシナリオでは、最も高い USN がロールバックされます。 ただし、ブックマーク (または "最新" ベクター リセット) 中に、ソース ドメイン コントローラーは復元前に存在していた最も高い USN 値を提供します。 最大のCommittedUSN 属性値の間に USNchanged 値を持つオブジェクトは、レプリケーションでは考慮されません。

たとえば、ドメイン コントローラー 1 の USN が最も高い 100 であるとします。 そのレプリケーション パートナーであるドメイン コントローラー 2 には、ドメイン コントローラー 1 の "最新" ベクトルが 100 です。

最大 USN が 50 のバックアップからドメイン コントローラー 1 を復元します。 ドメイン コントローラー 2 を使用した次のレプリケーションの後、ドメイン コントローラー 1 はブックマークを 100 にリセットします (50 にする必要があります)。 ドメイン コントローラー 1 は、変更 51、52、および 53 を生成します。 ドメイン コントローラー 2 は、レプリケーションをネゴシエートするときに、変更が 100 まで変更されていると考えるので、変更を考慮することはありません。 ドメイン コントローラー 1 は変更を続け、最終的には 101 に達します。 変更 101 はレプリケートされますが、変更 51 から 100 はレプリケートされません。

場合によっては、この状態を検出できます。 復元されたドメイン コントローラー上の rootDSE オブジェクトの現在の highestCommittedUSN 属性を読み取る場合は、グループまたは ADSI Edit を使用します。 次に、パートナーの 1 人の repadmin /showreps /verbose コマンドからの出力と比較します。 Repadmin 出力で、各名前付けコンテキストの復元されたドメイン コントローラーの "USN ###/OU" 値を探します。 Repadmin の値が highestCommittedUSN 属性より大きい場合、復元されたドメイン コントローラーで問題が発生しています。

復元されたドメイン コントローラーが、その highestCommittedUSN 属性が、(この記事の例のように) 他のドメイン コントローラーに記録されている "最新の状態" ベクターに到達または超過する十分な更新を発生させた場合、一部の変更はレプリケーションに考慮されません。 ただし、新しい変更はレプリケートされます。変更が反映されない場合は、"残留オブジェクト" と呼ばれます。