多数のDCで-strictが長時間設定されている場合に、残留オブジェクトを適切に削除するにはどうすればよいですか?


16

私は最近、世界中の100を超えるサイトに120のドメインコントローラーが存在する環境にいました。このドメインはWindows 2000時代に始まり、時間が経つにつれてアップグレードされたため、新しいDCのデフォルトとして厳密なレプリケーション一貫性が設定されることはなく、どのDCでも有効になることはありませんでした。ディレクトリには長引くオブジェクトがあり、これにより、かなりの数の競合するオブジェクトが定期的に表示されます。

使用repadmin /removelingeringobjectsするには、次の2つのことを知っている必要があります。

  1. データベースに残留オブジェクトがあるDC

  2. 参照DCとして使用する残留オブジェクトを持たないDC。

明らかに、将来、この環境はすべての新しいDCに厳密な複製一貫性が適用され、repadmin /options * +strict現在のすべてのDCが厳密な複製一貫性を使用するように設定する必要がありますが、オブジェクトをクリーニングせずに複製を中断します

だから、私の質問はこれです:どのDCに残留オブジェクトがあり、どのDCにないのかわからないような大規模な環境では、使用するための良い基準DCをどのように識別できrepadmin /removelingeringobjectsますか? DCは、厳密なレプリケーションの一貫性を強制し、レプリケーションを中断する前に、残留オブジェクトを削除しますか?または、厳密モードをオンにrepadmin /replsumして、何が壊れているのかを確認して対処する方が簡単ですか?

回答:


11

これを修正するには時間がかかります。

すべてのレプリケーションを停止するには、次を実行します。

repadmin /options +DISABLE_OUTBOUND_REPL

すべてのDC。上記の設定は、管理者(あなた)の実行などの手動レプリケーションアクションを妨げないrepadmin /syncall /APedことに注意してください。ただし、通常のレプリケーションを再度有効にする前に、すべてのDCを完全に同期させることができるため、これは良いことです。

Repadminは、オブジェクトがServerAに存在し、ServerBには存在しない場合、残留オブジェクトであると判断します。ServerBは参照DCです。新しく作成されたオブジェクトを複製することと、既存のオブジェクトに更新を複製することの違いが重要です。新しく作成されたオブジェクトの複製=良好。既存のオブジェクトへの更新の複製=良好。宛先DCに存在しないオブジェクトへの更新の複製=悪い。

すべてのDCが適切な基準DCと一致するまで、泡立て、すすぎ、繰り返します。次に、どこでも厳密な整合性をオンにしてから、レプリケーションを再度有効にします。はい、参照DCに複製されていない他のリモートDCで作成された正当なオブジェクトを削除する危険があります。

すばらしい「Active Directoryレプリケーションモデルの仕組み」記事から:

レプリケーションの一貫性設定

残留オブジェクトの属性が変更されない場合、そのオブジェクトはレプリケーションと見なされません。ただし、属性が変更された場合、その属性はアウトバウンド複製と見なされます。宛先ドメインコントローラーはレプリケートされる属性のオブジェクトを保持していないため、更新を実行できません。この状態がどのように解決されるかは、ドメインコントローラーのレプリケーション整合性設定によって異なります。

Windows Server 2003またはWindows 2000 Server SP3を実行しているドメインコントローラーのレジストリ設定は、ドメインコントローラーが他のすべてのレプリカから削除された更新済みオブジェクトを複製および復元するかどうか、またはそのようなオブジェクトの複製がブロックされました。Windows 2000 Server SP3およびWindows Server 2003を実行しているドメインコントローラーでは、デフォルト設定が異なります。

厳密な複製の一貫性

削除されたオブジェクトの復元に関する問題を回避するために、新しく作成された(アップグレードされていない)Windows Server 2003フォレストでWindows Server 2003を実行しているドメインコントローラーは、持っていないオブジェクトの更新を受信すると、既定で受信レプリケーションをブロックします。

注•Active Directoryの複製では、更新の追跡を使用して、新しく作成されたオブジェクトの複製と既存のオブジェクトの属性の更新を区別します。残留オブジェクトの複製とは、オブジェクトが存在しないために宛先ドメインコントローラーが更新できないオブジェクトの属性を更新しようとすることです。

