Lesezeit
3 Minuten
Exchange 2010-Datenbanken verwalten und retten (2)
Exchange 2010 setzt auf eine ESE-Datenbank. Die längst überfällige Integration in SQL-Server hat Microsoft nicht realisiert. Die Folge: Irreparable Fehler in der Datenbank sind leider keine Seltenheit. In diesem Workshop gehen wir darauf ein, welche Neuerungen es bei Exchange-Datenbanken gibt und wie Sie diese optimieren, verwalten und retten. In zweiten Teil beschäftigen wir uns genauer mit der Offline-Defragmentierung und erklären, wie Sie Datenbanken auf Konsistenz überprüfen und mit neuen Cmdlets reparieren.
Für die Offline-Defragmentierung müssen Sie die Bereitstellung der Datenbanken aufheben oder den Informationsspeicherdienst beenden. Mit dem folgenden Befehl zeigen Sie die aktuelle Größe der EDB-Datei der entsprechenden Datenbank sowie die Datenmenge an, um die Sie die Datenbank verkleinern können. Für die Eingabe müssen Sie die Datenbank nicht herunterfahren:

Bild 1: Exchange-Datenbanken sollten in regelmäßigen Abständen offline defragmentiert werden
Die Alternative stellt das Kopieren der Datenbank- und eseutil-Dateien auf einen anderen Computer dar. Die Option "/t" gibt den Pfad der temporären Datenbank an. Verwenden Sie diese Option nicht, legt eseutil automatisch eine solche temporäre Datenbank an. Die Option "/t" geben Sie nur dann an, wenn der Speicherplatz in der Partition der Exchange-Datenbank nicht für die Defragmentierung ausreicht. Bei der Defragmentierung kopiert eseutil die entsprechende Datenbank in die temporäre Datenbank und defragmentiert die temporäre Datenbank. Anschließend kopiert das Tool die temporäre Datenbank über die produktive Datenbank. Die Syntax in der Eingabeaufforderung für eine Offlinedefragmentierung lautet zum Beispiel:
Erhalten Sie beim Start Fehler, dass die Datenbank keine Defragmentierung zulässt, versuchen Sie die Datenbank wieder bereitzustellen. Starten Sie dann den Systemdienst für den Informationsspeicher neu und heben Sie dann die Bereitstellung wieder auf. Exchange sollte jetzt alle Transaktionsprotokolle in die Datenbank geschrieben haben. Ist auf einem Server nicht genügend Platz, um mit eseutil eine Datenbank zu reparieren oder die Hardware defekt, ist es sinnvoll, eseutil auf einem anderen Server oder PC ohne installierten Exchange-Server zu starten. Dadurch besteht die Möglichkeit, die zeitaufwendige Reparatur von Exchange parallel zum Aufsetzen eines neuen Servers durchzuführen. Damit Sie eseutil auch von einem anderen Computer aus aufrufen können, müssen Sie folgende Dateien zusammen mit den Datenbankdateien, die repariert werden sollen, kopieren: eseutil.exe, ese.dll, jcb.dll, exosal.dll und exchmem.dll.
Um eine Postfach-Datenbank zu defragmentieren, müssen Sie deren Bereitstellung aufheben (dismounten). Nach diesem Vorgang können Anwender keine Verbindung mehr zum Postfach aufbauen, bis Sie die Bereitstellung wiederherstellen. Um eine Datenbankbereitstellung aufzuheben, verwenden Sie den folgenden Befehl:
Datenbanken auf Konsistenz überprüfen
Mit dem Befehl eseutil /mh überprüfen Sie die Konsistenz der Datenbanken. Ein Beispiel dafür ist:


