System ist ein Small Business Server 2011 SP1 mit Exchange 2010 SP3 = server
Situation ist folgende. Aus einem Postfach sind diverse Ordner „verschwunden“, die sich nicht mehr im Papierkorb befinden. Nachfolgend beschreibe ich wie ich aus dem Backup des SBS2011 die Datenbank wiederherstelle, mittels Powershell einbinde und die Ordner zurück hole.
ACHTUNG – nachfolgende Schritte sind auf eigene Gefahr und Verstand durchzuführen – ich übernehme keine Garantie ….
1. Schritt Wiederherstellung der Exchange Datenbank
SBS 2011 Konsole Menü -> Datensicherung und Wiederherstellung aufrufen
rechts unter den Tasks „Serverdaten aus Datensicherung wiederherstellen“ anklicken
unter Aktionen „Wiederherstellung“ anklicken
diesen Server auswählen
Als nächstes muss die Sicherung ausgewählt werden die wiederhergestellt werden soll. Der Zeitplan richtet sich ganz nach deiner Backupstrategie
Da ich eine Mailbox / Postfach wiederherstellen möchte, muss als Wiederherstellungstyp „Anwendungen“ gewählt werden
Wer einen Sharepoint einsetzt, wie er beim Small Business Server typischerweise mit installiert ist, findet ihn an dieser Steller -> ich wähle Exchange
Da ich das Postfach nicht ersetzen möchte, sondern nur bestimmte Mails bzw. Ordner suche, wähle ich als nächstes einen Speicherort für die Wiederherstellung
Als nächstes wird als Bestätigung angezeigt, was wiederhergestellt werden soll -> weiter
Nun beginnt die Wiederherstellung die je nach Postfachgröße und Performance des Servers ein paar Minuten dauern kann
Die Wiederherstellung läuft…
Damit ist die Wiederherstellung abgeschlossen und ich schau in das Verzeichnis in dem die Datenbank nun liegt:
Als nächstes muss die Datenbank in einem Clean Shutdown Status gebracht werden. Dazu wird die Exchange Management Shell gestartet:
Nun in das Verzeichnis der obigen Datenbank gewechselt und Befehl eseutil mit Parameter /mh ausgeführt:
[PS]: c:\…\Mailbox Database\eseutil /mh /Mailbox Database.edb
Extensible Storage Engine Utilities for Microsoft(R) Exchange Server Version 14.03 Copyright (C) Microsoft Corporation. All Rights Reserved. Initiating FILE DUMP mode... Database: .\Mailbox Database.edb DATABASE HEADER: Checksum Information: Expected Checksum: 0x040330ee Actual Checksum: 0x040330ee Fields: File Type: Database Checksum: 0x40330ee Format ulMagic: 0x89abcdef Engine ulMagic: 0x89abcdef Format ulVersion: 0x620,17 Engine ulVersion: 0x620,17 Created ulVersion: 0x620,17 DB Signature: Create time:06/25/2013 23:22:50 Rand:1492322 Computer: cbDbPage: 32768 dbtime: 89883259 (0x55b827b)
State: Dirty Shutdown
Log Required: 99564-99585 (0x184ec-0x18501)
Log Committed: 0-99586 (0x0-0x18502)
Log Recovering: 0 (0x0)
GenMax Creation: 02/22/2015 22:25:44 Shadowed: Yes Last Objid: 4630 Scrub Dbtime: 0 (0x0) Scrub Date: 00/00/1900 00:00:00 Repair Count: 0 Repair Date: 00/00/1900 00:00:00 Old Repair Count: 0 Last Consistent: (0x17F4A,1,1F) 02/11/2015 22:25:26 Last Attach: (0x17F4B,1,270) 02/11/2015 22:25:27 Last Detach: (0x0,0,0) 00/00/1900 00:00:00 Dbid: 1 Log Signature: Create time:06/25/2013 23:22:49 Rand:1503545 Computer: OS Version: (6.1.7600 SP 0 NLS ffffffff.ffffffff) Previous Full Backup: Log Gen: 99489-99509 (0x184a1-0x184b5) - OSSnapshot Mark: (0x184B5,4D,C78) Mark: 02/22/2015 01:30:27 Previous Incremental Backup: Log Gen: 0-0 (0x0-0x0) Mark: (0x0,0,0) Mark: 00/00/1900 00:00:00 Previous Copy Backup: Log Gen: 0-0 (0x0-0x0) Mark: (0x0,0,0) Mark: 00/00/1900 00:00:00 Previous Differential Backup: Log Gen: 0-0 (0x0-0x0) Mark: (0x0,0,0) Mark: 00/00/1900 00:00:00 Current Full Backup: Log Gen: 0-0 (0x0-0x0) Mark: (0x0,0,0) Mark: 00/00/1900 00:00:00 Current Shadow copy backup: Log Gen: 0-0 (0x0-0x0) Mark: (0x0,0,0) Mark: 00/00/1900 00:00:00 cpgUpgrade55Format: 0 cpgUpgradeFreePages: 0 cpgUpgradeSpaceMapPages: 0 ECC Fix Success Count: none Old ECC Fix Success Count: none ECC Fix Error Count: none Old ECC Fix Error Count: none Bad Checksum Error Count: none Old bad Checksum Error Count: none Last checksum finish Date: 00/00/1900 00:00:00 Current checksum start Date: 00/00/1900 00:00:00 Current checksum page: 0 Operation completed successfully in 0.78 seconds.
Am Ergebnis unter „State:“ lässt sich nun der Status der Datenbank während des Backups ablesen. In diesem Fall ist es ein „Dirty Shutdown“. Dies bedeutet nicht, dass ein Fehler innerhalb der Datenbank vorliegt. Bevor die Datenbank aus dem Backup wieder bereit gestellt werden kann, muss sie in den Status „Clean“ gebracht werden.
Unterschied Soft und Hard Recovery
Link zum Artikel auf Technet: https://technet.microsoft.com/de-de/library/aa996168%28v=exchg.65%29.aspx
Nun erfolgt ein Soft Recovery der Datenbank. Dafür wird eseutil wie folgt auf die Datenbank ausgeführt:
[PS]: c:\…\Mailbox Database\eseutil /r e00 /d
Extensible Storage Engine Utilities for Microsoft(R) Exchange Server Version 14.03 Copyright (C) Microsoft Corporation. All Rights Reserved. Initiating RECOVERY mode... Logfile base name: e00 Log files: <current directory> System files: <current directory> Database Directory: <current directory> Performing soft recovery... Restore Status (% complete) 0 10 20 30 40 50 60 70 80 90 100 |----|----|----|----|----|----|----|----|----|----| ................................................... Operation completed successfully in 9.968 seconds.
E00 steht für die Logdatei E00.chk im selben Verzeichnis. Den Schalter /l für das aktuelle Verzeichnis brauch ich nicht, da ich in dem Ordner bin und Schalter /d für Ziel ist ebenso der selbe Ordner
Als nächstes wird nochmals der Status mitels der Schalter /mh geprüft:
dbtime: 91320551 (0x57170e7)
State: Clean Shutdown
Und siehe da wir haben einen Clean Shutdown. Sollte dies nicht der Fall sein und der Status immer noch Dirty sein, dann weiter nach unten scrollen.
Nun muss die Recovery Datenbank erstellt werden. Dafür wird das Cmdlet New-MailboxDatabase wie folgt verwendet:
[PS]: C:\…\Mailbox Database\New-MailboxDatabase -Name RecoveryDB -EdbFilePath C:\…\Mailbox Database\Mailbox Database.edb -LogFolderPath c:\…\Log\DB00 -Recovery -Server server
WARNUNG: Die Wiederherstellungsdatenbank ‚RecoveryDB‘ wurde mithilfe der vorhandenen Datei erstellt:
C:\Daten\Recovery\C_\Program Files\Microsoft\Exchange Server\V14\Mailbox\Mailbox Database\Mailbox Database.edb. Die
Datenbank muss einen Clean Shutdown-Status erhalten, bevor sie bereitgestellt werden kann.
Name Server Recovery ReplicationType
—- —— ——– —————
RecoveryDB SERVER True None
Wechseln in das Verzeichnis der neuen Datenbank und mounten / einbinden der neuen Datenbank
[PS]: C:\…\Recovery\Mount-Database RecoveryDB
Mailbox Statistiken und Informationen aufrufen
[PS]: C:\…\Recovery\Get-MailboxStatistics -Database RecoveryBD
soll nur ein bestimmtes Postfach angezeigt werden ist dies wie folgt möglich
[PS]: C:\…\Recovery\Get-MailboxStatistics -Database RecoveryBD | ?{$_.DisplayName -like ‚Name*‘}
Der Status lässt sich selbstverständlich nun auch in der Exchange Verwaltungskonsole anzeigen:
Soweit sieht alles gut aus. Nun bieten sich mehrere Wege an. z.B. eine 1:1 Wiederherstellung in die ursprüngliche Mailbox oder einzelne Mails, Ordner oder gar in ein anderes Postfach als Unterordner….
Beispiel einer Wiederherstellung in das aktive selbe Postfach des Benutzers / Besitzers Max Mustermann
[PS]: C:\New-MailboxRestoreRequest -SourceDatabase RecoveryDB -SourceStoreMailbox ‚Max Mustermann‘ -TargetMailbox mmustermann
Beispiel der Wiederherstellung bei selben DisplayNamen jedoch unterschiedlicher MailboxGUID in das aktive Postfach von Max Mustermann (mmustermann):
[PS]: C:\New-MailboxRestoreRequest -SourceDatabase RecoveryDB -SourceStoreMailbox 4a-12-34-56 -TargetMailbox mmustermann
Beispiel einer Wiederherstellung eines bestimmten Folders / Ordners, hier der Inbox von Max Mustermann
[PS]: C:\New-MailboxRestoreRequest -SourceDatabase RecoveryDB -SourceStoreMailbox ‚Max Mustermann‘ -TargetMailbox mmustermann -IncludeFolders ‚#Inbox#‘
Die Raute wird als Abgrenzung benötigt und kann ebenso #Contacts#, oder #Tasks# lauten.
Beispiel der Wiederherstellung in ein anderes Postfach, z.B. des Administrators, um dann z.B. gezielt Mails, Ordner oder weiteres zu extrahieren bzw. zu verschieben…
[PS]: C:\New-MailboxRestoreRequest -SourceDatabase RecoveryDB -SourceStoreMailbox ‚Max Mustermann‘ -TargetMailbox administrator -TargetRootFolder Restore -AllowLegacyDNMismatch
Die Option -AllowLegacyDNMismatch deaktiviert den üblichen LegacyExchangeDN Check im Source und Target Postfach auf den selben Benutzer. Die Option -TargetRootFolder weist an das Postfach unterhalb des Posteingangs in den angegeben Ordner Restore wiederherzustellen. Wenn man das nicht möchte, einfach entfernen.
Hardrecovery
Ich bin obige Schritte diverse Male durchgegangen und erst beim schreiben dieses Howtos erhielt ich auf anhieb einen Clear State, daher nachfolgend die Befehle aus dem Gedächtnis:
[PS]: C:\…\Recovery\eseutil /R E00 /l c:\recovery\Mailbox Database.edb /d c:\recovery\Mailbox Recovery.edb <-/R ist die Recoveryfunktion
[PS]: C:\…\Recovery\eseutil /P Mailbox Database.edb <-Achtung es kann zu Datenverlust kommen, bei allen Elementen die bisher nicht in der Datenbank gespeichert wurden, da die Protokolldateien defekt sind
Interessiert in verschiedenste IT Themen, schreibe ich in diesem Blog über Software, Hardware, Smart Home, Games und vieles mehr. Ich berichte z.B. über die Installation und Konfiguration von Software als auch von Problemen mit dieser. News sind ebenso spannend, sodass ich auch über Updates, Releases und Neuigkeiten aus der IT berichte. Letztendlich nutze ich Taste-of-IT als eigene Dokumentation und Anlaufstelle bei wiederkehrenden Themen. Ich hoffe ich kann dich ebenso informieren und bei Problemen eine schnelle Lösung anbieten. Wer meinen Aufwand unterstützen möchte, kann gerne eine Tasse oder Pod Kaffe per PayPal spenden – vielen Dank.