Active Directory ist auf eine Reihe von Diensten und Features angewiesen, um korrekt funktionieren zu können. Wenn einer dieser Dienste ausfällt, erleben Sie ungewöhnliches oder unkontrollierbares Verhalten. Unsere Serie stellt Ihnen die häufigsten Szenarien samt Lösung vor.
-
Teil Eins: Ausfall eines DNS-Servers und eines Domänencontrollers
-
Teil Zwei: Ausfall eines FSMO-Rollenmasters
-
Teil Drei: Ausfall von zentralen Replikationskomponenten wie Brückenkopf-Server, ISTGs und WAN-Leitungen
-
Teil Vier: Pflege und Wartung der Datenbank
-
Teil Fünf: Active Directory wiederherstellen
Die Artikelserie basiert auf Kapitel Zehn des Standardwerks „Windows Server 2003 für Insider“ von William Boswell aus dem Verlag Markt + Technik. Sie können dieses über 1300 Seiten starke Buch auch in unserem Buchshop bestellen oder als eBook herunterladen.
Teil 1: Ausfall eines DNS-Servers und eines Domänencontrollers |
Teil 2: Ausfall eines FSMO-Rollenmasters |
Teil 4: Active Directory-Pflege |
Teil 5: Active Directory wiederherstellen |
Verzeichnis pflegen
Active Directory sollte man soviel Aufmerksamkeit schenken wie jeder anderen Datenbank. Manchmal treten in der Datenbank Lücken auf, dann ist eine Defragmentierung nötig. Manchmal gerät sie durcheinander, dann muss neu indiziert werden. Manchmal wird sie beschädigt und muss dann repariert werden. Und manchmal wird sie eben auch komplett zerschossen und muss dann wiederhergestellt werden. Das Tool für diese Aufgaben ist Ntdsutil (NT Directory Service Utility).
Für manche Dinge verwendet Ntdsutil feste Befehlsabfolgen für ein anderes Utility namens Esentutl, dem Enkel des für Exchange entwickelten Datenbankhilfsprogramms Eseutil. Esentutl kennt eine große Anzahl von Schaltern für das Festlegen und Steuern von Wiederherstellungsaufgaben und Integritätschecks. Ntdsutil bietet diese Optionen in einem Menü. Die beiden am häufigsten benutzten Optionen sind:
-
Komprimierung und Neuindizierung des Verzeichnisses
-
Reparieren der Verzeichnisdatenbank
Active Directory-Datenbank defragmentieren
Wenn Sie je länger mit Exchange 5.5 gearbeitet haben, dann wissen Sie, wie zerbrechlich die alte ESE-Datenbank sein kann. Die neue und verbesserte ESENT-Engine benötigt nicht dermaßen viel Aufmerksamkeit. Alle 12 Stunden läuft die Garbage Collection durch und entfernt Objekte, die seit mehr als 60 Tagen getombstoned sind. Dann defragmentiert der Garbage Collector die Datenbank. Es gibt also keinen Grund für Offline-Defragmentierungen oder Reindizierungen.
Wenn Sie eine Offline-Defragmentierung mit Ntdsutil
durchführen, dann komprimiert das Utility die Datenbank, indem es den Inhalt der vorhandenen Ntds.dit
in eine neue Datei desselben Namens kopiert, die in einem von Ihnen benannten Temporärverzeichnis abgelegt wird. Ist die Komprimierung abgeschlossen, dann überschreiben Sie einfach mit der neuen Datei die alte, oder Sie lassen das System auf die neue Datei verweisen. Die Protokolldateien sind nicht mehr gültig und können ignoriert werden.
Offline Defragmentierung
Der einzige Grund für eine Offline-Defragmentierung ist, dass Sie Festplattenspeicher zurückhaben wollen, den Ntds.dit
einnimmt. Die Online-Defragmentierung packt zwar die Datenbank, gibt aber keinen Festplattenspeicher frei. Folgendermaßen können Sie eine Offline-Defragmentierung durchführen:
-
Fahren Sie den Domänencontroller im Verzeichnisdienst-Wiederherstellungsmodus hoch und starten Sie Ntdsutil.
-
Geben Sie an der Eingabeaufforderung
Ntdsutil
: den Befehl Files ein, um die EingabeaufforderungFile Maintenance
zu öffnen. -
Geben Sie
Compact to <verzeichnis>
ein, wobei<verzeichnis>
der Name des Temporärverzeichnisses ist, in dem die komprimierte NTDS.DIT gespeichert wird. Die Beispielausgabe:
file maintenance: compact to C:\xxx
Die Datenbank [Current] wird geöffnet.
Folgendes Verzeichnis wird erstellt: C:\xxx
Befehl wird ausgeführt: C:\WINDOWS\system32\esentutl.exe /d"C:\WINDOWS\NTDS\ntds
.dit" /t"C:\xxx\ntds.dit" /p /o
Initiating DEFRAGMENTATION mode...
Database: C:\WINDOWS\NTDS\ntds.dit
Temp. Database: C:\xxx\ntds.dit
Defragmentation Status (% complete)
0 10 20 30 40 50 60 70 80 90 100
|----|----|----|----|----|----|----|----|----|----|
Note:
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 9.304 seconds.
Erstellter Prozessbeendigungscode 0x0(0)
Wenn die Komprimierung einwandfrei durchgeführt wurde, tun Sie Folgendes:
copy "C:\xxx\ntds.dit" "C:\WINDOWS\NTDS\ntds.dit"
und die alten Protokolldateien löschen:
del C:\WINDOWS\NTDS\*.log
-
Kopieren Sie nun die neue
Ntds.dit
in das ursprüngliche Verzeichnis\NTDS
. Wenn Sie wollen, können Sie das neue Verzeichnis auch lassen, wo es ist, und die Verzeichniszeiger anpassen:
Set Path Backup <verzeichnis>
Set path DB <verzeichnis>
Set path logs <verzeichnis>
Set path working dir <verzeichnis>
Wenn Ihre Protokolle auf einem anderen Laufwerk liegen, lassen Sie den Befehl Set path logs
an dieser Stelle weg.
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 überNtdsutil
zugänglich. Wenn Sie unbedingt wollen, können Sie direktEsentutl
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:\WINDOWS\system32\esentutl.exe /redb /l"C:\WINDOWS\NTD
S" /s"C:\WINDOWS\NTDS" /8 /o
Initiating RECOVERY mode...
Logfile base name: edb
Log files: C:\WINDOWS\NTDS
System files: C:\WINDOWS\NTDS
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:\windows\ntds\ntds.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 Einstellungen\Administrator>esentutl /p c:\windows\ntds\ntds.dit /o
Initiating REPAIR mode...
Database: c:\windows\ntds\ntds.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.
Active-Directory-Hilfsdateien verschieben
Wenn Sie einen Domänencontroller hochstufen, können Sie festlegen, wo die Haupt-AD-Datei Ntds.dit
und die Protokolldateien abgelegt werden. Sie können diesen Ort ändern, wenn Sie der Meinung sind, dass Sie die Performance steigern könnten, wenn Sie die Protokolle auf ein anderes Array legen oder die Dateien von der Systempartition nehmen.
Um diese Dateien zu verschieben, müssen Sie in den Verzeichnisdienst-Wiederherstellungsmodus booten. Dafür müssen Sie das lokale Administratorpasswort kennen. Sie sollten die Dateien stets auf einer NTFS-Partition ablegen, um von der höheren Sicherheit und guten Random-Access-Performance zu profitieren. Wenn Sie die Dateien verschieben wollen, verwenden Sie diese Schrittfolge:
1. Booten Sie in den AD-Wiederherstellungsmodus.
2. Öffnen Sie eine Befehlszeile.
3. Geben Sie Ntdsutil
ein.
4. Geben Sie files
ein, um zum Prompt file maintenance
: zu kommen. Mit ? erhalten Sie eine Befehlsübersicht:
? |
Zeigt diese Hilfeinformationen an |
Checksum |
Physische Jet-Integritätsprüfung durchführen |
Compact to %s |
Datenbank in das angegebene Verzeichnis komprimieren |
Header |
Jet-Datenbankheader speichern |
Help |
Zeigt diese Hilfeinformationen an |
Info |
Informationen zu den DS-Dateien zurückgeben |
Integrity |
Logische Jet-Integritätsprüfung durchführen |
Move DB to %s |
Datenbank zum angegebenen Verzeichnis verschieben |
Move logs to %s |
Protokolldateien zum angegebenen Verzeichnis verschieben |
Quit |
Zum vorherigen Menü wechseln |
Recover |
Durchführen einer Datenbankwiederherstellung |
Set default folder security |
Sicherheitseinstellungen von NTDS-Ordnern auf Standardwerte zurücksetzen |
Set path backup %s |
Verzeichnispfad der Onlinesicherung festlegen |
Set path DB %s |
Pfad zur Datenbankdatei festlegen |
Set path logs %s |
Verzeichnispfad für die Protokollierung festlegen |
Set path working dir %s |
Pfad für das Arbeitsverzeichnis von NTDS festlegen |
5. Verwenden Sie move db to %s
oder move logs to %s
, um die Datenbank oder die Protokolle zu verschieben. Ersetzen Sie %s mit einem vollständigen Pfad, wie D:\Windows\NTDS
.
Abschluss
Im fünften und letzten Teil unserer Serie geht es um die Wiederherstellung des Active Directories.
Die Artikelserie basiert auf Kapitel Zehn des Standardwerks „Windows Server 2003 für Insider“ von William Boswell aus dem Verlag Markt + Technik. Sie können dieses über 1300 Seiten starke Buch auch in unserem Buchshop bestellen oder als eBook herunterladen. (mja)
Teil 1: Ausfall eines DNS-Servers und eines Domänencontrollers |
Teil 2: Ausfall eines FSMO-Rollenmasters |
Teil 4: Active Directory-Pflege |
Teil 5: Active Directory wiederherstellen |