Esentutl.exe - Ein vielseitiges Datenbankwerkzeug

Andreas Preuss
09-07-2018 16:49

Wenn eine Datenbank fehlerhaft oder beschädigt ist, können die Daten aus einer Sicherung wiederhergestellt oder mit "Esentutl" repariert werden. "Esentutl" ist ein mächtiges Befehlszeilen-Dienstprogramm, das in einer gegebenen Speichergruppe mit dem Informationsspeicher verknüpfte Dateien wie ESE-Dateien (Extensible Storage Engine), Datenbankdateien (*.edb), Streamingdateien (*.stm) und Protokolldateien (*.log) verarbeitet.
Das Tool kann von der Befehlszeile aus für jeweils eine Datenbank ausgeführt werden. Hiermit kann eine Vielzahl von Datenbankaufgaben wie Reparatur, Onlinedefragmentierung und Integritätsprüfungen ausgeführt werden.

Um eine Datenbank zu reparieren, sollte man natürlich zuerst die Datenbank-, Log- und Checkpoint-Files kopieren und ein separates Verzeichnis ablegen. Zuvor sollte der Datenbankdienst auch beendet sein d.h. die Bereitstellung der Datenbank aufheben. Dann kann man eine privilegierte Eingabeaufforderungs-Sitzung öffnen und in das Verzeichnis mit dem Datenbankduplikat wechseln.

ESENTUTL.EXE

  • Der Reparaturmodus von "Esentutl" kann zum Reparieren einer fehlerhaften oder beschädigten Datenbank verwendet werden.
    esentutl /p "C:\recover\Datenbank-Einkauf.edb" /o
  • Der Modus für Protokollwiederherstellung und Datenbankwiederherstellung wird zum erneuten Einspielen von Transaktionsprotokolldateien in eine Datenbank verwendet.
  • Der Modus für das Erstellen einer Speicherabbilddatei kann verwendet werden, um Datenbank und Transaktionsprotokolldateien in Beziehung zu setzen und um weitere Informationen hierüber abzurufen.
  • Mit dem Prüfsummenmodus wird die Dateiintegrität einer Datenbank geprüft.
    esentutl /g "C:\restore\ntds.dit" /!10240 /8 /o
  • Der Modus für das Erstellen einer Dateikopie dient zum schnellen Kopieren sehr großer Dateien.
  • Im Defragmentierungsmodus kann eine Datenbank offline komprimiert werden, wobei die Größe der Datenbankdateien durch das Entfernen von Leerraum reduziert wird.

    Beispiel zur Defragmentierung einer Exchange Datenbank:

    esentutl /d "D:\Datenbank1\Exchange-DB-01.edb"

    Hier noch ein paar wichtige Optionsschalter:
    /p (Ursprüngliche Datenbank wird nicht überschrieben. Braucht mehr Speicherplatz)
    /t (Erstelle eine temporäre Datenbank unter angegebenen Pfad D:\TMP_DB\)

Beispiel zur Reperatur einer Active Directory Datenbank (Hard Recovery):

esentutl /p C:\Windows\NTDS\restore\ntds.dit /!10240 /8 /o

Anschliessendes mounten der Datenbank:

dsamain.exe -dbpath "C:\Windows\NTDS\restore\ntds.dit" -ldapport 5123 -allownonadminaccess -allowupgrade

Danach mit der MMC "Benutzer und Computer" die Datenbank auf Port 5123 öffnen.

Sehr hilfreich ist auch die Funktion von Esentutl große Dateien von mehren Gigabyte zu kopieren. Hier spielt es keine Rolle welche Art von Dateien. Normalerweise könnte man XCOPY oder ROBOCOPY von der Kommandozeile verwenden, jedoch ist hier Esentutl deutlich schneller und zeigt sogar einen Fortschrittsbalken an:

Copy with Esentutl

Hier ein praktisches Beispiel für die Batch Verarbeitung:

:KOPIEREN
cls
COLOR 2E
set SOURCE=%USERPROFILE%\Desktop
set DEST=H:\Online-Speicher\Archive
for %%f in (%SOURCE%\*.7z) do (
ESENTUTL /y %%f /D %DEST%\%%~nxf
)

In diesem Fall befindet sich eine 48 GB große 7zip Datei auf dem Desktop und wird nach Laufwerk H: kopiert.

Tags: CMD, Exchange Server, Kommandozeile, Kopieren
Durchschnittliche Bewertung: 4.33 (3 Abstimmungen)

Es ist möglich, diese FAQ zu kommentieren.