Eine 7-Tage rückblickende Datenbank Sicherung mit SQL Express einrichten

SQL Express Datenbank automatisch sichern – 7-Tage rückblickend

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.
 
"C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\130\Tools\Binn\SQLCMD.EXE" ^
-i "C:\SicherungsLaufwerk\SC-SQL-Backup\BackupScript.sql" ^
-E -S SBSW-1\SQLEXPRESS2017 –b
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.