SBS2011 – Exchange 2010 – Postfach Mailbox wiederherstellen

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

SBS2011 Menue Datensicherung

SBS2011 Menue Datensicherung

rechts unter den Tasks „Serverdaten aus Datensicherung wiederherstellen“ anklicken

SBS2011 Konsole Task Restore

SBS2011 Konsole Task Restore

unter Aktionen „Wiederherstellung“ anklicken

SBS2011 Restore Start

SBS2011 Restore Start

diesen Server auswählen

SBS2011 Restore Serverwahl

SBS2011 Restore Serverwahl

Als nächstes muss die Sicherung ausgewählt werden die wiederhergestellt werden soll. Der Zeitplan richtet sich ganz nach deiner Backupstrategie

SBS2011 Restore Datum wählen

SBS2011 Restore Datum wählen

Da ich eine Mailbox / Postfach wiederherstellen möchte, muss als Wiederherstellungstyp „Anwendungen“ gewählt werden

SBS2011 Restore Anwendungstyp

SBS2011 Restore Anwendungstyp

Wer einen Sharepoint einsetzt, wie er beim Small Business Server typischerweise mit installiert ist, findet ihn an dieser Steller -> ich wähle Exchange

SBS2011 Restore Exchange

SBS2011 Restore 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

SBS2011 Exchange Restore Speicherort

SBS2011 Exchange Restore Speicherort

Als nächstes wird als Bestätigung angezeigt, was wiederhergestellt werden soll -> weiter

SBS2011 Exchange Restore Confirm

SBS2011 Exchange Restore Confirm

Nun beginnt die Wiederherstellung die je nach Postfachgröße und Performance des Servers ein paar Minuten dauern kann

SBS2011 Exchange Restore Running

SBS2011 Exchange Restore Running

Die Wiederherstellung läuft…

SBS 2011 Exchange DB Restore

SBS 2011 Exchange DB Restore

Damit ist die Wiederherstellung abgeschlossen und ich schau in das Verzeichnis in dem die Datenbank nun liegt:

SBS2011 Exchange DB Pfad

SBS2011 Exchange DB Pfad

Als nächstes muss die Datenbank in einem Clean Shutdown Status gebracht werden. Dazu wird die Exchange Management Shell gestartet:

SBS2011 Exchange Management Shell

SBS2011 Exchange Management Shell

 

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:

SBS2011 Exchange RecoveryDB

SBS2011 Exchange RecoveryDB

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

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.