Post

Active Directory Database is CORRUPTED! Fixed

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

This post is licensed under CC BY 4.0 by the author.