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: It 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: |
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:WindowsNTDS. |