System Center Data Protection Manager

Task vor und nach einem DPM Job ausführen

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

Leave a Comment

Your email address will not be published. Required fields are marked *

*