Kategorien

Active Directory-Datenbank reparieren

Wenn die ESE-Engine auf ein Problem trifft, das aufgrund beschädigter Datenbankseiten, einer beschädigten Indexdatei oder einer Kombination aus beiden auftritt, dann müssen Sie die Datenbank reparieren. Symptome für derartige Probleme sind enstprechende Einträge im Ereignisprotokoll, Konsolenfehler oder Neustarts mit Fehlermeldungen vom LSASS (Local Security Authority Subsystem).
Active Directory kennt zwei Reparaturphasen:
  • Sanfte Wiederherstellung. Diese Phase restauriert die Einträge anhand von Protokoll- und Prüfpunktdateien, gefolgt von den Indizes.
  • Harte Reparatur. Diese Phase geht prinzipiell genauso vor, löscht aber zusätzlich alle beschädigten Seiten. Dadurch können Daten verloren gehen, weswegen Sie keine harte Reparatur vornehmen sollten, sofern es noch andere Alternativen gibt. Vor einer Wiederherstellung der Datenbank sollten Sie immer eine Sicherungskopie anfertigen. Bei Server 2003 ist die harte Reparatur nicht mehr über Ntdsutil zugänglich. Wenn Sie unbedingt wollen, können Sie direkt Esentutl verwenden.

Sanfte Wiederherstellung

Gehen Sie für eine sanfte Wiederherstellung wie folgt vor:
1. Öffnen Sie eine Befehlszeile.
2. Starten Sie Ntdsutil.
3. Geben Sie an der Eingabeaufforderung Ntdsutil: den Befehl Files ein, um die Eingabeaufforderung File Maintenance zu öffnen.
4. Geben Sie Recover ein. Die Beispielausgabe:
file maintenance: recover
Befehl wird ausgeführt: C:WINDOWSsystem32esentutl.exe /redb /l"C:WINDOWSNTD
S" /s"C:WINDOWSNTDS" /8 /o
Initiating RECOVERY mode...
Logfile base name: edb
Log files: C:WINDOWSNTDS
System files: C:WINDOWSNTDS
Performing soft recovery...
Operation completed successfully in 2.243 seconds.
Erstellter Prozessbeendigungscode 0x0(0)
Es wird empfohlen, eine semantische Datenbankanalyse durchzuführen, wenn die Wiederherstellung einwandfrei abgeschlossen wurde. Dadurch wird die semantische Konsistenz gewährleistet.
Wie Sie sehen, geht dieser Vorgang relativ schmerzlos über die Bühne, solange es keine massiven Probleme gibt. Wenn jedoch ein solches entdeckt wurde, versucht das System, es zu lösen. Sie sollten von Ntdsutil aus eine semantische Datenbankanalyse durchführen, um die internen Namenverweise in der Datenbank zu prüfen und ggf. zu reparieren.

Harte Reperatur

Sollte die sanfte Wiederherstellung jedoch nicht zum Ziel führen, dann müssen Sie die harte Reparatur wählen. Zuvor könnten und sollten Sie allerdings noch den Support bei Microsoft kontaktieren – die haben vielleicht ein paar weniger radikale Vorschläge. Normalerweise gibt es wenig Gründe, überhaupt eine harte Reparatur durchzuführen. Doch wenn Sie unbedingt wollen, gehen Sie wie folgt vor:
1. Geben Sie an der Eingabeaufforderung den Befehl esentutl /p c:windowsntdsntds.dit /o ein. Falls sich Ihre AD-Datenbank an anderer Stelle befindet, müssen Sie natürlich den Pfad entsprechend ändern. Die Beispielausgabe sieht so aus:
C:Dokumente und EinstellungenAdministrator>esentutl /p c:windowsntdsntds.dit /o
Initiating REPAIR mode...
Database: c:windowsntdsntds.dit
Temp. Database: TEMPREPAIR3180.EDB
Checking database integrity.
Scanning Status (% complete)
0    10   20   30   40   50   60   70   80   90  100
|----|----|----|----|----|----|----|----|----|----|
...................................................
Integrity check successful.
Note:
t is recommended that you immediately perform a full backup of this database. If you restore a backup made before the repair, the database will be rolled back to the state it was in at the time of that backup.
Operation completed successfully in 5.718 seconds.
2. Nehmen Sie wie weiter oben beschrieben eine vollständige Sicherung der Systemstatusdateien vor.