Backup bazy MSSQL Express – komenda zewnętrzna, harmonogram zadań

Artur Protasewicz

Artykuł w budowie

serwer_i_baza.png tabela_backupset.png

--zmienna do przechowania nazwy pliku
--do którego wykonujemy backup
DECLARE @filename VARCHAR(100)
 
--ustawienie nazwy pliku
--z zamianą dwukropków na kropki
--przykładowa utworzona nazwa:
--Sprzedaz_2014-datetime-2014-11-16 07.12.38.bak
SET @filename = N'C:\ sql_backups\ Sprzedaz_2014-datetime-' 
    + SUBSTRING(CONVERT(VARCHAR(19), GETDATE(), 120), 1, 13) + '.' 
    + SUBSTRING(CONVERT(VARCHAR(19), GETDATE(), 120), 15, 2) + '.' 
    + SUBSTRING(CONVERT(VARCHAR(19), GETDATE(), 120), 18, 2) + '.bak'
 
--polecenie backupu bazy danych Sprzedaz_2014
--do pliku @filename
BACKUP DATABASE Sprzedaz_2014
    TO DISK = @filename 
    WITH NOFORMAT, INIT, 
    NAME = N'Sprzedaz_2014-full database backup', 
    SKIP, 
    NOREWIND, 
    NOUNLOAD, 
    STATS = 10
 
--deklaracja zmiennej @bak_set_id
DECLARE @bak_set_id AS INT
 
--ustawienie wartości zmiennej @bak_set_id
--polecenie SELECT pobiera ostatni wpis 
--z systemowej bazy danych msdb z tabeli backupset
--position i database_name są polami tej tabeli
SELECT @bak_set_id = POSITION 
    FROM msdb..backupset 
    WHERE database_name=N'Sprzedaz_2014' AND backup_set_id = 
    (
        SELECT MAX(backup_set_id)
            FROM msdb..backupset 
            WHERE database_name=N'Sprzedaz_2014' 
    )
 
--jeżeli wartość zmiennej @bak_set_id jest null 
--oznacza to niepowodzenie backupu
IF @bak_set_id IS NULL
BEGIN 
    RAISERROR(N'Niepowodzenie weryfikacji backupu ''Sprzedaz_2014''', 16, 1)
END
 
--weryfikacja możliwości odtworzenia bazy z pliku
RESTORE VERIFYONLY 
    FROM DISK = @filename 
    WITH FILE = @bak_set_id, 
    NOUNLOAD, 
    NOREWIND

przebieg_backupu.png

Polecenie w pliku wsadowym Backup_Command.bat

"C:\Program Files\Microsoft SQL Server\90\Tools\Binn\SQLCMD.EXE" –S AP-HOST\SQLEXPRESS -i "C:\SQL_Backups\Bak_Sprzedaz_2014.sql"

Utworzenie zadania w harmonogramie

harmonogram_zadan.png

wyzwalacz.png

akcja.png

Składnia funkcji SQL Server CONVERT() do wyświetlania daty i czasu

CONVERT(VARCHAR(dlugosc), GETDATE(), kod_ formatu)

Oznaczenia rezultatu w tabeli

yy, yyyy | rok
mmm, mm | miesiące
dd | dni
hh | godziny
nn | minuty
ss | sekundy
zzz | milisekundy
AM, PM | przed południem, po południu

Formaty w zależności od parametru kod_formatu

Format yy Format yyyy Rezultat
0 lub 100 mmm dd yyyy hh:nn AM (lub PM)
1 101 mm/dd/yy
2 102 yy.mm.dd
3 103 dd/mm/yy
4 104 dd.mm.yy
5 105 dd-mm-yy
6 106 dd mmm yy
7 107 mmm dd, yy
8 108 hh:mm:ss
9 lub 109 mmm dd yyyy hh:nn:ss:zzz AM (lub PM)
10 110 mm-dd-yy
11 111 yy/mm/dd
12 112 yymmdd
13 or 113 dd mmm yyyy hh:nn:ss:zzz (24h)
14 114 hh:nn:ss:zzz (24h)
20 lub 120 yyyy-mm-dd hh:nn:ss (24h)
21 lub 121 yyyy-mm-dd hh:nn:ss.zzz (24h)
126 yyyy-mm-ddThh:nn:ss.zzz (bez spacji)
130 dd mmm yyyy hh:nn:ss:zzz AM
131 dd/mm/yy hh:nn:ss:zzz AM

http://www.w3schools.com/sql/func_convert.asp

0 komentarzy