Bents Blog

 

Ein IT Blog mit Themen aus dem Windows Server Umfeld.

Wiederherstellung von archivierten Postfächern mit dem Microsoft Exchange Server 2007

Die Wiederherstellung von archivierten Postfächern ist ein sehr umfangreiches Thema. Es existieren viele verschiedene Möglichkeiten – alle mit ihren Vor- und Nachteilen. Doch wie ex- (und importiert) man ein Postfach eines Benutzers, der beispielsweise das Unternehmen verlassen hat? Entweder mit Boardmittel – also Werkzeugen bzw. Funktionen die von Haus aus integriert sind – oder über Produkte von Drittanbietern. Der folgende Fall schildert meine Erfahrungen, die ich mit Microsoft Exchange 2007 gesammelt habe, welches im Standard im Microsoft Small Business Server 2008 integriert ist.

Üblicherweise empfehlen wir unseren Kunden als Sicherungssoftware (also als Zusatzprodukt) die Backup- und Restore-Lösung Backup Exec (zum Beispiel die Small Business Server Edition) von Symantec. Backup Exec bietet (mit dem Agenten für Exchange Server) seit der Version 11 (aktuell 2010 R2) die Möglichkeit, im Recovery-Fall nicht nur einzelne Postfächer, sondern auch granular bis auf der Ebene einzelner Nachrichten, Daten wiederherzustellen:

Diese Funktion ermöglicht eine komfortable und schnelle Wiederherstellung von archivierten Daten eines beliebigen Benutzers – egal ob selbiger vorhanden ist oder eben nicht (Umleitung in anderes Postfach).

In meinem Fall geht es aber um die Wiederherstellung des Postfaches oder darin enthaltener Nachrichten eines Benutzers, der kein Postfach mehr besitzt – dessen Daten aber zur Aufbewahrung archiviert wurden. Es kommt gar nicht so selten vor, dass Daten archivierter Postfächern von ausgeschiedenen Mitarbeitern benötigt werden – oftmals dringend und möglichst zeitnah.

Export mit Exchange-Funktionen

Und genau für diese Archivierung bietet Exchange 2007 verschiedene Möglichkeiten. Eine durchaus komfortable Variante bietet der Export von Postfächern in eine PST-Datei. Der entscheidende Nachteil ist der sehr hohe Aufwand der Implementierung dieser Lösung, da (wie im Artikel beschrieben), ein 32 Bit Computer mit Outlook und den Exchange Management Tools benötigt wird. Entscheidender Vorteil ist allerdings, dass die so exportierte PST-Datei im Wiederherstellungsfall direkt in Outlook geöffnet werden kann.

Eine zweite Lösung stellt das Verschieben des Postfachs in eine andere Postfach-Datenbank dar. Für diesen Fall erstellt man in der Exchange-Verwaltungskonsole (Serverkonfiguration, Postfach) zuerst eine neue Speichergruppe (hier Archiv Storage Group), in der dann wiederum eine neue Archiv-Postfach-Datenbank angelegt wird:

Anschließend kann das zu archivierende Postfach in der Empfängerkonfiguration in die neue Archiv-Postfach-Datenbank der Archiv Storage Group verschoben werden:

Für die Archivierung des Postfachs hebt man nun einfach die Bereitstellung der neuen Archiv-Postfach-Datenbank in der neuen Speichergruppe auf (Powershell: Dismount-Database) und sichert die Dateien entweder auf ein WORM-Band oder brennt selbige auf einen einmal beschreibbaren Datenträger (DVD). Danach kann die Archiv-Postfach-Datenbank wieder bereitgestellt werden (Powershell: Mount-Database).

Nach Abschluss dieser Aktion kann der Benutzer „beerdigt“ werden – ich trenne üblicherweise nur das Postfach vom Konto des Benutzers und deaktiviere anschließend letzteres im Active Directory:

Das getrennte Postfach wird durch die automatischen Bereinigung von Exchange nach 30 Tagen automatisch gelöscht. Dies lässt sich aber auch durch den folgenden Powershell-Befehl verhindern:

Set-MailboxDatabase -Identity <Server\Speichergruppe\DB> -MailboxRetention 365.00:00:00

Dadurch würde das verschobene, getrennte Postfach ein weiteres Jahr in dieser Datenbank verbleiben, bevor es gelöscht wird. Um Platz zu sparen, kann die Archiv-Postfach-Datenbank aber entfernt werden (Powershell: Remove-MailboxDatabase) – die Archivierung ist damit abgeschlossen. Als angenehm empfinde ich, dass alle Schritte vollständig in der Exchange-Verwaltungskonsole durchgeführt werden können.

Wiederherstellung mit Exchange-Funktionen

Für die Wiederherstellung einzelner Elemente aus der im vorangegangenen Schritt archivierten Postfach-Datenbank benötigt man zwingend die Exchange-Verwaltungsshell (Powershell). Zu Beginn ist eine Wiederherstellungsdatenbank erforderlich, die innerhalb der Exchange-Verwaltungskonsole nicht angezeigt wird. Dafür legt man zuerst eine Speichergruppe für die Wiederherstellung an:

New-StorageGroup -Server <Servername> -LogFolderPath <Pfad zu den Protokolldateien> -Name <Name der Recover-StorageGroup> -SystemFolderPath <Pfad zur Datenbank> -Recovery

