Automatisches Backup einer SQL Server 2008 Express Datenbank
Problem:
Ein Problem der SQL Express Varianten ist, dass man mit Bordmitteln zunächst einmal kein automatisches Backup erstellen lassen kann, da der gesamte Wartungsbereich, den man aus „echten“ SQL-Servern kennt, in der Express Variante fehlt.
Lösung:
Benötigte Software:
Microsoft® SQL Server® 2008 Management Studio Express
Aufgabenplanung (Systemsteuerung -> Verwaltung -> Aufgabenplanung) oder über START –> taskschd.msc
Vorgehensweise:
Zuerst startet man das SQL Server Management Studio Express und erstellt eine manuelle Sicherung über „Rechtsklick auf die Datenbank“ -> Tasks -> Sichern.
Dort werden alle notwendigen Einstellungen angepasst, wie z.B. das Sicherungsziel.
Das Backup wird aber noch NICHT gestartet.
Im nächsten Schritt klickt man nun auf „Skript“ (oben in der Mitte), um sich das SQL-Skript zu diesem Sicherungsjob anzeigen zu lassen.
Das sieht dann etwa so aus:
SQLQuery-WFDB.sql
BACKUP DATABASE [WFDB] TO DISK = N’D:\Backup\MSSQL-Express\WFDB.bak‘ WITH NOFORMAT, NOINIT, NAME = N’WFDB-Vollständig Datenbank Sichern‘, SKIP, NOREWIND, NOUNLOAD, STATS = 10
GO
Dieses Skript muss nun an einem gut erreichbaren Ort abgespeichert werden.
Als Test kann man das Backup einmal laufen lassen.
Vorsicht: Das Backup Ziel muss für den Benutzer, der den SQL-Dienst ausführt, beschreibbar sein. Das kann man prüfen, indem man sich in der Dienste-Ansicht auf dem Karteireiter ‚Anmelden‘ anzeigen läßt, unter welchem Acount der SQLEXPRESS ausgeführt wird. Bei mir war es das Konto ‚Netzwerkdienst‘.
Diesem Konto muss man auf das Backup-Ziel noch Schreibrechte eintragen.
Jetzt öffnet man die Aufgabenplanung und fügt eine neue ‚einfache Aufgabe‘ dazu.
Aktion: „Programmstarten“
Programm/Skript: „C:\Program Files\Microsoft SQL Server\100\Tools\Binn\SQLCMD.exe“
Argumente hinzufügen (optimal): -S SERVERNAME\SQLEXPRESS -i „D:\Scripte\SQLQuery-WFDB.sql“
Jetzt nur noch einstellen, wann der Task laufen soll und schon ist man fertig.
Sollte das Backup-Ziel augf einem Netztlaufwerk liegen, sollte man einen Domänen-Benutzer für die Ausführung des SQL-Dienstes verwenden.