Bagaimana cara menghapus objek yang melekat dengan benar ketika -strict telah diatur pada sejumlah besar DC untuk waktu yang lama?

16

Saya baru-baru ini berada di lingkungan di mana terdapat 120 pengontrol domain di lebih dari 100 situs di seluruh dunia. Domain ini dimulai pada era Windows 2000 dan ditingkatkan dari waktu ke waktu, sehingga konsistensi replikasi yang ketat tidak pernah ditetapkan sebagai default untuk DC baru dan tidak pernah diaktifkan pada DC apa pun. Ada objek yang melekat di direktori dan Anda secara teratur melihat sejumlah objek yang konflik karena hal ini.

Menggunakan repadmin /removelingeringobjectsmembutuhkan mengetahui dua hal:

  1. DC (s) mana yang memiliki objek yang melekat di database

  2. DC yang tidak memiliki objek tersisa untuk digunakan sebagai referensi DC.

Jelas, di masa depan, lingkungan ini harus ditetapkan sehingga semua DC baru memiliki konsistensi replikasi yang ketat ditegakkan dan repadmin /options * +strictharus dijalankan untuk membuat semua DC saat ini menggunakan konsistensi replikasi yang ketat, tetapi itu akan merusak replikasi sekarang tanpa membersihkan objek .

Jadi, pertanyaan saya adalah ini: Dalam lingkungan yang begitu besar di mana saya tidak akan tahu DC mana yang memiliki objek yang tersisa dan mana yang tidak, bagaimana saya bisa mengidentifikasi referensi DC yang baik untuk repadmin /removelingeringobjectsdigunakan, dan bagaimana saya bisa memastikan bahwa semua 120+ DC bersih dari benda yang melekat sebelum menegakkan konsistensi replikasi yang ketat dan melanggar replikasi? Atau, apakah lebih mudah untuk mengaktifkan mode ketat dan menonton repadmin /replsumuntuk melihat apa yang rusak dan menanganinya?

MDMarra
sumber

Jawaban:

11

Ini akan membutuhkan waktu untuk diperbaiki.

Untuk menghentikan semua replikasi, jalankan:

repadmin /options +DISABLE_OUTBOUND_REPL

Di semua DC. Ingatlah bahwa pengaturan di atas tidak mencegah tindakan replikasi manual seperti admin (Anda) berjalan repadmin /syncall /APed, dll. Tapi itu hal yang baik karena memungkinkan Anda untuk mengembalikan semua DC Anda sepenuhnya ke sinkronisasi sebelum mengaktifkan kembali replikasi reguler.

Repadmin menentukan bahwa itu adalah objek yang tertinggal jika objek tersebut ada di ServerA tetapi tidak di ServerB, di mana ServerB adalah DC referensi. Perbedaan antara mereplikasi objek yang baru dibuat dan mereplikasi pembaruan ke objek yang sudah ada adalah kuncinya. Meniru objek yang baru dibuat = bagus. Menggandakan pembaruan ke objek yang sudah ada = bagus. Menggandakan pembaruan ke objek yang tidak ada di tujuan DC = buruk.

Anda hanya perlu menyabuni, membilas, ulangi sampai semua DC cocok dengan satu referensi DC yang bagus. Kemudian nyalakan konsistensi yang ketat di mana-mana, lalu aktifkan kembali replikasi. Ya, Anda berisiko menghapus objek yang sah yang dibuat pada DC jarak jauh lainnya yang belum direplikasi ke DC referensi Anda.

Dari artikel " Bagaimana Model Replikasi Direktori Aktif ":

Pengaturan Konsistensi Replikasi

Jika atribut pada objek yang tersisa tidak pernah berubah, objek tersebut tidak pernah dipertimbangkan untuk replikasi. Namun, jika suatu atribut berubah, atribut tersebut dipertimbangkan untuk replikasi keluar. Karena pengontrol domain tujuan tidak memegang objek untuk atribut yang sedang direplikasi, pembaruan tidak dapat dilakukan. Bagaimana kondisi ini diselesaikan tergantung pada pengaturan konsistensi replikasi pada pengontrol domain.

Pengaturan registri pada pengontrol domain yang menjalankan Windows Server 2003 atau Windows 2000 Server dengan SP3 memberikan nilai konsistensi yang menentukan apakah pengontrol domain mereplikasi dan menghidupkan kembali objek yang diperbarui yang telah dihapus dari semua replika lain, atau apakah replikasi objek tersebut adalah diblokir. Pengaturan default berbeda pada pengontrol domain yang menjalankan Windows 2000 Server dengan SP3 dan Windows Server 2003.

Konsistensi Replikasi Yang Ketat

Untuk menghindari masalah dengan reanimating objek yang telah dihapus, pengontrol domain yang menjalankan Windows Server 2003 di forest yang baru dibuat (tidak ditingkatkan) Windows Server 2003 memblokir replikasi masuk secara default ketika menerima pembaruan ke objek yang tidak memiliki .