残留オブジェクトがソースドメインコントローラから削除されるか、厳密なレプリケーション一貫性設定が無効になるまで、オブジェクトのディレクトリパーティションでレプリケーションが停止します。

ServerBがServerAに「Hey、既存のobjectAに対していくつかの更新が行われました」と言ったとき。ServerAは次のように言います。「ちょっと待ってください。objectAもまったくありません。オブジェクト全体を送ってください!」厳密な一貫性がない場合。厳密な一貫性がある場合、ServerAは次のように言います。「何を待っているのですか?存在しないオブジェクトをどのように更新するのでしょうか?

ドメインコントローラに残留オブジェクトがあるかどうかを確認するには:

repadmin /removelingeringobjects ServerName ServerGUID DirectoryPartition /advisory_mode 

ServerGUIDは、既知の優れたリファレンスDCです。あなたはすでにこれを知っています...そして、上記の行をスクリプト化してすべてのDCで実行する方法...(foreach ($DC In $(Get-ADDomain).ReplicaDirectoryServers) { })...

一番下の行と比較するためには、優れたソースDCが必要です。既知の良好なソースDCがない場合、またはわからない場合は、いずれかを選択する必要があります。もちろん、書き込み可能なGCである必要があります。それは相対的です-すべてのドメインコントローラーがオブジェクトの存在とそのオブジェクトの属性に同意する場合、それは残留オブジェクトではありません。

foreach($GC In $(Get-ADForest).GlobalCatalogs) { repadmin /removelingeringobjects $_.name 85d158d2-a006-4fff-b1e5-f9b6eaabab2b '$directoryPartition'

これは、フォレスト内のすべてのGCのディレクトリパーティションを、GUIDとして指定する必要がある既知の適切なソースと再同期します。

その後、すべてのドメインコントローラーをすべて一致させ、レプリケーションが正常に完了したら、次に、すべてのドメインコントローラーの厳密な一貫性を有効にします。

編集:これこの問題に関するMicrosoftのパーティーラインです。

最後に、これはあなたに問題を引き起こさない限り、それが価値があるよりも修正するのがより面倒かもしれません。私はそれを言うのは嫌いですが、ADはその中に残っているオブジェクトでまだ正常に機能します。


4

クリーンなDCを識別できない場合の一般的な原則は次のとおりです。

for each $sourceDC in $allDCs
    for each $targetDC in $allDCs
        if ($targetDC <> $sourceDC) then
            run repadmin with $sourceDC and $targetDC
        end if
    next
next

このプロセスについては、http//blogs.technet.com/b/glennl/archive/2007/07/26/clean-that-active-directory-forest-of-lingering-objects.aspxで説明しています。

ただし、ReplDiagを見てくださいrepadminソースDCとターゲットDCのすべての組み合わせに対して実行することにより、プロセスを自動化します。その後/advisory_only、さらに残っているオブジェクトをチェックします。


これはまだ14,400回の相互作用であり、その間、追加の残留オブジェクトをディレクトリ全体に複製できます。これを回避するためにレプリケーションが中断するように、最初に+ strictを有効にすることをお勧めしますか?このサイズのディレクトリでは、14,400回の反復で間違いなく十分な時間がかかり、より悪いレプリケーションが発生する可能性があります。
MDマーラ

何かと並列化できますか?
トム・オコナー

@ TomO'Connor興味深いアイデア。PowerShellリモーティングを使用すれば可能になるはずです。その後、各DCをrepadmin並列で実行することができます!!!
ロングネック

7
@MDMarra世界中にあり、Win2k以来導入されており、それ以来さまざまなバージョンでアップグレードされている120-DCドメインを迅速かつ簡単にクリーンにした場合、会社は管理人にそれを実行させるだけです... ;)
ライアンリース

1
あなたは膨大な数のDCを持っていることを知っていますが、実際に管理者が変更を加えるために使用しているのはどれくらいですか?これらのDCとそれらのサイトのDCだけでこのクリーンアップを実行することから始めて、それらのDCを厳密に設定できます。他の人と続けます。これにより、起こりうる問題を最小限に抑えることができます
ロングネック
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.