Exchange Datenbank komprimieren

Mit der Zeit wachsen Exchange Datenbanken durch die Anzahl der E-Mails und Postfächer immer weiter an. Löscht man nun einige Elemente, wird man schnell erkennen, dass die Datenbankdateien nicht kleiner werden – sondern gleich groß bleiben. Warum das so ist und wie Du die Exchange Datenbank komprimieren, also verkleinern kannst, zeige ich in diesem Artikel.



Exchange Datenbank verkleinern

Die Datenbankdateien von Microsoft Exchange verhalten sich genauso wie andere Datenbanken. Die Dateien wachsen mit Ihrer Nutzung immer weiter an und werden dabei Stück für Stück vergrößert. Löscht man nun einige Elemente, wird der Speicherplatz nur innerhalb der Datei freigegeben. Die Datenbankdatei selbst behält die gleiche Größe.

Diesen freien Speicherplatz innerhalb der Datenbank nennt man Whitespace. Damit bezeichnet man einen Leerraum innerhalb der Datenbank. Fallen neue Daten an, werden diese zunächst wieder in diesem Leerraum gespeichert. Erst wenn dieser erschöpft ist, wird die Datei erneut vergrößert.

Warum sollte man die Exchange Datenbank komprimieren?

Sofern eine Datenbank nicht extrem angewachsen ist, sodass die Performance des Exchange Servers darunter leidet, ist es nicht nötig eine Exchange Datenbank zu komprimieren. Interessant wird es aber, wenn die Größe der Dateien zu Speicherengpässen führen. Die Einführung einer Software für die E-Mailarchivierung wäre ebenfalls ein Grund, da die Datenbanken dadurch erheblich entlastet werden und ein Großteil der Daten ausgelagert werden.

Wie viel Speicherplatz kann eingespart werden?

Zunächst sollte man sich aber anschauen, wie groß der Whitespace bei den Exchange Datenbankdateien ist. Dieses kann man sehr schnell über die Exchange Management Shell herausfinden. Der dazugehörige Befehl lautet:

Get-MailboxDatabase -Status | ft Name, DatabaseSize, AvailableNewMailboxSpace -auto

Die Ausgabe zeigt uns anschließend für jede Datenbank die aktuelle Dateigröße (DatabaseSize), sowie den verfügbaren Speicherplatz in dieser Datei (AvailableNewMailboxSpace).

Exchange Datenbank verkleinern
Ein Blick auf die Spalte „AvailableNewMailboxSpace“ zeigt: Hier ist eine Menge Speicherplatz zu holen.

In meinem Beispiel sieht man sehr gut, dass es zwei Datenbanken gibt, in denen mehr als 100GB freier Speicherplatz vorhanden ist. Dass dieser bei einer aktiven Mailarchivierungslösung mittelfristig benötigt wird ist sehr unwahrscheinlich. Daher würde ich raten, diese beiden Exchange Datenbanken zu verkleinern.

Datenbank verkleinern mit eseutil

Das Komprimieren einer Exchange Datenbank bedeutet immer eine Offline-Zeit, weil die Datenbank für diesen Vorgang deaktiviert werden muss. Das betrifft aber immer nur die Datenbank, die gerade verkleinert wird – andere Datenbanken können online bleiben. Zudem muss für die Komprimierung ein temporärer Speicherplatz zur Verfügung stehen, der etwa 110% der erwarteten Dateigröße entspricht (Aktuelle Größe – Whitespace). Dieser temporäre Speicherplatz muss aber nicht zwingend auf dem Exchange Server bereit stehen.

Im ersten Schritt muss die zu verkleinernde Exchange Datenbank deaktiviert werden. Das funktioniert schnell und einfach über die Management Shell und lautet: „Dismount-Database „Datenbankname.edb„. Sobald die Datenbank deaktiviert ist, kann der Vorgang für die Komprimierung gestartet werden.

Ist auf der Partition, auf welcher die Datenbank liegt, genügend Speicherplatz vorhanden, wechsle in das Verzeichnis der Datenbank (z.B. cd d:\exchange\datenbanken“) und gib den folgenden Befehl ein:

eseutil /d "Datenbankname.edb"

Je nach Größe der Datenbank wird dieser Vorgang einige Zeit dauern. Bei der Komprimierung wird eine neue Datenbankdatei angelegt und sämtliche Daten dort hineinkopiert. Abschließend wird die alte (große) Datei gelöscht und die neue (komprimierte) Datenbankdatei in den gleichen Namen umbenannt.

Zu guter Letzt muss die Datenbank mittels „Mount-Database „Datenbankname.edb“ wieder aktiviert werden.

Auslagern der temporären Datei während der Komprimierung

Wenn auf dem lokalen Laufwerk der Exchange Datenbank nicht genügend Speicherplatz vorhanden ist, kann über einen Parameter ein UNC-Pfad definiert werden, in welchem die temporäre Datenbank vorübergehend gespeichert wird. Natürlich sollte dort der entsprechende Speicherplatz vorhanden sein.

eseutil /d "Datenbankname.edb" /t\servername\freigabename\datenbankname.edb

Der Vorgang selbst ist identisch. Es wird lediglich etwas mehr Zeit benötigt, weil die Daten zunächst über das Netzwerk in die temporäre Datei kopiert werden und die neue Datenbankdatei abschließend über das Netzwerk zurück auf den Exchange Server verschoben werden muss.

Exchange Datenbank komprimieren
Dieses Bild zeigt den kompletten Vorgang der Komprimierung der Microsoft Exchange Datenbankdatei.

Wie Du siehst, ist das Komprimieren einer Exchange Datenbank sehr einfach. Alles was Du benötigst sind Zeit und starke Nerven, wenn die Mitarbeiter im Minutentakt nachfragen, wann Outlook wieder funktioniert.

Ach ja, und eines noch: Wie bei allen Eingriffen in irgendein System -> BACKUP nicht vergessen!

Alternative: Neue Datenbank erstellen

Eine weitere Möglichkeit, die Größe der Datenbankdatei zu verringern besteht darin, einfach eine neue Exchange Datenbank zu erstellen und die Postfächer von der alten, großen Datenbank in die neue Datenbank zu verschieben. Nachdem alle Postfächer verschoben wurden, kannst Du die alte Datenbank einfach deaktivieren (Dismount-Database) und anschließend entfernen.

Diese Variante hat den Vorteil, dass die Benutzer während des Vorgangs weiter auf Ihr Postfach zugreifen können – allerdings setzt sie den vorhandenen Speicherplatz für die neue Datenbankdatei voraus.

Ebenfalls interessant:

Dieser Artikel ist wie alle anderen auf dieser Seite kostenlos für Dich und ich hoffe, ich konnte Dir weiterhelfen. Wer möchte, kann diesem Blog eine kleine Aufmerksamkeit in Form einer kleinen Spende (PayPal) oder über die Amazon Wunschliste zukommen lassen.

1 Gedanke zu „Exchange Datenbank komprimieren“

Schreibe einen Kommentar