Der Einsatz von ESEUTIL und ESEFILE

Inhaltsverzeichnis
  1. ESEUTIL
  2. ESEFILE
  3. Weitere Links

Achtung:  All diese Programme arbeiten sehr tief auf der Datenbank. Sie müssen sicherstellen, dass das Programm die gleiche oder aktuellere Version der Datenbank trägt. So wurde das Datenbankformat mit Exchange 2003 SP1 geändert (ECC Prüfsumme). Eine ältere Version von ESEUTIL wird eine solche Datenbank als korrupt ansehen und im schlimmsten Fall erst recht unbrauchbar machen.

Mit dem Programm ExDRA gibt es einen einfach und relativ gefahrlos zu bedienenden Assistenten bei Problemen mit der Datenbank. Nutzen Sie daher zuerst ExDRA, ehe Sie die hier beschriebenen Tools starten.

ESEUTIL

Dieses Programm ist Bestandteil von Exchange 5.5 und Exchange 2000 und dient dazu, eine bestehende Datenbank zu prüfen, zu reparieren, zu defragmentieren und vieles mehr. Beim Aufruf von ESEUTIL ohne Parameter wird eine Hilfe ausgegeben. ESEUTIL liegt im BIN-Verzeichnis des Exchange Programmpfades und arbeitet zeichenorientiert.

ESEUTIL arbeitet auf einer recht tiefen Ebene (seitenorientiert) der Datenbank und ist ein letztes Mittel, wenn alle andere versagen.

Ich verzichte hier auf eine Beschreibung und verweise explizit auf die Dokumentation von Exchange und rate niemanden dieses Programm ohne triftigen Grund aufzurufen. Lassen sie die Finger von ESEUTIL, wenn ihr Exchange funktioniert. Dann bleibt es auch am Leben. Bei einigen Aktionen braucht ESEUTIL nicht nur viel Hauptspeicher, sondern auch sehr viel Platz auf der Festplatte. Die CPU-Last ist ebenso sehr hoch, d.h. auf Servern die nicht "nur" Exchange machen, kann es sinnvoll sein, den Aufruf in die Abendstunden zu verlegen. Die Laufzeiten können je nach Größe der Datenbank mehrere Stunden betragen.

Ehe Sie irgend etwas reparieren sollten Sie eine Sicherheitskopie der EDB-Datei ziehen und mit ESEUTIL /MH Datei den Status der Datenbank prüfen. Einsatz auf eigenes Risiko !!!.

Sehr lesenswert ist dazu auch der folgenden Artikel:

Er beschreibt gut, wie die Datenbank repariert werden kann und in welcher Reihenfolge welche Schritte durchgeführt werden sollten.

Beispiel "Check"

Mit ESEUTIL können die Datenbanken einigen intensiven Tests unterzogen werden. Im Regelfall sind diese Tests nicht notwendig, da Exchange außerordentlich robust ist und Fehler im Speichersubsystem durch Prüfsummen schon anhand der -1018 Fehler erkannt werden. Sollten Sie aber unerklärliche Effekte bei der Nutzung von Exchange haben oder Meldungen im Eventlog auf Fehler der Struktur hinweisen, dann könnten Sie mit ESEUTIL genauer nachschauen. Allerdings sollten Sie sich schon etwas mit Exchange auskennen um die Meldungen richtig zu interpretieren.

Beispiel zu /MH  (Header auslesen)

Diesen Test können Sie recht einfach mit ihrer eigenen Datenbank machen. Dismounten Sie bei Exchange 2000 die entsprechende Datenbank oder stoppen Sie den Exchange Informationsspeicher. Danach ist die Datenbank nicht mehr gesperrt und sie können sich den Header mit ESEUTIL untersuchen. Die gleiche Funktion gibt es auch für die Transaktionsprotokolle und die Checkpointdatei. Diese Ausgabe ist von Exchange 2000, aber die Exchange 5.5 Funktion ist vergleichbar. Sie funktioniert auch, wenn die Datenbank nicht gestartet werden kann und ist damit ein unverzichtbares Hilfsmittel für die Restaurierung und bei der Fehlersuche und Recovery-Szenarien.

Meine Eingaben sind blau, die Antworten des Systems rot, Anmerkungen grün

C:\>D:\bkoffice\Exchsrvr\BIN\ESEUTIL.EXE /MH E:\SG2\DB1.EDB
Microsoft(R) Exchange Server(TM) Database utilities Version 6.0
Copyright (C) Microsoft Corporation 1991-2000. All Rights Reserved.