Thomas Joos/ln
get-mailboxdatabase -status | ft name,databasesize,availablenewmailboxspaceIst der Unterschied zwischen Database-Size und AvailableNewMailBoxSpace recht groß, bietet es sich an, eine Defragmentierung durchzuführen. Um eine Offline-Defragmentierung durchzuführen, starten Sie eseutil mit der Option "/d" und dem Pfad zur Datenbank, wie bereits zuvor dargestellt. Das Tool legt vor dem Defragmentierungsvorgang eine temporäre Kopie der Datenbankdatei an, die defragmentiert und nach dem Vorgang wieder zurückkopiert wird. Die Temporärdateien legt das Werkzeug auf dem Laufwerk an, auf dem Sie eseutil aufrufen. Aus diesem Grund sollte auf dem Datenträger ausreichend Speicherplatz vorhanden sein, also mindestens das Doppelte der Exchange-Datenbanken. Steht nicht genug Platz zur Verfügung, kann eseutil im Notfall keine Datenbank defragmentieren oder reparieren.
Bild 1: Exchange-Datenbanken sollten in regelmäßigen Abständen offline defragmentiert werden
Die Alternative stellt das Kopieren der Datenbank- und eseutil-Dateien auf einen anderen Computer dar. Die Option "/t" gibt den Pfad der temporären Datenbank an. Verwenden Sie diese Option nicht, legt eseutil automatisch eine solche temporäre Datenbank an. Die Option "/t" geben Sie nur dann an, wenn der Speicherplatz in der Partition der Exchange-Datenbank nicht für die Defragmentierung ausreicht. Bei der Defragmentierung kopiert eseutil die entsprechende Datenbank in die temporäre Datenbank und defragmentiert die temporäre Datenbank. Anschließend kopiert das Tool die temporäre Datenbank über die produktive Datenbank. Die Syntax in der Eingabeaufforderung für eine Offlinedefragmentierung lautet zum Beispiel:
eseutil /d "C:\Programme\Microsoft\Exchange-Server\v14Mailbox \First Storage Group\Mailbox Database.edb"Sie können auch direkt in das Verzeichnis der Datenbanken wechseln, um sich die Eingabe des Pfads zu sparen. Hat eseutil mit der Defragmentierung begonnen, öffnet es die Datenbank und legt eine Kopie an. Während der Defragmentierung löscht es automatisch defekte Bereiche der Datenbank. Durch diese Option können Sie also korrupte Datenbanken wieder reparieren oder nach einer Reparatur überprüfen. Unterbrechen Sie die Defragmentierung durch Herunterfahren des Servers, kann es sein, dass die temporär angelegte Datenbankdatei noch nicht über die Originaldateien kopiert ist. Lokalisieren Sie dann die Temporärdatenbank und kopieren Sie diese über die Originaldateien.
Erhalten Sie beim Start Fehler, dass die Datenbank keine Defragmentierung zulässt, versuchen Sie die Datenbank wieder bereitzustellen. Starten Sie dann den Systemdienst für den Informationsspeicher neu und heben Sie dann die Bereitstellung wieder auf. Exchange sollte jetzt alle Transaktionsprotokolle in die Datenbank geschrieben haben. Ist auf einem Server nicht genügend Platz, um mit eseutil eine Datenbank zu reparieren oder die Hardware defekt, ist es sinnvoll, eseutil auf einem anderen Server oder PC ohne installierten Exchange-Server zu starten. Dadurch besteht die Möglichkeit, die zeitaufwendige Reparatur von Exchange parallel zum Aufsetzen eines neuen Servers durchzuführen. Damit Sie eseutil auch von einem anderen Computer aus aufrufen können, müssen Sie folgende Dateien zusammen mit den Datenbankdateien, die repariert werden sollen, kopieren: eseutil.exe, ese.dll, jcb.dll, exosal.dll und exchmem.dll.
Um eine Postfach-Datenbank zu defragmentieren, müssen Sie deren Bereitstellung aufheben (dismounten). Nach diesem Vorgang können Anwender keine Verbindung mehr zum Postfach aufbauen, bis Sie die Bereitstellung wiederherstellen. Um eine Datenbankbereitstellung aufzuheben, verwenden Sie den folgenden Befehl:
DisMount-Database -Identity [Name der Datenbank]Das Aufheben der Bereitstellung müssen Sie noch bestätigen. Wissen Sie den Namen der Datenbank nicht, können Sie diesen mit Get-MailboxDatabase anzeigen lassen. Standardmäßig speichert Exchange Server 2010 die Datenbankdatei in einem Verzeichnis mit dem Namen der Datenbank im Ordner "C:\ Program Files \ Microsoft \ Exchange Server \ V14 \ Mailbox". Haben Sie die Datenbank defragmentiert, besteht der nächste Schritt darin, dass Sie die Bereitstellung wiederherstellen. Dazu verwenden Sie dieses Kommando:
Mount-Database -Identity [Name der Datenbank]Sie erhalten keine Rückmeldung über den Befehl, es darf aber auch kein Fehler erscheinen. Anschließend können Sie mit getmailboxdatabase -status| ft name,databasesize, availablenewmailboxspace überprüfen, wie viel Speicherplatz die Datenbank nach der Defragmentierung einnimmt und wie groß der leere Bereich in der Datenbank ist.
Datenbanken auf Konsistenz überprüfen
Mit dem Befehl eseutil /mh überprüfen Sie die Konsistenz der Datenbanken. Ein Beispiel dafür ist:
eseutil /mh "[Name der Datenbank.edb]"Bevor Sie dieses Kommando verwenden, müssen Sie die Bereitstellung für die Datenbank aufheben, genauso wie bei der Defragmentierung. Im Bereich "State" sollte "Clean Shutdown" erscheinen. Ist die Datenbank nicht korrekt heruntergefahren, ist hier "Dirty Shutdown" zu lesen. Steht bei "Bad Checksum Error Count" nicht der Wert "None", passen Sie mit dem Tool isinteg.exe die Datenbank an. Ab Exchange Server 2010 SP1 greifen Sie auf das Tool "New-MailboxRepairRequest" zurück. Verwenden Sie für Exchange 2010 ohne das SP1/SP2 den Befehl
Isinteg -s [Name des Servers] -fix -test alltestsHaben Sie das Service Pack 2 installiert, kommt der Befehl
New-MailboxRepairRequest -Database "Mailbox Database" -CorruptionType SearchFolder,AggregateCounts, ProvisionedFolder,FolderViewzum Einsatz. Ein weiterer Test besteht darin, die Datenbank auf Integrität zu überprüfen. Dies erreichen Sie über
eseutil /g "Mailbox Database ID.edb"Der nächste Test besteht schließlich noch darin, die Datenbankdatei hinsichtlich ihrer Konsistenz zu kontrollieren. Nutzen Sie hierfür die Option "/k" von eseutil.
Seite 1 von 2 Nächste Seite>>
Thomas Joos/ln