Online-Datensicherung SQL Server mit Script

  • #1
R

RavensMetaller

Guest
Hallo zusammen,

Wer sich nen teuren Backupagent für SQL Server sparen will, kann auch gerne meine CMD-Datei ausprobieren:

Code:
@echo off
rem
rem Datensicherungsprozedur fuer die tse:nit Datenbank (SQL-Version 2000)
rem mit Reorganisationsprozedur
rem Version 1.5 (Windows 2000 Version)
rem
rem erstellt am 26.07.2001 von Sven Trautwein
rem copyright (c) 2001 Sven Trautwein
rem 
rem erweitert am 15.10.2001 - Dienste werden vor dem backup restartet, damit der Speicher bereinigt wird
rem erweitert am 09.04.2003 - Reorganisationsprozedur eingefügt
rem
rem angepasste Version für [KUNDENAME]
rem 

rem Bevor die Sicherung laeuft muessen im Enterprise Manager die Sicherungsmedien angepasst werden
rem (Enterprise Manager - Verwaltung - Sicherung - neues Sicherungsmedium)
rem
rem folgende Sicherungsmedien werden benoetigt
rem 
rem master_dump
rem db_10it_dump
rem db_10it_log_dump
rem db_10it_dump_reorg
rem db_10it_log_dump_reorg
rem

rem Setzen der Variablen
SET BACKUPDIR=C:\SQL_BACKUP
SET SAPWD=

if not exist %BACKUPDIR% md %BACKUPDIR%

rem Neustart der Microsoft SQL Server-Dienste, damit Speicher bereinigt wird.
net stop SQLSERVERAGENT
net stop MSSQLSERVER
net start MSSQLSERVER
net start SQLSERVERAGENT

rem überprüft, ob schon eine Sicherung der Datenbank existiert, wenn ja, wird diese umbenannt
if exist %BACKUPDIR%\lock_1 move /y %BACKUPDIR%\db_10it_dump.dat %BACKUPDIR%\db_10it_dump.sik
if exist %BACKUPDIR%\lock_2 move /y %BACKUPDIR%\master_dump.dat %BACKUPDIR%\master_dump.sik
if exist %BACKUPDIR%\lock_3 move /y %BACKUPDIR%\db_10it_log_dump.dat %BACKUPDIR%\db_10it_log_dump.sik
if exist %BACKUPDIR%\lock_11 move /y %BACKUPDIR%\db_10it_dump_reorg.dat %BACKUPDIR%\db_10it_dump_reorg.sik
if exist %BACKUPDIR%\lock_33 move /y %BACKUPDIR%\db_10it_log_dump_reorg.dat %BACKUPDIR%\db_10it_log_dump_reorg.sik

rem dumpen der 10_it Datenbank sowie der Master-Datenbank
isql -Usa -P%SAPWD% -QDump Database db_10it to db_10it_dump with nounload, init, noskip
isql -Usa -P%SAPWD% -QDump Database master to master_dump with nounload, init, noskip

rem dumpen des Transaktionsprotokolls vor der Reorganisation
isql -Usa -P%SAPWD% -Qsp_dboption db_10it,->trunc. log on chkpt.',false
isql -Usa -P%SAPWD% -Qdump TRANSACTION db_10it to db_10it_log_dump with nounload, init, noskip
isql -Usa -P%SAPWD% -Qsp_dboption db_10it,->trunc. log on chkpt.',true

rem damit immer zwei Kopien der Datenbanken existieren, wird hier eine Lock-Datei erstellt
if exist %BACKUPDIR%\db_10it_dump.dat echo db_10it_dump.dat > %BACKUPDIR%\lock_1
if exist %BACKUPDIR%\master_dump.dat echo master_dump.dat > %BACKUPDIR%\lock_2
if exist %BACKUPDIR%\db_10it_log_dump.dat echo db_10it_log_dump.dat > %BACKUPDIR%\lock_3

rem Reorganisationsprozedur der Original-Datenbank
isql -Usa -P%SAPWD% -Qsp_dboption db_10it,->read only',true
isql -Usa -P%SAPWD% -Qsp_dboption db_10it,->single user',true
isql -Usa -P%SAPWD% -QDBCC NewAlloc (db_10it)
isql -Usa -P%SAPWD% -QDBCC CheckCatalog (db_10it)
isql -Usa -P%SAPWD% -QDBCC CheckDB (db_10it)
isql -Usa -P%SAPWD% -Qsp_dboption db_10it,->read only',false
isql -Usa -P%SAPWD% -Qsp_dboption db_10it,->single user',false

rem dumpen der reorganisierten 10_it Datenbank
isql -Usa -P%SAPWD% -QDump Database db_10it to db_10it_dump_reorg with nounload, init, noskip

rem dumpen des Transaktionsprotokolls nach der Reorganisation
isql -Usa -P%SAPWD% -Qsp_dboption db_10it,->trunc. log on chkpt.',false
isql -Usa -P%SAPWD% -Qdump TRANSACTION db_10it to db_10it_log_dump_reorg with nounload, init, noskip
isql -Usa -P%SAPWD% -Qsp_dboption db_10it,->trunc. log on chkpt.',true

rem damit immer zwei Kopien der reorganisierten Datenbanken existieren, wird hier eine Lock-Datei erstellt
if exist %BACKUPDIR%\db_10it_dump_reorg.dat echo db_10it_dump_reorg.dat > %BACKUPDIR%\lock_11
if exist %BACKUPDIR%\db_10it_log_dump_reorg.dat echo db_10it_log_dump_reorg.dat > %BACKUPDIR%\lock_33

exit

Ich denke das Script ist selbsterklärend und bietet genügend Sicherheit, da ständig mindestens zwei Datensätze vorgehalten werden. Natürlich erspart dieses Script NICHT die Sicherung auf Band oder CD, da die Backup's lokal auf dem Server liegen bleiben.
Bitte die Variablen SAPWD, BACKUPDIR und natürlich die Namen der Datenbanken anpassen.

Gruß
Sven
 
Thema:

Online-Datensicherung SQL Server mit Script

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.840
Beiträge
707.965
Mitglieder
51.494
Neuestes Mitglied
Flensburg45
Oben