Initiating FILE DUMP mode...
Database: E:\SG2\DB1.EDB

File Type: Database
Format ulMagic: 0x89abcdef
Engine ulMagic: 0x89abcdef
Format ulVersion: 0x620,9
Engine ulVersion: 0x620,9
DB Signature: Create time:10/23/2001 10:36:14 Rand:60134109 Computer:
cbDbPage: 4096
dbtime: 5690074 (0-5690074)
State: Consistent
<-- Hier sehen sie, dass die DB sauber beendet wurde
Log Required: 0-0 ( 00/00/1900 00:00:00 )
<-- Keine Logs notwendig
 Hier stehen sonst die Nummern der notwendigen Logdateien

Streaming File: Yes
Shadowed: Yes
Last Objid: 540
Scrub Dbtime: 0 (0-0)
Scrub Date: 00/00/1900 00:00:00
Repair Count: 0
Repair Date: 00/00/1900 00:00:00
Last Consistent: (0xEA1,630,B5) 10/23/2001 17:58:33
Last Attach: (0xEA1,199,155) 10/23/2001 17:57:37
Last Detach: (0xEA1,630,B5) 10/23/2001 17:58:33
<-- Dismount Datum
Dbid: 4
Log Signature: Create time:10/23/2001 10:34:04 Rand:59999323 Computer:
Hier sehen sie die Signatur der dazugehörigen Logdateien
OS Version: (5.0.2195 SP 2)
<-- Server hatte Win2000 SP2

Previous Full Backup:
Log Gen: 868-978 (0x364-0x3d2)
Mark: (0x366,18,1E)
Mark: 10/23/2001 13:28:10
<-- Das Datum des vorletzten Vollbackups

Current Incremental Backup:
Log Gen: 0-0 (0x0-0x0)
Mark: (0x0,0,0)
Mark: 00/00/1900 00:00:00
<-- Noch kein Inkrementelles Backup

Current Full Backup:
Log Gen: 0-0 (0x0-0x0)
Mark: (0x0,0,0)
Mark: 00/00/1900 00:00:00
<-- Aktuelles Backup, noch nie gelaufen

Current snapshot backup:
Log Gen: 0-0 (0x0-0x0)
Mark: (0x0,0,0)
Mark: 00/00/1900 00:00:00
<-- Mal sehen welche Software das nutzt

cpgUpgrade55Format: 0
cpgUpgradeFreePages: 0
cpgUpgradeSpaceMapPages: 0

Operation completed successfully in 1.62 seconds.

Weitere ESE Funktionen

Mit ESEUTIL können aber auch umfangreichere Aktionen ausgelöst werden, die aber nicht in wenigen Worten zu beschreiben sind:

  • Offline Defragmentation
    ESEutil /d [options]
    (Siehe Exchange defragmentieren)
  • Recovery:
    ESEutil /r [options]
    Führt manuell eine Datenbank, die "Dirty Shutdown" ist, mit den dazu gehörigen Transaktionsprotokollen zusammen, dass Sie wieder "Clean Shutdown" ist. Wird manchmal benötigt, um Sicherungen von Images und verschiedene Transaktionsprotokolle manuell zu verbinden. Ansonsten versucht der Store dies beim Start der Datenbank ebenfalls
  • Datenbank reparieren
    ESEutil /p [options]
    Diese Option versucht eine defekte Datenbank wieder "clean" zu bekommen, indem er diese komplett neu aufbaut und fehlende Verbindungen und Seiten einfach entfernt. Diese Funktion ist daher wirklich nur das "letze Mittel" um noch irgend etwas dann aus der Datenbank extrahieren zu können (z.B. über die Recovery Storage Group) Sie sollte so eine Datenbank nie auf Dauer wieder produktiv nehmen, sondern nur als Exportquelle in eine neue Datenbank nutzen.
  • Prüfsummen prüfen
    ESEutil /k [options]
    Diese Funktion ist wichtig, wenn Sie die Datenbank z.B. per IMAGE oder Snapshot sichern oder Sie einen Festplattendefekt vermuten und einfach prüfen wollen, ob jede Speicherseite noch "unverändert" und stimmig ist. Das geht sehr viel schneller als eine Defragmentierung.
  • Integrität prüfen
    ESEutil /g
    Hiermit wird der logische Aufbau (siehe auch Exchange Datenbank - ein Blick dahinter) geprüft.

