Schon mal Gedanken zum Backup / Recovery Szenario von VMM gemacht? Nicht? Dann am besten ran an die Boardmittel und ein Backup der VMM Datenbank anlegen… Hyper-V funktioniert zwar auch ohne System Center, es würden aber dennoch einige wichtige Funktionen wegfallen, wenn VMM nicht mehr zur Verfügung stehen sollte.
Backup
Für den Backup einer VMM Datenbank kann ein PowerShell cmdlet von VMM eingesetzt werden. Backup-VMMServer verwendet TSQL Commands um ein Dump der SQL Datenbank zu erstellen. Eine Automatisierung lässt sich einfach mit einem PowerShell Script erreichen:
1 2 3 4 5 6 7 8 9 10 | # Filename: BackupVMMDatabase.ps1 # Description: Backs up the VMM database. # Specify the VMM server and domain. $VMMServer = Get-VMMServer -ComputerName "%MyVMMServer.fqdn.com%" # Specify the backup folder path and name. To back # up a database to a network share, specify the UNC # path, for example, \\SQLServer01\VMMBackups. Backup-VMMServer –Path "D:\VMMBackups" -VMMServer $VMMServer |
Das Backup der VMM Datenbank wird jeweils auf dem SQL Server angelegt: VirtualManagerDB-12132010-224302.bak. Der Ziel-Ordner (z.B. D:\VMMBackups) muss existieren, da das Script diesen nicht selber anlegen kann. Ein Backup könnte natürlich auch mit den SQL Tools erstellt werden…
Mit dem Windows Task Scheduler kann nun ein solches PowerShell Script auch regelmässig gestartet werden. Dazu muss durch den Scheduler einzig folgender Parameter aufgerufen werden: PS> PowerShell.exe -PSConsoleFile "C:\Program Files\Microsoft System Center Virtual Machine Manager 2008 R2\bin\cli.psc1" -Command ".'C:\MyScripts\BackupVMMDatabase.ps1'
”
Damit das Backup Script ausgeführt werden kann, muss allerdings zuvor die PowerShell Execution Policy angepasst werden:
- Unsignierte PowerShell Scripts:
PS> Set-ExecutionPolicy -ExecutionPolicy Unrestricted
- Signierte PowerShell Scripts:
PS> Set-ExecutionPolicy -ExecutionPolicy AllSigned
Recovery
Ein funktionierendes Backup Script ist allerdings nur die halbe Miete, zur Vollständigkeit braucht es noch weitere Schritte. Dazu wird das Tool “SCVMMRecover.exe” benötigt. Dies befindet sich im
VMM Programm Verzeichnis: “C:\Program Files\Microsoft System Center Virtual Machine Manager 2008 R2\bin”.
Das Recovery Tool verwendet auch TSQL Commands um den Restore der VMM Database durchzuführen. Der Restore Vorgang wird wie folgt auf dem VMM Server gestartet: C:\> SCVMMRecover -Path D:\VMMBackups\VirtualManagerDB-12132010-224302.bak –Confirm
Der Pfad des Backup Files bezieht sich auf den SQL Server.
Dies funktioniert allerdings nur, wenn der gleiche VMM Server (Hostname, SID, etc) verwendet wird. Erfolgt das Recovery auf ein neues System müssen die Hosts neu mit dem VMM Server assoziiert werden. Dazu können die Hosts mit dem Status “Access Denied” unter Administration ⇒ Managed Computers selektiert und mit “Reassociate” die Verbindung zwischen Server / Agent sozusagen wieder repariert werden.
Troubleshooting
Nach einem Restore kann es in manchen Fällen vorkommen, dass sich der VMM Server Service (VMMService) nicht mehr starten lässt. Dies passiert dann, wenn Datum / Uhrzeit in einem unterschiedlichen Format in die VMM Datenbank geschrieben wurden. Um dies zu korrigieren muss zunächst sichergestellt werden, dass beim neuen VMM Server die gleichen System Locales, z.B. English (United States), wie beim ursprünglichen VMM Server verwendet werden.
Bleibt das Problem bestehen, hilft nur noch ein die Korrektur in der VMM Datenbank (VirtualManagerDB) selbst. Um den Fehler zu beheben, muss in der Tabelle “tbl_VMM_GlobalSetting” eine Anpassung vorgenommen werden, indem der Inhalt des Feldes “LastSQMEngineRefreshTime” entfernt wird. Danach lässt sich der Service wieder starten.
Wichtig!! Änderungen an der VMM Datenbank erfolgen auch eigenes Risiko. Es sollte immer ein funktionierendes Backup existieren, respektive vor der Änderung erstellt werden.
Weitere Informationen
- Microsoft TechNet: Using the Set-ExecutionPolicy Cmdlet
- Microsoft TechNet: How to Back Up the VMM Database Using a Script
- Microsoft TechNet: Backing Up and Restoring the VMM Database
Shortlink: https://www.server-talk.eu/?p=2811