Po własnych modyfikacjach udostępniam plik skrypt do backupu bazy serwera MS SQL oraz automatycznej kompresji tego backupu wraz z ustawieniem ilości przechowywanych dni plików z backupem (w pliku 60 dni).
Wystarczy utworzyć plik, ustawić zadanie do harmonogramu zadań (task scheduler) i kopia zacznie się tworzyć o wybranej przez nas godzinie.
Nazwa pliku tworzona jest z {nazwy bazy danych} + '_’ + {znacznik czasu} + ’.’ + {ustawione rozszerzenie – w skrypcie bak} + ’.7z’

Proszę zwrócić uwagę na ustawienie odpowiednich:

  1. Ścieżki do katalogu z backupem BACKUPPATH
  2. Nazwy bazy danych jaką chcemy archiwizować DATABASE
  3. Ścieżki do programu archiwizującego ZIPPATH
  4. Adresu sieciowego lub nazwy serwera SERVERNAME
  5. Rozszerzenia pliku backupu przed kompresją przez program archiwizujący EXTENSION
echo off

:: DANE
set BACKUPPATH=D:\BackupMSSQL
set DATABASE=platnik
set SERVERNAME=localhost
:: problem z godziną bez zera wiodacego
:: set DATESTAMP=%DATE%_%TIME:~0,2%-%TIME:~3,2%
for /f "delims=" %%a in ('wmic OS Get localdatetime ^| find "."') do set wmidatetime=%%a
set DATESTAMP=%wmidatetime:~0,14%
:: data rrrr-mm-dd, time gg:mm:ss,ms
set FILENAME=%BACKUPPATH%\%DATABASE%_%DATESTAMP%.bak
set ZIPPATH=C:\Program Files (x86)\7-Zip
::Rozszerzenie pliku
set EXTENSION=bak


:: -----------Backup bazy danych----------
sqlcmd -E -S %SERVERNAME% -d master -Q "BACKUP DATABASE [%DATABASE%] TO DISK = N'%FILENAME%' WITH INIT , NOUNLOAD , NAME = N'%DATABASE% backup', NOSKIP , STATS = 10, NOFORMAT"

:: -----------Pakowanie plików i usuwanie-----------
for /f %%F in ('dir %BACKUPPATH%\*.%EXTENSION% /b') do echo %%F & del %BACKUPPATH%\%%F.7z & "%ZIPPATH%\7z.exe" a %BACKUPPATH%\%%F.7z %BACKUPPATH%\%%F & del %BACKUPPATH%\%%F


::-----------Usuwanie starych plików-----------
:: Wyszukiwanie po dacie (usuwa starsze niż 30 dni)
forfiles /p %BACKUPPATH% /d -30 /c "cmd /c del @path"

:: usuwa najstarsze pliki (pozostawia 60 najmłodszych backupów)
for /f "skip=60 delims=" %%F in ('dir %BACKUPPATH%\*.* /b/o-d') do del %BACKUPPATH%\%%F

Plik ten napisany został przez pana Tomasza Zdziech