Aber diese Funktionen beschreibe ich hier absichtlich nicht ausführlich, das damit auch sehr schnell die komplette Datenbank zerstört wird. Wenn Sie überzeugt sind, dass ihnen nur diese Optionen weiter helfen, dann sollten Sie ausführlich die zu ESEUTIL gehörende Dokumentation und TechNet Artikel lesen.

Seit Exchange 2000 gibt es auch eine weitere Funktion mit der Option "/createstm". Sie dient dazu beim Verlust der STM-Datei diese neu anzulegen. Allerdings gehen damit sicher Inhalte verloren und ist nur ein Notfall. Selbst dann sollte überlegt werden, die Inhalte zu exportieren und eine neue Datenbank anzulegen.

ESEFILE

Diese Programm ist im Exchange Ressource Kit und erlaubt das Lesen einer Datenbank um Fehler in der Prüfsummer zu erkennen (Siehe Exchange -1018 Fehler Ursache und Lösung).

  • 192185 How to defragment with the Eseutil utility (Eseutil.exe)
  • Q248406 XADM: Esefile Support utility für Exchange Server
    Informationen, wie ESEUTIL arbeitet und wie es sicher eingesetzt wird.
  • Q314917 XADM: understanding and Analyzing -1018, -1019, and -1022 Errors
  • Q244525 XADM: How to Run Eseutil on a Computer Without
    Exchange Server
  • Warum eine reguläre Defragmentierung wohl überlegt sein will
    http://blogs.msdn.com/exchange/archive/0001/01/01/177574.aspx

Nützlich ist dieses Programm, wenn sie ein Offline Backup durchführen oder andere Methoden verwenden und einfach nur sicher sein wollen, dass alle die Prüfsummen der einzelnen Datenblöcken in der Datenbankdatei korrekt sind.

Bei Exchange 2000 ist diese Programm in ESEUTIL mit der Option "/k" integriert.

Weitere Links

  • Exchange Datenbank - ein Blick dahinter
  • Datenbank Recover
  • ISINTEG
  • Exchange NOTFALL - Serverdesaster 2000
  • Exchange NOTFALL - Serverdesaster 5.5
  • -1018 Fehler im Eventlog
  • Q182961 XADM: using Eseutil to Determine Which Logs Have Been Committed
  • Q192185 XADM: How to Defragment with the Eseutil utility (Eseutil.exe)
  • Q147524 XADM: How Circular Logging Affects the use of Transaction Logs
  • Q151789 Error -1018 (JET_errReadVerifyFailure)
  • Q178931 XADM: Database Size After Offline Defrag Not Same as Total K
  • Q182903 XADM: ESEUTIL Command Line Parameters
  • Q183888 XADM: Free Disk Space Requirements für Eseutil.exe
  • Q192185 XADM: How to Defragment with the Eseutil utility (Eseutil.exe)
  • Q233400 XGEN: using Windows 2000 Encrypted File System to Encrypt Mdbdata Folder and Contents" ).
    Hier ist beschrieben, dass man die Datenbank auch auf EFS-verschlüsselten Bereichen ablegen kann. Aber sinnvoll ist das nicht, da EFS die Datei beim Zugriff entschlüsselt und damit der Start sehr lange dauert.
  • Q244525 XADM: How to Run Eseutil on a Computer Without Exchange Server
  • Q248406 XADM: Esefile Support utility für Exchange Server 5.5, 2000
  • Q251123 XADM: Maximum Number of Storage Groups in Exchange 2000 für Database Capacity Planning
  • Q253325 XADM: Header Damage in DBs, Log, Patch, Checkpoint Files
  • Q255035 XADM: Recovering Hard Drive Space from Exchange Server Databases
  • Q255169 XADM: Multiple Instances of Esefile.exe Causes Computer to Hang
  • Q257184 XADM: How to Move Exchange Databases and Logs in Exchange 2000 Server
  • Q262196 XADM: How to Determine Which Mailbox Owns a Particular Page in a Database
  • Q272570 XADM: Disaster Recovery of Information Store on Exchange Server
  • Q297336 XADM: using the Eseutil utility to Checksum a Streaming File
  • Q314917 XADM: understanding and Analyzing -1018, -1019, and -1022 Errors
  • Q317014 XADM: Exchange 2000 Server Eseutil Command Line Switches