DPM macht einen tollen Job was die Sicherung von Microsoft Produkten angeht. DPM kann mit fast jedem Produkt mittels VSS kommunizieren und weiß was gesichert werden muss. Zusätzlich werden fast alle Daten im Live Betrieb gesichert, somit zur Gänze ohne Ausfall.
Nur leider klappt das bei Drittanbieter Software nicht so einfach, jetzt wäre es doch toll, vor einer Sicherung einen Dienst zu stoppen, Daten zu sichern und danach den Dienst wieder zu starten.
Ihr werdet es schon ahnen, DPM kann genau das.
Die Details
Nehmen wir mal an, ihr müsst eine Oracle DB sichern, dazu muss der Datenbankdienst gestoppt, Files gesichert und die DB wieder gestartet werden. Viele Kunden machen dies mittels einem geplanten Task einen Dump der Datenbank und sichern diese mit DPM.
Das Problem bei dieser Lösung ist jedoch, wer kontrolliert den Task und ob der Dump auch aktuell ist. Meistens kommt dann bei der Rücksicherung des Dumps das böse Erwachen.
DPM kann vor und nach jedem Job der betroffenen Datasource ein Script ausführen, wie das genau funktioniert zeige ich euch hier.
Vorbereitung
Auf jedem Server der einen installierten DPM Agent besitzt, existiert eine “ScriptingConfig.xml” im Verzeichnis “Scripting” des DPM Installationsverzeichnisses. Diese Datei müssen wir anpassen um unsere Scripte ausführen zu können, doch zuvor müssen wir diese noch erstellen.
In diesem Ordner erstellen wir 2 “.Bat” Files mit dem Namen “Start.bat” und “Stop.bat”. Der Name spielt keine Rolle, ihr könnt auch CMD oder PS1 nehmen.
Meine Start.bat soll zu Beginn der Sicherung laufen und einen Dienst beenden. Zum besseren Verständnis arbeite ich mit dem Dienst “spooler”
net stop spooler
Meine Stop.bat läuft am Ende der Sicherung und startet den Dienst wieder.
net start spooler
Beide Files wurden erstellt und durch Doppelklick getestet ob diese auch funktionieren, jetzt können wir uns der ScriptingConfig.xml widmen
ScriptingConfig.xml
Die leere ScriptingConfig.xml sieht so aus
version=”1.0″ encoding=”utf-8″?>
xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”
xmlns:xsd=”http://www.w3.org/2001/XMLSchema”
xmlns=”http://schemas.microsoft.com/2003/dls/ScriptingConfig.xsd”>
</ScriptConfiguration>
In dieser Datei müssen wir nun festlegen, welche Datasource welche Scripte auslöst. Es soll ja nicht jede Sicherung des betroffenen Servers den Dienst stoppen, sondern nur wenn die betroffene Datasource gesichert wird.
Somit könnte das neue Scirpt wie folgt aussehen
version=”1.0″ encoding=”utf-8″?>
xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xmlns:xsd=”http://www.w3.org/2001/XMLSchema” xmlns=”http://schemas.microsoft.com/2003/dls/ScriptingConfig.xsd”>
DataSourceName=”C:”>
<PreBackupScript>”C:\Program Files\Microsoft DPM\DPM\Scripting\Start.bat”
<PostBackupScript>”C:\Program Files\Microsoft DPM\DPM\Scripting\Stop.bat”
<TimeOut>5
</DatasourceScriptConfig>
</ScriptConfiguration>
Somit haben wir folgende Zeilen hinzugefügt
DataSourceName=”C:”>
<PreBackupScript>”C:\Program Files\Microsoft DPM\DPM\Scripting\Start.bat” </PreBackupScript>
<PostBackupScript>”C:\Program Files\Microsoft DPM\DPM\Scripting\Stop.bat” </PostBackupScript>
<TimeOut>5</TimeOut>
</DatasourceScriptConfig>
DataSourceName – Hier muss der Name der Datasource eigetragen werden, wie er auch in der DPM Konsole lautet
PreBackupScript – Das Script was vor der Sicherung ausgeführt werden soll
PostBackupScript – Das Script was nach der Sicherung ausgeführt werden soll
TimeOut – Wert in Minuten bis gewartet wird das Script auszuführen
Es kann schwierig sein den richtigen Namen für die DataSource zu finden, hier ein paar Beispiele
SQL – Instanz\Datenbank
Exchange – Name der Storage Group
SharePoint – SharepointFarm\SQ Server\Instanz\SharepointConfigDB
Und schon werden die Scripts vorher und nachher ausgeführt. Sollte es dabei ein Problem geben steht dies auch in den DPM Logs.
Habt ihr diese Lösung schon im Einsatz?
Michael Seidl aka Techguy