Active Directory Database is CORRUPTED! Fixed
Sorun:
Active Directory (AD) veritabanı bozuktur; sunucu AD etki alanı üyelerini doğrulayamaz, şifre değiştirme vb. hatalar oluşursa ve normal modda başlatılamaz veya tüm domainde "An internal error occurred" gibi belirsiz uyarıların oluşmaya başlaması sonucu Active Directory Veri Tabanının(bkz: Ntds.dit nedir?) bozulduğu anlamına gelir.
Çözüm:
Yakın zamanda bir sistem yedeği veya snapshot almadıysanız, AD kurtarma girişimi olarak aşağıdaki adımları gerçekleştirebilirsiniz.
DC'yi Dizin Hizmetleri Geri Yükleme Modu'nda (DSRM) modda başlatalım.
Dizin Hizmetleri Geri Yükleme Modu, Active Directory Etki Alanı Denetleyicilerinde, acil bakım için, özellikle de AD nesnelerinin yedeklerini geri yüklemek için sunucuyu çevrimdışına alan bir işlevdir. Güvenli moda benzer şekilde, Windows Server'da gelişmiş başlangıç menüsü aracılığıyla erişilir. DSRM modunda login olabilmek için DSRM şifremizi bilmemiz gerekir, DSRM şifresi domain kurulumunda oluşturulan ".\Administrator" hesabına tanımlanan bir şifredir. Unutulduğu zaman resetlenmesi mümkündür. bkz: Resetting AD DSRM
Serveri DSRM Modda yeniden başlatmak için:
Bcdedit /set safeboot dsrepair Shutdown /r /t 0
Serveri DSRM Modundan çıkarıp yeniden başlatmak için:
bcdedit /deletevalue safeboot shutdown -t 0 -r
İlk veri tabanı bütünlük kontrolünü check etmek için:
#PS & CMD: ESENTUTL /g C:\windows\NTDS\ntds.dit /!10240 /8 /o #Checking database integrity. Scanning Status (% complete) 0 10 20 30 40 50 60 70 80 90 100 |----|----|----|----|----|----|----|----|----|----| .................................................. Integrity check completed. Database is CORRUPTED! #Veritabanı tutarsızlıkları durumunda "results CORRUPTED, -1206" (sonuçlar BOZUK, -1206) gibi hata mesajı döndürür.
Eğer CORRUPTED değerini döndürürse, Soft Recovery için ntdsutil aracını başlatalım:
ntdsutil
activate instance ntds
files
info
#("Recover" Kurtar komutu ile kurtarma işlemine başlayalım) Bu komut, AD veritabanı yumuşak bir şekilde kurtarılmasını başlatacaktır.
recover
quit
quit
#DC yeniden başlatarak kurtarma işlemi başarılı olup, hataların giderip giderilmediği tekrar kontrol edilmelidir. kontrol sonrası hala hatalar devam ediyorsa "hard" kurtarma moduna geçmelisiniz!
AD Veritabanı günlük(LOG) dosyalarının kontrol edilip - silinmesi:
#Log Check: ESENTUTL /ml c:\windows\ntds\edb #Tüm logları Sil: del c:\Windows\NTDS\*.log del c:\Windows\NTDS\*.chk
Hard Recovery Moduna devam edilmesi:
ESENTUTL /p c:\Windows\NTDS\ntds.dit /!10240 /8 /o #Initiating REPAIR mode... Database: c:\Windows\NTDS\ntds.dit Temp. Database: TEMPREPAIR4840.EDB #Checking database integrity. Scanning Status (% complete) 0 10 20 30 40 50 60 70 80 90 100 |----|----|----|----|----|----|----|----|----|----| ................................................... #Initiating DEFRAGMENTATION mode... Database: c:\Windows\NTDS\ntds.dit #Defragmentation Status (% complete) 0 10 20 30 40 50 60 70 80 90 100 |----|----|----|----|----|----|----|----|----|----| ................................................... #Moving 'TEMPREPAIR4840.EDB' to 'c:\Windows\NTDS\ntds.dit'... DONE! 3Moving 'TEMPREPAIR4840.jfm' to 'c:\Windows\NTDS\ntds.jfm'... DONE! 3Note: It is recommended that you immediately perform a full backup of this database. If you restore a backup made before the defragmentation, the database will be rolled back to the state it was in at the time of that backup. Operation completed successfully in 6.203 seconds.
Veri tabanı bütünlük kontrolünü tekrar check edin:
ESENTUTL /g C:\windows\NTDS\ntds.dit /!10240 /8 /o
Initiating INTEGRITY mode...
Database: C:\windows\NTDS\ntds.dit
Temp. Database: .\TEMPINTEG1636.EDB
Checking database integrity.
Scanning Status (% complete)
0 10 20 30 40 50 60 70 80 90 100
|----|----|----|----|----|----|----|----|----|----|
...................................................
Integrity check successful.
Operation completed successfully in 6.813 seconds.
"NTDSUTIL" aracına tekrar dönüp "Veritabanı Anlam Çözümlemesi" kontrol edelim:
ntdsutil activate instance ntds semantic database analysis go go fix quit quit #GO Fix Report: semantic checker: go fix Fixup mode is turned on Opening DIT database... Done. Done. ......Done. Writing summary into log file dsdit.dmp.1 SDs scanned: 105 Records scanned: 3724 Processing records..Done. Elapsed time 0 seconds.
Serveri DSRM Modundan çıkarıp yeniden başlatın:
bcdedit /deletevalue safeboot shutdown -t 0 -r
Saygılarımla – Best Regard