Postfächer in Exchange Server 2016 mit Bordmitteln wiederherstellen

    Postfach aus Backup wiederherstellenZu den wieder­kehrenden Auf­gaben eines Exchange-Admins gehört die Wieder­her­stellung von Post­fä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 Wieder­herstellung, indem man die Post­fach­datenbank in eine Wieder­herstellungs­datenbank zurückzusichert und dann daraus die benötigten Daten in die Echtdaten­bank ü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 wieder­hergestellt be­kommen.

    Wiederherstellungsdatenbank erzeugen

    Als erstes muss die sogenannte Wieder­herstellungs­datenbank (Recovery Database) erzeugt werden. Hier kommt es auf das eingesetzte Sicherungs-Tool an. Manche erstellen diese Datenbank bei der Rück­sicherung automatisch, andere überlassen dies ganz dem Administrator.

    Je nachdem wie groß die zurück­zu­sichernden Daten sind, empfiehlt es sich, ein eigenes Recovery-Laufwerk für die Wieder­herstellungs­datenbank 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"

    Neue Wiederherstellungsdatenbank anlegen mit PowerShell

    Um anschließend zu prüfen, ob auf dem Server nun die Wieder­herstellungs­datenbank 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…

    Wiederherstellen einer Exchange-Datenbank aus einer Sicherung mit Window Server-Backup

    Das Programm fragt nun danach, wo die Sicherung gespeichert wurde. Nachdem wir dafür ein Sicherungs­laufwerk eingerichtet hatten, befindet sich das Backup auf unserem Server.

    Auswahl des Servers, auf dem das Backup gespeichert ist

    Im darauf folgenden Dialog kann die jeweilige Sicherung ausgewählt werden. Ich nehme hier mal als Beispiel die vorletzte Sicherung.

    Auswahl der Sicherung, aus der die Datenbank wiederhergestellt werden soll.

    Wir könnten jetzt natürlich auch die komplette Exchange-Datenbank zurücksichern. Dies wollen wir allerdings nicht, da wir die Wieder­herstellungs­datenbank (Recovery Database) nutzen möchten. Zudem brauchen wir nicht die komplette Datenbank, sondern nur ein Postfach daraus.

    Einzelne Dateien aus dem Backup wiederherstellen

    Daher entscheiden wir uns jetzt für Dateien und Ordner anstatt für Anwendung.

    Datenbank auswählen, die aus der Sicherung wiederhergestellt werden soll

    Jetzt kann im angezeigten Verzeichnis­baum die Postfach­datenbank ausgewählt werden, in der sich das wiederher­zustellende Postfach befindet.

    Speicherort für die Recovery Database festlegen

    Wir legen jetzt als Rück­sicherungsort das Verzeichnis C:\RecoveryDB fest, welches wir zu Beginn für unsere Wieder­herstellungs­datenbank angegeben haben.

    Der Assistent zeigt den Fortschritt der Wiederherstellung an.

    Zuletzt wird die Zusammen­fassung bestätigt und die Wieder­herstellung gestartet.

    Wiederherstellungsdatenbank online schalten

    Nach der Rück­sicherung muss die Datenbank noch den korrekten Namen erhalten, da sie aktuell noch genauso heißt wie unsere Produktiv­datenbank. Da wir zum Anfang dieses Artikels den Namen RecoveryDB gewählt haben, nennen wir die Datenbank dementsprechend um.

    Die Recovery-Datenbank muss nun jenen Namen erhalten, den man anfangs festgelegt hat.

    Als nächstes überzeugen wir uns davon, dass die Daten­bankdatei korrekt mit der Wieder­herstellungs­datenbank 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'

    Die wiederhergestellte Datenbank hat standardmäßig den Status Dirty Shutdown.

    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'

    Status der Recovery-Datenbank in Clean Shutdown ändern

    Je nach Größe der Datenbank, dauert dieser Vorgang eine Weile.

    Hinweis: Die Datenbank muss zwingend den Status Clean Shutdown aufweisen. Da eine Wieder­herstellungs­datenbank einen alternativen Wieder­herstellungs­ort für alle Daten­banken darstellt, haben alle wieder­hergestellten Datenbanken standard­mäß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

    Mount-Status der Wiederherstellungsdatenbank anzeigen

    Postfach wiederherstellen

    Nun können wir mit folgendem Befehl den Inhalt der Wieder­herstellungs­datenbank anzeigen:

    Get-MailboxStatistics -Database RecoveryDB | ft -AutoSize

    Inhalt der Wiederherstellungsdatenbank anzeigen

    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 Original­postfach ü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.

    Postfach für den Benutzer Max Mustermann zurücksichern

    Der Status der Rücksicherung können wir folgendermaßen überprüfen:

    Get-MailboxRestoreRequest

    Fortschritt der Wiederherstellung anzeigen

    Keine Kommentare