Postfächer in Exchange Server 2016 mit Bordmitteln wiederherstellen
Zu den wiederkehrenden Aufgaben eines Exchange-Admins gehört die Wiederherstellung von Postfächern, wenn Mails verloren gegangen sind. Das Vorgehen ist bei den meisten Backup-Programmen gleich. Folgende Anleitung beschreibt den Restore anhand der Windows-eigenen Server-Sicherung.
Grundsätzlich erfolgt die Wiederherstellung, indem man die Postfachdatenbank in eine Wiederherstellungsdatenbank zurückzusichert und dann daraus die benötigten Daten in die Echtdatenbank überträgt.
In einem früheren Beitrag habe ich beschrieben, wie mit den Bordmitteln eine Sicherung von Exchange Server angefertigt werden kann und welche zusätzlichen Optionen es für die Konfiguration der Backups gibt. Nun geht es darum, wie wir ein einzelnes Postfach aus unserer Sicherung wiederhergestellt bekommen.
Wiederherstellungsdatenbank erzeugen
Als erstes muss die sogenannte Wiederherstellungsdatenbank (Recovery Database) erzeugt werden. Hier kommt es auf das eingesetzte Sicherungs-Tool an. Manche erstellen diese Datenbank bei der Rücksicherung automatisch, andere überlassen dies ganz dem Administrator.
Je nachdem wie groß die zurückzusichernden Daten sind, empfiehlt es sich, ein eigenes Recovery-Laufwerk für die Wiederherstellungsdatenbank anzulegen. In einer virtuellen Maschine sollte dies kein Problem sein, nachdem man dort die Exchange Management Shell installiert hat.
Die Datenbank erzeugen wir ganz einfach mit einem PowerShell-Kommando:
New-MailboxDatabase -Recovery -Name RecoveryDB -Server EX2016 `
-EdbFilePath "C:\RecoveryDB\RecoveryDB.EDB" -LogFolderPath "C:\RecoveryDB"
Um anschließend zu prüfen, ob auf dem Server nun die Wiederherstellungsdatenbank vorhanden ist, verwenden wir folgenden Befehl:
Get-MailboxDatabase RecoveryDB | fl
Wiederherstellung der gesicherten Datenbank
Wir greifen nun auf das Backup zurück, das wir mit der Windows Server-Sicherung erstellt haben und gehen hier auf Wiederherstellung…
Das Programm fragt nun danach, wo die Sicherung gespeichert wurde. Nachdem wir dafür ein Sicherungslaufwerk eingerichtet hatten, befindet sich das Backup auf unserem Server.
Im darauf folgenden Dialog kann die jeweilige Sicherung ausgewählt werden. Ich nehme hier mal als Beispiel die vorletzte Sicherung.
Wir könnten jetzt natürlich auch die komplette Exchange-Datenbank zurücksichern. Dies wollen wir allerdings nicht, da wir die Wiederherstellungsdatenbank (Recovery Database) nutzen möchten. Zudem brauchen wir nicht die komplette Datenbank, sondern nur ein Postfach daraus.
Daher entscheiden wir uns jetzt für Dateien und Ordner anstatt für Anwendung.
Jetzt kann im angezeigten Verzeichnisbaum die Postfachdatenbank ausgewählt werden, in der sich das wiederherzustellende Postfach befindet.
Wir legen jetzt als Rücksicherungsort das Verzeichnis C:\RecoveryDB fest, welches wir zu Beginn für unsere Wiederherstellungsdatenbank angegeben haben.
Zuletzt wird die Zusammenfassung bestätigt und die Wiederherstellung gestartet.
Wiederherstellungsdatenbank online schalten
Nach der Rücksicherung muss die Datenbank noch den korrekten Namen erhalten, da sie aktuell noch genauso heißt wie unsere Produktivdatenbank. Da wir zum Anfang dieses Artikels den Namen RecoveryDB gewählt haben, nennen wir die Datenbank dementsprechend um.
Als nächstes überzeugen wir uns davon, dass die Datenbankdatei korrekt mit der Wiederherstellungsdatenbank verbunden ist:
Test-Path (Get-MailboxDatabase RecoveryDB).EdbFilePath
Der Befehl sollte den Wert true zurückgeben. Als nächstes überprüfen wir, ob die Datenbank im Zustand Dirty Shutdown beendet wurde:
eseutil /mh 'C:\RecoveryDB\RecoveryDB.edb'
Da wir die Datenbank ohne die Logfiles zurückgesichert haben, kann die Datenbank jetzt in den Clean Shutdown State gebracht werden:
eseutil /p 'C:\RecoveryDB\RecoveryDB.edb'
Je nach Größe der Datenbank, dauert dieser Vorgang eine Weile.
Hinweis: Die Datenbank muss zwingend den Status Clean Shutdown aufweisen. Da eine Wiederherstellungsdatenbank einen alternativen Wiederherstellungsort für alle Datenbanken darstellt, haben alle wiederhergestellten Datenbanken standardmäßig den Status Dirty Shutdown.
Überprüfen Sie den Status daher nochmals.
Die Datenbank kann nun online geschaltet werden. Dazu verwenden wir folgenden Befehl:
Mount-Database RecoveryDB
Anschließend überzeugen wir uns, dass sie gemountet wurde:
Get-MailboxDatabaseCopyStatus RecoveryDB
Postfach wiederherstellen
Nun können wir mit folgendem Befehl den Inhalt der Wiederherstellungsdatenbank anzeigen:
Get-MailboxStatistics -Database RecoveryDB | ft -AutoSize
Folgendes Kommando stellt eine Mailbox wieder her, das alte Postfach wird dabei durch die Rücksicherung ersetzt.
New-MailboxRestoreRequest -Name "Max Mustermann" -SourceDatabase RecoveryDB `
-SourceStoreMailbox "Max Mustermann" -TargetMailbox "Max Mustermann"
Wenn nur einzelne Elemente aus einem Postfach benötigt werden, dann möchte man aber nicht gleich das Originalpostfach überschreiben. Daher leiten wir die Rücksicherung stattdessen auf ein Dummy-Postfach um und stellen dieses dem entsprechenden User zur Verfügung:
New-MailboxRestoreRequest -Name "Max Mustermann" -SourceDatabase RecoveryDB `
-SourceStoreMailbox "Max Mustermann" -TargetMailbox "Dummy"
Alternativ gibt es noch die Möglichkeit eines Single Item Recovery. Ich halte es allerdings für besser, dem Benutzer die Gelegenheit zu bieten, seine verloren gegangen E-Mails selbst aus dem Backup in sein produktives Postfach zu übertragen.
Der Status der Rücksicherung können wir folgendermaßen überprüfen:
Get-MailboxRestoreRequest
Ähnliche Beiträge
- Verteilergruppen für Exchange in PowerShell anlegen und verwalten
- Kontakte für Microsoft Exchange anlegen im Admin Center oder mit PowerShell
- E-Mails anonym über Exchange verschicken
- Microsoft Exchange: Unterschiedliche Anzeigenamen für interne und externe Mails nutzen
- Postfächer in Exchange (Online) mit PowerShell verwalten
Keine Kommentare