Baremetal Backup schlägt hin und wieder fehl bei früherem Printserver

Bei einem Kunden konnte ich folgendes beobachten in einem DPM Server 2012R2 Umfeld:

Bei einigen Servern liessen sich nach einiger Zeit keine Baremetal Recovery Points mehr erstellen. Logfiles zeigen dass RAPreBackup mit einem Error aussteigt und das ohne ersichtlichen Grund, der auf DPM zurück zu führen ist:
0x80990ED0

Wenn die Server rebooted werden, dann lassen sich wieder Recovery Points mit DPM erstellen. Einige Tage später ist der Fehler wieder da, ohne dass es irgendwelche Änderungen gab. Nach einigem hin und her stellte sich heraus, dass alle Server entweder Printserver oder ehemalige Printserver waren.

Also warteten wir bis der Fehler wieder da war. Dann stoppten wir den Print Spooler und versuchten erneut einen Recovery Point zu erstellen. Dieser funktionierte einwandfrei.

Es stellte sich heraus, dass auf den ehemaligen Printservern noch einige HP Dienste zurückgeblieben sind, obwohl die Druckertreiber deinstalliert wurden. Es handelt sich hierbei um den Dienst PML Driver HPZ12 und Net Driver HPZ12.

Wenn man statt des Print Spoolers diese zwei Dienste anhält, dann funktioniert das Baremetal Backup ebenfalls. Also deaktivierten wir die Dienste auf den ehemaligen Printservern.

Auf dem Server der nach wie vor als Printserver agiert, konnte wir diesen Workaround natürlich nicht durchführen. Stattdessen halten wir via PreBackup Skript den Print Spooler an und starten ihn wieder wenn Windows Server Backup fertig ist.

DPM Error ID 32538 Details: Internal error code: 0x809909FE bei einer Sicherung

Bei einer Sicherung eines Volumes oder eines Servers kann es manchmal vorkommen das der oben genannte Error ID 32538 Details: Internal error code: 0x809909FE auftritt. Die „Recommended action“ verweist jedoch meist auf einen Pfad der meist so aussieht:
\\?\Volume{4971f840-beaf-11e0-b315-00145e2865f6}\B1E9D373-2C03-464E-A472-99BC93DB1E2A\FailedFilesLog.txt
Doch wie kann man ihn öffnen um sich die FailedFilesLog.Txt an zu schauen:

Hier die Lösung:
1.) Öffne die Eingabeauffordeung mit Admin Rechten

2.) Gib folgendes Command ein: mountvol x: \\?\Volume{4971f840-beaf-11e0-b315-00145e2865f6} (wie in meinem Beispiel oben angegeben) Bitte beachte das Du nur den ERSTEN Teil des oben genannten Pfades angibst der zwischen den {} Steht

3.) Wechsele zu dem Laufwerk x: mit X: in der Eingabeaufforderung

4.) Dann wechsele zu dem Verzeichnis was hinter den Klammern steht mit
cd 1E9D373-2C03-464E-A472-99BC93DB1E2A (hierbei recht es wenn du cd und den ersten Buchstaben des Pfades gefolgt von einem <Tab> eintippst :-))

5.) mit dem Befehl „dir“ wird dir nun eine Liste von Dateien im Ordner angezeigt und unter anderem deine FailedFilesLog.txt.

6.) Kopiere nun die txt mit copy FialedFilesLog.txt.c:\temp nach C:\temp damit Du Sie dir im Explorer anzeigen lassen kannst.

7.) Nun kannst Du entscheiden, ob Du die Ordner vom Backup ausschließt oder z.B. den Applikationen in einem Pre Backup Task von DPM die Dateien freigeben lässt

PRE und POST Backup Scripte

Mithilfe vonScripten ergeben sich einige Möglichkeiten die sonst über die GUI bei DPM fehlen. Doch auch wenn es darum geht, Dienste oder Tasks vor einer Sicherung zu stoppen und anschließend wieder zu starten, Applikationen zu sichern, die nicht von Microsoft sind, wie eine Oracle Datenbank, sind sie sehr hilfreich.

Man hat so zum Beispiel die Möglichkeit den DPM Server auf dem geschütztem Oracle Datenbankserver vorher einen Dump der  Datenbank machen zu lassen um diese dann auf File Ebene zu sichern und anschließend den Oracle DB Dienst wieder zu starten.

DPM führt die Scripte unter dem lokalen System Account aus. Es sollte daher sichergestellt werden , dass die Scripte Lese und Ausführungsrechte für den lokalen Administrator und das System haben.

Die Vorgehensweise ist relativ einfach:

  • Als Erstes öffnet man in einem Editor die ScriptingConfig.xml
    (%systemroot%\%Programme%\Microsoft Data Protection Manager\DPM\Scripting)
    Für jede „Data Source“ müssen die Script-Elemente wie folgt angepasst werden:
  • Für das „DataSourceName“ Attribut, muss das QuellVolume oder der Name angegeben werden.
  • Der „data source name“ für die verschiedenen Applikationen sollte in der folgenden Syntax angegeben werden  Instance\Database für SQL, Storage group name für Exchange Sicherungen, Logical Path\Component Name für Virtual Server, und SharePoint Farm\SQL Server Name\SQL Instance Name\SharePoint Config DB für Windows SharePoint Dienste.
  • In der PreBackupScript Zeile, muss der Pfad und Scriptname angegeben werden.
  • In der  PreBackupCommand Zeile, müssen die Kommandozeilenparameter die an das Script übergeben werden sollen eingetragen werden. (Komma getrennt)
  • entsprechend nun das gleiche für die PostBackup Script Zeilen vornehmen.
  • In der Zeile „TimeOut“ muss die Zeit in Minuten angegeben werden, wie lange DPM auf die Beendigung des Scriptes wartet bevor es als „Fehlgeschlagen“ deklariert wird.
  • Jetzt nur noch speichern und auf die nächste Sicherung warten 😉