Catatan • Replikasi Direktori Aktif menggunakan pelacakan pembaruan untuk membedakan antara mereplikasi objek yang baru dibuat dan memperbarui atribut untuk objek yang ada. Replikasi objek berlama-lama adalah upaya untuk memperbarui atribut atau atribut dari objek yang pengontrol domain tujuan tidak dapat memperbarui karena objek tidak ada.

Replikasi dihentikan di partisi direktori untuk objek sampai objek yang tersisa dihapus dari pengontrol domain sumber atau pengaturan konsistensi replikasi ketat dinonaktifkan.

Ketika ServerB berkata kepada ServerA: "Hai, beberapa pembaruan telah dibuat untuk objectA yang ada." Kemudian ServerA berkata: "Tunggu apa? Aku bahkan tidak punya objekA sama sekali. Kirimkan aku seluruh objek!" Jika tidak ada konsistensi yang ketat. Jika konsistensi yang ketat, ServerA mengatakan: "Tunggu apa? Bagaimana Anda mengharapkan saya untuk memperbarui objek yang tidak ada? Pergi bengkok!"

Untuk menemukan apakah Anda memiliki objek yang tersisa di pengontrol domain:

repadmin /removelingeringobjects ServerName ServerGUID DirectoryPartition /advisory_mode 

ServerGUID adalah referensi DC yang dikenal baik. Saya tahu Anda sudah tahu ini ... dan cara skrip di atas untuk menjalankannya di semua DC ... ( foreach ($DC In $(Get-ADDomain).ReplicaDirectoryServers) { }) ...

Anda memerlukan sumber DC yang baik untuk membandingkan, garis bawah. Jika Anda tidak memiliki sumber DC yang dikenal atau tidak tahu, Anda hanya perlu memilih satu. Itu harus menjadi GC yang bisa ditulis tentunya. Itu relatif - jika semua pengontrol domain menyetujui keberadaan objek, dan atribut objek itu ... maka itu bukan objek yang tersisa.

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

Itu mengubah ukuran partisi direktori dari setiap GC di hutan dengan sumber yang dikenal baik yang perlu Anda tentukan sebagai GUID.

Kemudian setelah Anda mendapatkan semua pengontrol domain Anda sekali lagi semua dalam perjanjian, dan replikasi senang ... maka Anda pergi dan mulai membalikkan pada konsistensi yang ketat pada mereka semua.

Sunting: Ini adalah baris pihak Microsoft tentang masalah ini, dan apa yang akan mereka bicarakan jika Anda memanggil mereka.

Akhirnya, ini mungkin lebih banyak masalah untuk diperbaiki daripada nilainya kecuali itu menyebabkan Anda masalah. Aku benci mengatakannya, tetapi AD masih bisa berfungsi secara normal dengan benda yang tertinggal di dalamnya.

Ryan Ries
sumber
4

Prinsip umum dalam kasus di mana Anda tidak dapat mengidentifikasi DC bersih adalah sebagai berikut:

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

Proses ini dijelaskan di sini: http://blogs.technet.com/b/glennl/archive/2007/07/26/clean-that-active-directory-forest-of-lingering-objects.aspx

Namun, lihat ReplDiag . Ini mengotomatiskan proses dengan berjalan repadminuntuk Anda terhadap semua kombinasi sumber dan target DC. Ini kemudian menindaklanjuti dengan /advisory_onlyuntuk memeriksa objek yang tersisa lebih jauh.

leher panjang
sumber
Itu masih 14.400 interaksi yang akan dijalankan melalui ini, selama waktu itu, objek berlama-lama lainnya dapat direplikasi di seluruh direktori. Apakah disarankan untuk mengaktifkan + ketat terlebih dahulu sehingga replikasi rusak untuk menghindari ini? 14.400 iterasi pasti akan memakan waktu cukup lama pada direktori sebesar ini untuk memungkinkan replikasi yang lebih buruk terjadi.
MDMarra
Bisakah Anda memparalelkannya dengan sesuatu?
Tom O'Connor
@ TomO'Connor Ide yang menarik. Itu harus dimungkinkan dengan PowerShell remoting. Maka Anda bisa membuat setiap DC berjalan repadminsendiri, di PARALLEL !!!
longneck
7
@MDMarra Jika cepat dan mudah untuk membersihkan domain 120-DC yang membentang di dunia dan telah ada sejak Win2k dan ditingkatkan ke berbagai versi sejak saat itu ... maka perusahaan hanya akan meminta petugas kebersihan mereka untuk melakukannya ... ;)
Ryan Ries
1
Saya menyadari Anda memiliki bazillion DC, tetapi berapa banyak dari mereka yang sebenarnya digunakan oleh administrator untuk melakukan perubahan? Anda bisa mulai dengan melakukan pembersihan ini hanya dengan DC dan DC di situs tersebut, lalu atur ketat pada DC tersebut. Lanjutkan dengan yang lain. Itu harus meminimalkan masalah yang mungkin terjadi
longneck