Hallo Profis,
nach einer Rücksicherung der Exchange DB möchte ich über ein Soft Recovery die fehlenden Transaction Logs einspielen. Da ich die Transaction Logs vom gecrashten Server geholt habe sind auch ein paar defekte Logs dabei. Auf ein paar Webseiten
habe ich gelesen dass man ein Soft Recovery auch in mehreren Schritten durchführen kann. Es wird immer mit der letzten vorhandenen Transaction Log begonnen und die Kette abgearbeitet.
So bin ich vorgegangen:
Rücksicherung des gesicherten virutellen Server Image in eine isolierte Umgebung. Exchange läuft auf dem Stand von der Rücksicherung fehlerfrei und die DB hat einen 'clean Shutdown'.
Rücksicherung aller Transaction Logs vom gecrashten Server die neuer sind als die von der Rücksicherung in ein Verzeichnis C:\Log\warten\
Mit eseutil /ml E00 habe ich die defekte Transaction Log Dateien ausfindig gemacht.
1. Ich habe bis zur defekten Log Datei alle Transaction Logs in mein Verzeichnis C:\Log kopiert. Das defekte Log habe ich weggelassen.
2. In diesem Verzeichnis habe ich die letzte Log Datei in E00.log umbenannt
3. Im Datenbankverzeichnis habe ich die Datei E00.chk gelöscht
4. Anschließend konnte ich im Datenbankverzeichnis folgenden Befehl ausführen: Eseutil /r E00 /i /l"C:\Log"
Dabei wurde das Soft Recovery der Transaction Logs ohne jeglichen Fehler durchgeführt und hat folgendes Ergebnis ausgegeben:
Extensible Storage Engine Utilities for Microsoft(R) Exchange Server
Version 15.00
Copyright (C) Microsoft Corporation. All Rights Reserved.
Initiating RECOVERY mode...
Logfile base name: E00
Log files: C:\Log
System files: <current directory>
Performing soft recovery...
Restore Status (% complete)
0 10 20 30 40 50 60 70 80 90 100
|----|----|----|----|----|----|----|----|----|----|
...................................................
Operation completed successfully in 3.369 seconds.
Die Schritte oben 1. – 4. habe ich ca. 10-mal wiederholt mit etwa 9 GB Logdateien. Immer die defekte Transaction Log weggelassen und immer mit dem Ergebnis fehlerfrei.
Allerdings wurde die Datenbank nicht verändert. Das konnte ich an der Änderungsuhrzeit der DB Datei sehen und über eseutil /mh '.\Mailbox Database 1474747554.edb'
Hier das Ergebnis:
Extensible Storage Engine Utilities for Microsoft(R) Exchange Server
Version 15.00
Copyright (C) Microsoft Corporation. All Rights Reserved.
Initiating FILE DUMP mode...
Database: .\Mailbox Database 1474747554.edb
DATABASE HEADER:
Checksum Information:
Expected Checksum: 0x0672ad6a
Actual Checksum: 0x0672ad6a
Fields:
File Type: Database
Checksum: 0x672ad6a
Format ulMagic: 0x89abcdef
Engine ulMagic: 0x89abcdef
Format ulVersion: 0x620,20
Engine ulVersion: 0x620,20
Created ulVersion: 0x620,20
DB Signature: Create time:02/17/2014 21:47:37.294 Rand:3993687841 Computer:
cbDbPage: 32768
dbtime: 433833261 (0x19dbc52d)
State: Clean Shutdown
Log Required: 0-0 (0x0-0x0)
Log Committed: 0-0 (0x0-0x0)
Log Recovering: 0 (0x0)
GenMax Creation: 00/00/1900 00:00:00.000
Shadowed: Yes
Last Objid: 267760
Scrub Dbtime: 0 (0x0)
Scrub Date: 00/00/1900 00:00:00
Repair Count: 0
Repair Date: 00/00/1900 00:00:00.000
Old Repair Count: 0
Last Consistent: (0x3,33,370) 12/29/2015 16:29:43.584
Last Attach: (0x1,1,268) 12/29/2015 16:27:53.551
Last Detach: (0x3,33,370) 12/29/2015 16:29:43.584
Last ReAttach: (0x7F4CF,2,0) 12/18/2015 08:27:07.613
Dbid: 1
Log Signature: Create time:12/29/2015 16:27:53.005 Rand:4151495402 Computer:
OS Version: (6.2.9200 SP 0 NLS ffffffff.ffffffff)
Previous Full Backup:
Log Gen: 0-0 (0x0-0x0)
Mark: (0x0,0,0)
Mark: 00/00/1900 00:00:00.000
Previous Incremental Backup:
Log Gen: 0-0 (0x0-0x0)
Mark: (0x0,0,0)
Mark: 00/00/1900 00:00:00.000
Previous Copy Backup:
Log Gen: 0-0 (0x0-0x0)
Mark: (0x0,0,0)
Mark: 00/00/1900 00:00:00.000
Previous Differential Backup:
Log Gen: 0-0 (0x0-0x0)
Mark: (0x0,0,0)
Mark: 00/00/1900 00:00:00.000
Current Full Backup:
Log Gen: 0-0 (0x0-0x0)
Mark: (0x0,0,0)
Mark: 00/00/1900 00:00:00.000
Current Shadow copy backup:
Log Gen: 0-0 (0x0-0x0)
Mark: (0x0,0,0)
Mark: 00/00/1900 00:00:00.000
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.000
Current checksum start Date: 00/00/1900 00:00:00.000
Current checksum page: 0
Operation completed successfully in 0.46 seconds.
Nun meine Fragen:
Was mache ich falsch dass die Logdateien nicht in die Datenbank übertragen werden?
Wie kann ich den Erfolg von Soft Recovery / Replay Transaction Logs messen?
Der einzige Grund für das saubere aber ergebnislose Replay der mir kommt könnte sein, dass ich mit zu alten Transaction Log Dateien arbeite und eine Änderung der DB noch nicht notwendig ist. Aber da müsste doch auch etwas an der DB verändert werden oder?
Ich freue mich über jede Rückmeldung.
Gruß Samuel