::Script zur einfachen Sicherung von RA-MICRO Datenbanken
::Das Script muss per Aufgabenplaner direkt auf dem SQL Server ausgeführt werden
::In
diesem Beispiel werden die Datenbanken auf das Laufwerk R: im
Verzeichnis sql_backup\datenbanken\%Tagesdatum% gesichert, inkl.
Verifizierung
::SQL Server Name ist hier SQL-Server\RAMICRO und kann/muss angepasst werden (Zeile 18)
::Im
ersten Schritt werden die Odrner r:\sqlbackup\datenbanken erstellt, die
vorhandenen RA* Datenbanken ausgelesen und in der Datei
r:\sql_backup\datenbanken.txt hinterlegt
::Zweiter Schritt ließt die
datenbanken.txt aus uns sichert die hinterlegten Datenbanken nach
r:\sqlbackup\Datenbanken\Tagesdatum
::Dateien (Backups) welche älter
als 10 Tage sind, werden gelöscht und dazu eine Logdatei unter
r:\sql_backup\sql_delete_files_log_%date%.txt erstellt. (Zeile 31)
::Logdateien älter 10 Tage werden auch gelöscht (Zeile 33)
SET DATUM=%date:~-4%%date:~-7,2%%date:~-10,2%
:: Definieren des Backuppfades, in diesem Beispiel R:\sqlbackup\Datenbanken\Tagesdatum
SET BACKUPDIR=r:\sqlbackup\Datenbanken\%DATE%
if not exist %BACKUPDIR% md %BACKUPDIR%
::Ermitteln der Datenbanken welche mit RA anfangen und auf dem
hinterlegten SQL Server (SQL-Server\RAMICRO) vorhanden sind – speichern
nach r:\sqlbackup\datenbanken.txt
sqlcmd -Q „SELECT name FROM sys.databases where name like ‚RA%%'“ -E -S SQL-Server\RAMICRO -b -o r:\sql_backup\datenbanken.txt
::Sichern der Datenbanken welche in der Datei datenbanken.txt hinterlegt sind
for /f %%i in (r:\sqlbackup\datenbanken.txt) DO (echo %%i|findstr /I /B „RA“>nul && call :BACKUP %%i)
exit
:BACKUP
sqlcmd -Q „BACKUP DATABASE %1 to DISK=’%BACKUPDIR%\%1.bak'“ -E -S VTSRV01\RAMICRO -b -o %BACKUPDIR%\%1output.txt
sqlcmd -Q „RESTORE VERIFYONLY from DISK=’%BACKUPDIR%\%1.bak'“ -o %BACKUPDIR%\%1verify.txt
::Löschen der Backups welche älter als 10 Tage sind (-10) (alle
Dateien in allen Ordnern werden gelöscht!) und erstellen einer Logdatei
unter R:\sql_backup
forfiles /p R:\sqlbackup\Datenbanken /s /m . /d -10 /c „cmd /c del /q /s @path“ >> „r:\sql_backup\sql_delete_files_log_%date%.txt“
::Löschen der Logdateien welche älter als 10 Tage sind
forfiles /p r:\sql_backup /s /m sql_delete_files_log_*.txt /d -10 /c „cmd /c del /q /s @path“