Exchange 2007 Datenbank mit OpenSource sichern
Abgelegt unter: ComputerJa, da habe ich einen kleinen Exchange 2007 Server unter meiner Aufsicht. Es sind zwar nur knapp 15 Benutzer dort eingetragen, aber die Datenbank muss ja trotzdem irgendwie gesichert werden.
Früher ging das mit NTBackup ganz hervorragend. Leider gibt es das jetzt bei dem Windows Server 2008 nicht mehr. Die Server-Sicherung bietet die Auswahl, Exchange-Datenbank sichern, einfach nicht mehr an. Das liegt an einem völlig anderen Konzept. Mittels des VSS (Volume Shadow Service) wird, wie der Name schon sagt nur noch eine komplette Partition gesichert. Wenn man jetzt Exchange, löblicherweise, eine eigene Partiton zugestanden hat, ist das ja auch ganz nett. Dann könnte man, z.B. mit robocopy, die ganze Soße sichern. Insgesamt wird die Datenmenge aber recht unhandlich werden.
Ein weiteres Problem ist, dass man nur mit einer solchen Sicherung (Onlinesicherung) die alten Protokolldateien von Exchange löschen kann. Wenn man die Protokolldateien nicht entfernt, wachsen die auf nahezu unermessliche Größen an. Irgendwann ist dann die Platte voll. Exchange 2007 bietet eine Umlaufprotokollierung an. Dann bleiben die Protokolle klein.
Wenn man nun eine Panne mit der Datenbank hat, hat man allerdings unter Garantie einen gewissen Datenverlust, da nur die aktuelle Protokolldatei eingelesen wird.
Die Alternative: Ein entsprechendes Backup-Programm von Drittanbietern erwerben. Die Programme kosten zwischen ein paar Hundert und ein paar Tausend €.
Das ist für eine kleine Firma eigentlich völlig inakzeptabel.
Da ich ohnehin gerne auf OpenSource Software setze und die normale Datensicherung ohnehin mit dem Programm Areca erledige, wollte ich dieses ebenfalls einsetzen. Areca nutzt einen dem rsync-Protokoll ähnlichen Algorithmus. Es ist möglich im “Delta-Modus” nur die veränderten Bestandteile einer Datei zu sichern. Dieses inkrementelle Backup führt dann zu einer sehr schnellen Sicherung von großen Dateien. Bei einer Datenbank ist diese Technik sehr interessant, da nicht immer die komplette Datenbank gesichert wird. Mittels eines Merge-Kommandos kann man dann aus den einzelnen inkrementellen Backups ein Vollbackup erstellen.
Areca kann aber keine Onlinesicherung, ist für den Einsatz bei der Exchange-Sicherung also völlig unbrauchbar.
Es gibt aber eine Lösung:
Ab hier gilt: Diese Anleitung ist keine offizielle Möglichkeit der Datensicherung. Ein möglicher Datenverlust oder andere Schäden gehen zu Lasten des Anwenders!!! Sprich: Ich übernehme keinerlei Haftung!!!
Mit der Anleitung Exchange 2007 Backup auf Windows Server 2008 mit Bordmitteln und ein wenig rumschreiben habe ich eine praktische Lösung zusammengebastelt. Man ist bei der Sicherung übrigens nicht auf Areca angewiesen. Man kann jedes Backup-Tool nutzen. Allerdings muss das Tool auch von der Kommandozeile aus gesteuert werden können.
Das Backup selber wird von diskshadow, dem Programm zur Erstellung und Verwaltung von Schattenkopien. Das Programm ist Bestandteil von Windows Server 2008. Der Aufruf muss als “Administrator” erfolgen, da es sonst später Probleme mit den Schattenkopien geben kann.
Wir erstellen erst einmal die Datei
ex-backup.txt
Diese dient als Steuerdatei für diskshadow .
Der Inhalt von ex-backup.txt ist
set context persistent
begin backup
add volume B: alias FirstStorageGroup
create
expose %FirstStorageGroup% Q:
exec ex-backup.bat
end backup
delete shadows exposed Q:
exit
Erklärungen:
set context persistent
Die Schattenkopie wird in einen “nichtflüchtigen” Zustand versetzt. Nur in diesem Zustand kann man die Schattenkopie mounten.
begin backup
Das Backup wird gestartet
add volume B: alias FirstStorageGroup
Hier wird die zu sichernde Partition in das Backup eingefügt. Als Partition ist die Partition zu wählen, auf der sich die Exchange Datenbank befindet ( bei mir B:). Das FirstStorageGroup dient als “Name” für das Volume. Man kann hier auch Tomatensaft hinschreiben, das ist egal. Später muss man nur immer statt FirstStorageGroup eben Tomatensaft einsetzen.
create
Los geht es mit dem Backup.
expose %FirstStorageGroup% Q:
Jetzt wird FirstStorageGroup, oder Tomatensaft gemountet. Bei mir ist es Q:, es kann aber auch jede andere freie Datenträgerbezeichnung sein.
exec ex-backup.bat
Jetzt wird die Batch-Datei ex-backup.bat ausgeführt (Inhalt weiter unten)
end backup
Das Backup wird beendet und die Protokolle von Exchange werden gelöscht.
delete shadows exposed Q:
Alle Schattenkopien auf Q: werden gelöscht. Damit verschwindet Q: ebenfalls. Hier muss man natürlich seine bei dem Kommando expose angegebene Partition nehmen.
exit
…..Und Tschüss….
Jetzt fehlt noch der Inhalt von ex-backup.bat
echo running eseutil
eseutil /k “Q:\Exchange\MailDB\Mailbox Database.edb”echo Starte Backup
call areca.batecho Backup erfolgreich
Erklärungen:
echo running eseutil
eseutil /k “Q:\Exchange\MailDB\Mailbox Database.edb”
Ansage, dass die Datenbank geprüft wird. Man kann noch weitere Parameter für eseutil mitgeben, je nachdem was man möchte. Hier ist natürlich die richtige Partition und der richtige Datenpfad anzugeben. Man muß einfach den Datenpfad der Datenbank angeben und denn noch die Partition auf die Backuppartition ändern.
echo Starte Backup
call areca.bat
Hier wird das Backup Programm gestartet. In meinem Fall ist es areca. Die Batchdatei ist aber von Nutzer zu Nutzer völlig unterschiedlich. Der Inhalt wird hier nicht dargestellt.
echo Backup erfolgreich
Einfach nur eine Info, kann man aber auch weglassen.
Start der Routine
Mit folgendem Befehl startet man den Vorgang
diskshadow -s ex-backup.txt
Ich muss nicht anmerken, dass man sich in dem Verzeichnis von ex-backup.txt befinden muss, bzw.den kompletten Pfad zur Datei angeben muss.
Man kann den ganzen Kram auch über den Taskplaner von Windows automatisiert laufen lassen.
Die ganze Sache kann, je nach Größe der Datenbank, etwas dauern. Das tägliche Backup bei mir ist in 10 Minuten durch. Das liegt halt daran, dass nur die geänderten Bestandteile gesichert werden.

Danke für den wirklich hilfreichen und gut Dokumentierten Beitrag. Hilfreich ist auch der Hinweis von Howard Marks http://www.informationweek.com/blog/main/archives/2008/03/death_to_brick.html
über die eingebaute Funktion von Deleted Item Recovery im Exchange Server.
Post a Comment