Während der Volksmund der Porzellankiste ein enges verwandtschaftliches Verhältnis zur Vorsicht unterstellt, setzt Microsoft unter Exchange bei Nutzung der Database Availability Groups auf backupfreie Umgebungen. Sollte diesem gesunden Selbstvertrauen zum Trotz dennoch einmal ein Recovery älterer Daten anstehen, zeigt dieser Artikel verschiedene Aspekte der Wiederherstellung von Exchange-Daten mit der PowerShell. Im zweiten Teil des Workshops beschäftigen wir uns sowohl mit dem Wiederherstellen einzelner E-Mails als auch mit dem Recovery eines kompletten Servers.
Wiederherstellen von E-Mails
Wiederherstellen können Sie E-Mails aus der RDB über den Befehl
New-MailboxRestoreRequest. Bei dem Kommando müssen Sie die Quelle – das Postfach aus der RDB – und das Ziel angeben. Beim Ziel können Sie das wiederherzustellende Postfach in das aktuelle Postfach zurücksichern und die Daten zusammenführen oder Sie geben einen Zielordner an, in den die Struktur zurückgesichert wird. Außerdem können Sie die Daten mit dem Parameter "AllowLegacyDNMismatch" in ein alternatives Postfach wiederherstellen. Dieser ist nötig, wenn der "LegacyExchangeDN" der Postfächer nicht übereinstimmt. Ein direkter Export in eine PST-Datei ist nicht möglich. Die Art der Wiederherstellung wird ferner über folgende Parameter gesteuert:
-
ConflictResolutionOption: Standardmäßig werden alle Quell-E-Mails aus der Wiederherstellungsdatenbank behalten, sodass sie vorhandene Daten überschreiben. Das Verhalten steuern Sie über "KeepSourceItem", "KeepLatestItem" und "KeepAll".
- ExcludeDumpster: Über diesen Parameter steuern Sie die Wiederherstellung des Dumpsters, sodass auch vermeintlich gelöschte Objekte zurückgeholt werden können.
- SourceRootFolder: Damit veranlassen Sie gezielt die Wiederherstellung einer Ordnerstruktur unterhalb dieses Ordners.
- IncludeFolders: Über diesen Wert bestimmen Sie, welche Ordner hergestellt werden können.
- TargetIsArchive: Die wiederherzustellenden Daten können auch in das Archiv des Users wiederhergestellt werden.
- TargetRootFolder: Mit dem Parameter geben Sie einen Zielordner an, in den die E-Mail-Struktur wiederhergestellt werden soll. Nutzen Sie den Parameter nicht, werden die E-Mails in der vorhandenen Struktur zusammengeführt. Damit es keine Probleme bei der Wiederherstellung gibt, sollte der Ordner bereits vorhanden sein.
Bild 3: Über New-MailboxRestoreRequest holen Sie die E-Mails aus einer Wiederherstellungsdatenbank zurück und
über Get-MailboxRestoreRequest prüfen Sie den aktuellen Status.
Um alle Daten des Postfachs in einen Unterordner "Restore" wiederherzustellen, verwenden Sie den PowerShell-Befehl
New-MailboxRestoreRequest -SourceDatabase RDB01
-SourceStoreMailbox Christian -TargetMailbox Christian
-TargetRootFolder Restore
Die aktuellen Restore-Vorgänge mit dem genauen Status erhalten Sie über
GetMailboxExportRequest | Get-MailboxExportRequestStatistics
Möchten Sie sämtliche Postfächer einer RDB zurückspielen, müssen Sie zunächst alle Postfächer abfragen. Das Ergebnis der Abfrage übergeben Sie an den Befehl
New-MailboxRestoreRequest:
$mailboxes = Get-MailboxStatistics
-Database RDB01 foreach($mailbox in $mailboxes)
{New-MailboxRestoreRequest -SourceDatabase RDB01
-SourceStoreMailbox $mailbox.DisplayName
-TargetMailbox $mailbox.DisplayName}
Nach der Wiederherstellungsaktion sollte wieder aufgeräumt werden und die RDB über das Cmdlet "Remove-MailboxDatabase" wieder gelöscht werden.
Kompletten Server wiederherstellen
Das Exchange-Setup kennt keinen Reparaturmodus, über den sich ein
defekter Server reparieren lässt. Ein häufig genutzter Weg bei Problemen
ist die Installation des neusten kumulativen Updates, damit alle
Komponenten erneuert werden. Dieser Schritt kommt einer Neuinstallation
gleich, wobei im Vergleich zur Neuinstallation alle Rollen sowie die
Konfiguration beibehalten werden. Im schlimmsten Fall wie etwa einem
Hardwaredefekt kommen Sie mit diesen Möglichkeiten allerdings nicht mehr
weiter. In dieser Situation ist es angebracht, den Exchange Server aus
den Daten des Active Directory (AD) zu rekonstruieren. Mit der
Installationsoption "/m:RecoverServer" wird anhand der Informationen und
Einstellungen aus dem AD ein Server mit dem gleichen Namen
eingerichtet.
Zunächst installieren Sie einen Server mit gleichem Betriebssystem,
gleicher Exchange-Version und gleichem Namen, damit Sie im Anschluss
eine von Microsoft unterstützte Umgebung besitzen. Verwenden Sie dabei
auch kein Windows Server 2012 R2 anstatt Windows Server 2012. Bei diesem
Schritt können Sie die gleiche oder eine neue Hardware einsetzen, die
mindestens die gleichen Leistungsmerkmale aufweist. Weiterhin muss die
gleiche Festplattenkonfiguration vorliegen, damit es bei der
Installation keine Probleme gibt.
Bild 4: Beim Recovery eines gesamten Servers müssen Sie Exchange in das gleiche Verzeichnis installieren.
Den originalen Pfad lesen Sie aus dem Active Directory mittels ADSI Edit aus.
Bevor Sie den Server in die Domäne aufnehmen, setzen Sie zunächst das
Computerkonto zurück oder löschen Sie das AD-Objekt. Im nächsten Schritt
führen Sie den neuen Server wieder in die Domäne. Den Exchange-Server
müssen Sie in das gleiche Installationsverzeichnis einspielen.
Standardmäßig handelt es sich um den Ordner
"%Programme%\Microsoft\Exchange Server\V15". Sollten Sie sich beim
Verzeichnis nicht sicher sein, kontrollieren Sie den Pfad über ADSI Edit
im AD. Prüfen Sie jetzt den Wert des Attributs "msExchInstallPath" in
den Eigenschaften des Servers im Pfad
"CN=ExServerName,CN=Servers,CN=First Administrative
Group,CN=Administrative Groups, CN=ExOrg Name,CN=Microsoft
Exchange,CN=Services,CN=Configuration,DC=DomainName,CN=Com". Einen
abweichenden Pfad geben Sie während des Setups über die Option
"/TargetDir" an. Als Nächstes installieren Sie die Voraussetzungen für
Exchange, wie die Microsoft Unified Communications Managed API 4.0,
nach. Die Erfordernisse hängen vom Betriebssystem ab, die Details finden
Sie unter [2].
Ist nun alles vorbereitet, starten Sie die Installation von Exchange
2016. Dabei nutzen Sie die gleiche Version, die bisher installiert war.
Die Build-Nummer prüfen Sie ebenfalls über ADSI Edit und das Feld
"SerialNumber". Verwenden Sie noch eine Exchange Management Shell,
können Sie die Version auch über
(Get-ExchangeServer).AdminDisplayVersion abfragen. Das Ergebnis mappen Sie dann gegen eine Exchange-Version.
Der Befehl zur Installation lautet
Setup / m:RecoverServer /InstallWindowsComponents
/IacceptExchangeServerLicenseTerms
wie in Bild 5. Mit der Option "/InstallWindowsComponents" installieren
Sie fehlende Windows-Voraussetzung nach und über
"/IAcceptExchangeServerLicenseTerms" stimmen Sie automatisch den
Lizenzbedingungen zu.
Bild 5: Über den Installationsmodus "RecoverServer" können Sie einen Exchange-Server aus dem AD
schnell rekonstruieren.
Im Anschluss sind alle Rollen installiert und Sie müssen die Datenbank
wiederherstellen, sofern dies noch nicht geschehen ist. Handelt es sich
beim wiederherzustellenden Server um ein
Database-Availability-Group-(DAG)-Mitglied, sind ein paar weitere
Schritte zu beachten. Entfernen Sie vor der Wiederherstellung zunächst
alle Datenbankkopien vom Server über Remove-MailboxDatabaseCopy. Im Anschluss entfernen Sie den Server auch aus der DAG über den PowerShell-Befehl Remove-DatabaseAvailabilityGroupServer. Danach können Sie den Server mit RecoverServer wiederherstellen. Abschließend fügen Sie den Server wieder der DAG mit den Befehlen AddDatabaseAvailabilityGroupServer und Add-MailboxDatabaseCopy hinzu.
Im ersten Teil des Workshops gingen wir auf die Verwendung von Windows
Server Backup ein und erklärten, wie Sie Datenbanken wiederherstellen. Im dritten Teil sehen wir uns die Portierung von Datenbanken an.