Microsoft SQL Server Express ist die kostenlose Edition von Microsofts SQL Server. Im Gegensatz zum kostenpflichtigen SQL Server, ist in der Express Edition nicht der SQL Agent vorhanden, mit welchem ein automatisieren von Backups einfach möglich ist.
Mit folgenden Script und der Windows Aufgabenplanung ist es aber ebenso problemlos möglich auch in der Express Edition die Backups zu automatisieren. Das Script automatisiert eine sieben Tage rückblickende Sicherung, durch Erstellung einer täglichen Sicherung der SQL Datenbank mit der Bezeichnung Montag.bak, Dienstag.bak, Mittwoch.bak, Donnerstag.bak, Freitag.bak, Samstag.bak und Sonntag.bak.
Als Ergebnis erhalten Sie eine 7-Tage rückblickende Datenbank Sicherung.
Jeden Montag wird die Backupdatei Montag.bak erstellt, welche am folgenden Montag (also eine Woche später) wieder überschrieben wird.
Jeden Dienstag wird die Backupdatei Dienstag.bak erstellt, welche am folgenden Dienstag (also eine Woche später) wieder überschrieben wird.
… das gleiche für Mi, Do, Fr, Sa …
Jeden Sonntag wird die Backupdatei Sonntag.bak erstellt, welche am folgenden Sonntag (also eine Woche später) wieder überschrieben wird.
… jetzt kommt wieder Montag und die Backupdatei Montag.bak wird wieder erstellt (die bereits eine Woche alte Montag.bak wird dabei überschrieben)…
usw. usw.
Die folgende Anleitung zeigt wie das geht:
Gehen Sie auf der SQL Server Maschine wie folgt vor:
1. Notieren Sie sich den Namen Ihres SQL Servers, sowie den Namen der Datenbank deren Sicherung automatisiert werden soll:
Hier im Beispiel ist dies: Servername: SBSW-1\SQLEXPRESS2017 Datenbank: SC504SQL
2. Legen Sie mit dem Windows Explorer ein Verzeichnis für Ihre Backups an. Hier als Beispiel: C:\SicherungsLaufwerk\SC-SQL-Backup\
3. Suchen Sie mit dem Windows Explorer den vollständigen Pfad zu der SQLCMD.EXE Hier im Beispiel: C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\130\Tools\Binn\SQLCMD.EXE
Nächster Schritt:
Kopieren Sie folgenden grau hinterlegten Text in den Notepad Editor, und ersetzen die rot hinterlegten Elemente durch Ihre Angaben.
BEGIN
DECLARE @Sicherungspfad varchar(255)
DECLARE @Tag varchar(50)
/****** Hier Pfad des Sicherungslaufwerks angeben ******/
SET @Sicherungspfad = 'C:\SicherungsLaufwerk\SC-SQL-Backup\'
SET @Tag = datename(weekday,getdate())
SET @Sicherungspfad = CONCAT(@Sicherungspfad, @Tag, '.bak')
/****** Datenbank sichern nach Sicherungspfad jeweils mit Wochentagsbezeichnung ******/
/****** HINWEIS: ggf. SC504SQL durch entsprechenden Datenbanknamen ersetzen ******/
BACKUP DATABASE [SC504SQL] TO DISK = @Sicherungspfad WITH NOFORMAT, INIT, NAME = N'SC504SQL-Vollständige Sicherung', SKIP, NOREWIND, NOUNLOAD, STATS = 10
END
Speichern Sie diese Textdatei jetzt als BackupScript.sql in Ihr Sicherungsverzeichnis ab. (Hier im Beispiel C:\SicherungsLaufwerk\SC-SQL-Backup\ )
Kopieren Sie folgenden grau hinterlegten Text in den Notepad Editor, und ersetzen die rot hinterlegten Elemente durch Ihre Angaben.
Speichern Sie diese Textdatei jetzt als BackupRoutineScript.bat in Ihr Sicherungsverzeichnis ab. (Hier im Beispiel C:\SicherungsLaufwerk\SC-SQL-Backup\ )
Zwischentest – klappt bis hier jetzt alles? Doppelklicken Sie jetzt auf BackupRoutineScript.bat , nach einer kurze Weile (kann je nach Datenbankgröße etwas dauern) sehen Sie dann je nach Wochentag die erste Sicherung.
Letzter Schritt – den Vorgang automatisieren:
Öffnen Sie die Windows Aufgabenplanung
Klicken Sie auf Aufgabe erstellen
Tragen Sie unter Allgemein diese Angaben ein
Tragen Sie unter Trigger diese Angaben ein
Tragen Sie unter Aktionen diese Angaben ein
Tragen Sie unter Bedingungen dieses ein
Tragen Sie unter Einstellungen dieses ein und bestätigen mit OK
Ihre Aufgabe ist jetzt angelegt und wird täglich ausgeführt.