Backupautomatisierung auf Windows Servern – MS SQL Server Sicherung

sql_server_2008_logo_ok-300x150

Dieser Artikel ist Teil einer Serie:

  1. Einleitung
  2. Dateisicherung
  3. MS SQL Server Sicherung
  4. MySQL Sicherung
  5. Backup Komprimierung
  6. Backup-Transfer
  7. Zeitsteuerung

Nachdem wir es nun geschafft haben, zu sichernde Dateien an einem Ort abzulegen, in dem sie nicht in Verwendung sind (und wir damit weitere Schritte unternehmen können), wird es Zeit, die Sicherung um Datenbanken zu ergänzen, die sich häufig auf Serversystemen finden. Es gibt verschiedenste Datenbanksysteme, die alle ihre eigenen Sicherungsoptionen bieten (jedenfalls im Normalfall). Diese Artikelserie geht auf zwei solcher Systeme ein, die sich wohl am Häufigsten auf Serversystem wiederfinden werden: Microsofts SQL Server sowie das Open-Source-System MySQL. Die Vorgehensweise für andere Datenbanksysteme dürfte ziemlich analog dazu verlaufen, die speziellen Scripte wird man an die Möglichkeiten des jeweiligen Datenbanksystems anpassen müssen.

Um den Prozess der Sicherung einer oder mehrere MS SQL Server Datenbanken zu vereinfachen, ist es hilfreich, den ausführenden Backup-Benutzer in einer Gruppe zu haben, die auf die zu sichernden Datenbanken Backup-Rechte besitzt. Das macht die Scripte im Endeffekt kürzer, es ginge aber auch anders bspw. mit einem speziellen SQL Server Nutzer und dem Datenbankserver im “Gemischten Authentifizierungsmodus”. Das gescriptete Backup wird im Wesentlichen aus zwei Dateien bestehen: Einem SQL Script, das die notwendigen Kommandos auf Datenbankserverseite enthält sowie einem Batch-Script, dass die Ausführung des SQL Scripts am Datenbankserver reguliert.

Die Sicherung einer Datenbank per SQL Kommando ist kurz und bündig notiert. Dabei muss im Endeffekt nur ein Dateiname vorgesehen sein sowie der Name der zu sichernden Datenbank. Das folgende Script deklariert zunächst eine String-Variable, in der später der Dateiname stehen wird. Das ist hilfreich, wenn man mit dem zu schreibenden SQL Script mehr als eine Datenbank sichern will.

declare @file nvarchar(255)

SELECT @file = N'{TARGETPATH}' + REPLACE(convert(varchar,GEtDate(),102),'.','_') +  N'_{FILENAME}.bak'
BACKUP DATABASE [{DATABASENAME}] TO DISK = @file WITH INIT

In dem Script befinden sich ein paar Platzhalter, die ich in geschweifte Klammern gesetzt habe, diese müsstet ihr durch eure eigenen speziellen Werte ersetzen:

  • {TARGETPATH} – der Pfad wohin die Sicherung erfolgen soll
  • {FILENAME} – Dateiname der Sicherungdatei
  • {DATABASENAME} – der Name der zu sichernden Datenbank

Will man nun mehrere Datenbanken des gleichen Servers bzw. der gleichen Instanz sichern, muss man lediglich die Zeilen 3+4 des Scripts duplizieren und die Platzhalter entsprechend ersetzen. Eine kleine Anmerkung für die schnell drüberlesenden: Der endgültige Dateiname der Sicherung wird das Datum der Sicherung im Format JJJJ_MM_TT vor dem gewählten Dateinamen enthalten. So können mit Hilfe des Scripts mehrere Sicherungen für verschiedene Tage erzeugt werden, ohne dass diese überschrieben werden.

Nun fehlt nur noch das Batch-Script, welches die Ausführung der eben gescripteten SQL Kommandos übernimmt.

sqlcmd.exe -S {SERVER/INSTANCE} -E -b -i {BACKUPSCRIPT}.sql -o {LOGFILENAME}.log

forfiles /p "{TARGETPATH}" /m *.bak /c "cmd /c if @isdir==FALSE echo del @file & del @file" /d -8

Auch hier gibt es wieder den einen oder anderen Platzhalter im Script, die an eure Maschine angepasst werden müssten:

  •  {TARGETPATH} – der Pfad wohin die Sicherung erfolgen soll (siehe oben)
  • {SERVER/INSTANCE} – der Server und seine Adressierung bspw. 127.0.0.1\SQLEXPRESS
  • {BACKUPSCRIPT} – der Dateiname des SQL Scripts von oben
  • {LOGFILENAME} – Dateiname der zu schreibenden Logdatei

Während das erste Kommando des Batch-Scripts noch einleuchtend erscheinen dürfte, ist die nachfolgende Zeile nicht unbedingt bekannt. Diese Zeile sorgt im Endeffekt dafür, dass nur Sicherungsdateien unserer MS SQL Datenbanksicherung behalten werden, die nicht älter als 7 Tage sind. Sehr hilfreich, um im Backupverzeichnis keinen Wildwuchs zu produzieren.

Damit ist die Sicherung von Microsoft SQL Server Datenbanken gescriptet. Der nächste Teil wird sich mit der Sicherung von MySQL Datenbanken beschäftigen.

GD Star Rating
loading...
Backupautomatisierung auf Windows Servern - MS SQL Server Sicherung, 5.0 out of 5 based on 1 rating

Ähnliche Einträge:

2 Antworten auf “Backupautomatisierung auf Windows Servern – MS SQL Server Sicherung

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *


*

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>