How to – Exchange 2010 / 2013 Mailbox Restore

Wenn Sie in Exchange 2010 / 2013 mit DAG (Database Availability Groups) arbeiten, können Sie bei der richtigen Konfiguration auf ein konventionelles Backup einzelner Mailboxen verzichten. Ein Restore einer einzelnen Mailbox ist über die entsprechenden Bordmittel möglich.

lagged copy

Das Zauberwort hier heißt lagged copy. Das bedeutet, dass in der DAG die Datenbank auf alle teilnehmenden Server kopiert wird. Mit der Besonderheit, dass ein Server die lagged copy hält. Das bedeutet, alle Server, bis auf den mit der lagged copy, sind auf dem gleichen Stand. Die Logfiles, die in die anderen Datenbankkopien eingespielt sind, werden auf diesem Server aber so lange zurückgehalten, wie es konfiguriert wurde. Das kann zwischen 1 Minute und 14 Tagen sein, je nach Ihrer Anforderung. Sie müssen allerdings berücksichtigen, dass, je größer der Faktor wird, auch die Anzahl der Logfiles wächst. Dafür müssen Sie entsprechenden Platz vorhalten.

Wie das im Einzelnen funktioniert, wird im Folgenden beschrieben.

Beispielkonfiguration:

Sie haben vier Mailserver. Alle sind Mitglied der entsprechenden DAG auf deren Konfiguration wir hier nicht weiter eingehen. In der DAG befindet sich eine Postfachdatenbank (in unserem Beispiel MS001 genannt). Sie richten die Kopien wie gewohnt ein und suchen sich einen Server für die lagged copy aus. Auf diesem wird die Kopie dann mit einer lagged time versehen:

Add-MailboxDatabaseCopy –identity “MS001” –MailboxServer “Servername” –ReplayLagTime 14.00:00:00

In diesem Beispiel beträgt die lagged time 14 Tage, was auch der maximalen Größe entspricht

Sie können diesen Wert natürlich jederzeit ändern.

Set-MailboxDatabaseCopy -Identity MS001\Servername -ReplayLagTime 13.0:0:0

Damit wäre die Lagged Time auf 13 Tage konfiguriert

Restore

Nun kommt die Anforderung eine Mailbox von vor drei Tagen und 10 Stunden zurück zu spielen. Was müssen Sie tun? Der hier beschriebene Weg ist mehrfach von mir gestestet und für gut befunden worden 🙂

Als erstes müssen Sie einen Speicherbereich (Platte, LUN, MountPoint) mit der ausreichenden Größe für die DB Datei zur Verfügung stellen. Da im Folgenden mit Snapshots gearbeitet wird, muss dieser Bereich auf einer separaten Platte/LUN/MointPoint liegen

Nun folgen die einzelnen Schritte (Achten Sie darauf, die Powershell als Administrator zu starten):

  • Halten Sie die Kopiervorgang der DB an               .
    • Suspend-mailboxdatebasecopy ms001\servername – Achten Sie darauf, dass die Logfiles auf den andreren DAG Mitgliedern dadurch ansteigen(!)

2010restore_1

  • Als nächstes leiten Sie einen Snapshot des Datenbankbereichs ein
    •  vssadmin create shadow /for=C:\Stores\Mailstores\MS001 – Durch diese Methode können Sie nach Abschluss des Restores die lagged copy direkt wieder mit dem ursprünglichen Zustand in Betrieb nehmen.

2010restore_2

  • Löschen Sie nun alle Logfiles, die neuer als 3 Tage und 10 Stunden sind
    • Beispiel für Powershell:
      • Get-ChildItem *.log |? {$_.creationtime -ge (get-date).addminutes(-60)} |remove-item
      • Get-ChildItem *.log |? {$_.creationtime -ge “03/31/2015 13:22”} |Remove-Item
  • Löschen Sie die CHK Datei
  • Prüfen Sie nun die DB. Sie sollte sich im „dirty shutdown“ Status befinden
    • Eseutil /mh C:\stores\Mailstores\MS001.edb

2010restore_3

  • Nun spielen Sie die Logfiles in die Datenbank ein – Dies kann je nach Menge einige Zeit dauern (ca 100 GB ca. 3-4 Stunden)
    • Eseutil /r e01 /d Datenbankverzeichnis /l Logverzeichnis /s  Systemfiles /a
    • /r Repair
    • E01 – Logfilenamepräfix
    • /d Datenbankverzeichnis
    • /l Logverzeichnis
    • /s Systemfiles z.B. chk
    • /a fehlende Logfiles zulassen

2010restore_4

  • Prüfen Sie nach Abschluss, ob sich die EDB im clean shutdown Status befindet.

2010restore_5

  • Kopieren Sie die Datenbank in den bereitgestellten Speicherbereich für die Wiederherstellung
  • Nun können Sie die eigentliche lagged copy schon wieder in Betrieb nehmen, da wir mit der Kopie weiterarbeiten. Dazu spielen Sie den Snapshot ein.
    • Vssadmin list shadows – notieren Sie die shadow copy ID

2010restore_6

    • Vssadmin revert shadow /Shadow=“{shadow copy ID}“

 2010restore_7

  • Starten Sie die lagged copy wieder.
    • Resume-MailboxDatabaseCopy –Identity MS001\servername
  • Optional (empfehle ich aber) können Sie noch konfigurieren, dass die lagged copy nicht automatisch aktiv wird, wenn die anderen Kopien ausfallen.
    • Suspend-MailboxDatabaseCopy –Identity MS001\vacp0e2d –ActivationOnly

2010restore_8

  • Nun kommen wir zum eigentlichen Restore der Mailbox. Dazu müssen Sie eine neue DB mit der edb Datei anlegen.
    • New-MailboxDatabase –Name “Recovery Database” –Server Servername –EdbFilePath “C:\Stores\RSG\ms001.edb” –LogFolderPath C:\Stores\RSG\ -Recovery

2010restore_9

  • Mounten Sie diese
    • Mount-Database „Recovery Database“
  • Nun lassen Sie sich die enthaltenen Mailboxen auflisten.
    • Get-Mailboxstatistics – Database „Recovery Database“ |? {$_.displayname -match “Alex Meier”}

1

  • Wählen Sie die Mailbox aus, die Sie wiederherstellen möchten. Im Beispiel nehme ich den Displayname.
    • New-MailboxRestoreRequest -SourceDatabase “recovery database” -SourceStoreMailbox “alex meier.” -TargetMailbox “alex meier.”

Über get-mailboxrestorerequest sehen sie, wenn der Restore abgeschlossen ist.

2

  • Damit ist der Restore abgeschlossen und Sie können die Datenbank wieder entfernen
    • Dismount-Database „Recovery Database“
    • Remove-Mailboxdatabase „Recovery Database“
    • Die DB Datei müssen Sie manuell aus dem Verzeichnis löschen