Mit dem Befehl Get-StorageGroup kann man sich die nun exisitierenden Speichergruppen anzeigen lassen, in meinem Fall also:

Danach kann die eigentliche Wiederherstellungsdatenbank erzeugt werden:

New-MailboxDatabase -MailboxDatabaseToRecover <Datenbankname der Postfächer> -StorageGroup <Servername>\<Name der Recover-StorageGroup> -EDBFilePath <Datenbank inkl. edb-Endung>

Dabei erstellt Exchange die Datenbank noch nicht als Datei. Achtung: Der Name der neuen Postfach-Datenbank muss dem Namen der Postfach-Datenbank entsprechen, für die Elemente wiederhergestellt werden sollen – in meinem Fall der Name der Datenbank innerhalb der First Storage Group. Das Ergebnis des Kommandos liefert folgende Ausgabe:

Mit dem Befehl Get-MailboxDatabase kann man sich nun alle Postfach-Datenbanken anzeigen lassen:

Nun kann die eigentliche Wiederherstellung erfolgen. Dazu kopiert man einfach auf Datei-Ebene die zuvor archivierte Datenbank (Datenbank.edb) in den Ordner der Recovery-Datenbank (EDBFilePath) und benennt sie in deren Namen (in meinem Fall RDB.edb) um. Nun kann die Datenbank mit dem Befehl

Mount-Database -Identity <Servername\Recovery-Speichergruppe\Recovery-Datenbankname>

die archivierte Datenbank bereitgestellt werden. Der Inhalt der Datenbank kann mit dem Befehl

Get-MailboxStatistics -Database <Servername\Recovery-Speichergruppe\Recovery-Datenbankname>

angezeigt werden und liefert in meinem Fall folgendes Ergebnis:

Die erste Zeile stellt dabei das eigentliche Benutzer-Postfach dar, das wiederhergestellt werden soll. Dafür kommt nun der Wiederherstellungs-Befehl

Restore-Mailbox -Identitiy <Benutzer> -RSGDatabase <Servername\Recovery-Speichergruppe\Recovery-Datenbankname>

zum Einsatz. Der Befehl stellt dabei das gesamte Postfach für einen aktivierten Benutzer wieder her. In den meisten Fällen ist das aber ungünstig, da der Benutzer so wieder für den Empfang von E-Mails aktiviert wird. Oftmals soll aber nur ein anderer, aktiver Mitarbeiter auf  bestimmte Nachrichten des archivierten Postfachs zugreifen können. Dies lässt sich wie folgt umsetzen:

Restore-Mailbox -Identity <Aktiver Benutzer> -RSGDatabase <Servername\Recovery-Speichergruppe\Recovery-Datenbankname> -RSGMailbox <Name der archivierten Mailbox> -TargetFolder <Ordnername im Postfach des aktiven Benutzers> …

Dadurch wird der Inhalt des archivierten Postfachs in einem neuen Ordner des Postfachs eines aktiven Benutzers wiederhergestellt, dabei lässt sich der Umfang der wiederherzustellenden Element noch mit folgenden, weiteren Optionen eingrenzen:

  • -StartDate <dd/mm/yy>
  • -EndDate <dd/mm/yy>
  • -SubjectKeywords „Suchbegriff“
  • -ContentKeyword „Suchbegriff“
  • -SenderKeywords „Suchbegriff“
  • -RecipientKeywords „Suchbegriff“
  • -IncludeFolders \Posteingang,\Postausgang

Gerade bei sehr großen Postfächern lassen sich so die wiederherzustellenden Elemente auf ein Minimum reduzieren, zumal der aktive Mitarbeiter diese Suche sonst manuell in seinem Postfach durchführen müsste. Eine feine Sache, wie ich finde.

Ist die Wiederherstellung abgeschlossen, kann für die Recovery-Datenbank mit dem Befehl

Dismount-Database -Identity <Servername\Recovery-Speichergruppe\Recovery-Datenbankname>

die Bereitstellung wieder aufgehoben werden:

Anschließend können die Datenbank-Dateien (RDB.edb und *.log) im Ordner (EDBFilePath) wieder gelöscht werden. Die Entfernung der Datenbank mittels Remove-MailboxDatabase ist nicht notwendig, da die Datenbank beim Start des Microsoft Exchange Informationspeichers nicht automatisch bereitstellt wird.

Fazit

Meiner Meinung nach sollte derjenige, der einen Microsoft Exchange Server oder eine Infrastruktur einsetzt und betreibt, eine vernünftige Datensicherung für selbigen verwenden. Aus meiner Erfahrung kann ich nur Positives über die oben genannte Lösung Backup Exec berichten, allerdings hat diese auch ihren Preis. Exchange bietet zumindest Möglichkeiten, einzelne Elemente der Datenbanken im Bedarf wiederherzustellen – wenn auch mit einigem administrativen Aufwand. Wie bei allen meinen Beiträgen gilt: Bei Tipps, Vorschlägen sowie Fragen oder Kritiken hinterlasst bitte einen Kommentar.

Einen Blog am Leben zu erhalten kostet Zeit und Geld. Da ich auf meiner Seite weder Werbung einbinde, noch andersweitige Zuwendungen erhalte, freue ich mich über jede kleine Spende. Einfach und unkompliziert geht das über PayPalMe. Du unterstützt damit diesen Blog. Vielen Dank.