Přejít na konec metadat
Přejít na začátek metadat
Shrnutí

Pre zálohovanie databáz je vhodné používať

Obsah

Záloha na kliknutie

Aby bolo zálohovanie databáz čo najjednoduchšie, môžete vyvolať proces zálohy do súboru spustením dávkového BAT súboru, ktorý vyvolá štandardnú zálohu databáze MSSQL podľa nastavených parametrov. Nižšie nájdete vzor pre vytváranie záloh s časovou pečiatkou k okamihu spustenia (s každým spustením pribudne v cieľovom adresári nový súbor).

SQL príkaz k vytvoreniu záloh

SET NOCOUNT ON DECLARE @Time nvarchar(19), @Path nvarchar(400), @NameMain nvarchar(100), @NameFile nvarchar(100), @PathMain nvarchar(1000), @PathFile nvarchar(1000)

--upraviť cestu podľa skutočnej cesty cieľa zálohy na serveri

SET @Path = '#CESTA_K_CILOVEMU_ADRESARI#'

--'C:\backup', musí existovať --možno zmeniť východzie názvy DB podľa skutočnosti

SET @NameMain = 'ISENVITA'

SET @NameFile = 'ISENVITA_Files'

--ziskanie časovej pečiatky

SET @Time = REPLACE(REPLACE(CONVERT(nvarchar(19), GETDATE(), 120),':','-'),' ','_')

--zostavenie cesty k záložnému súboru

SET @PathMain = @Path+'\'+@NameMain+'_'+@Time+'.bak'

SET @PathFile = @Path+'\'+@NameFile+'_'+@Time+'.bak'

--vytvorenie zálohy print '==================='

print @Time

print 'START backup: '+@PathMain

BACKUP DATABASE @NameMain TO DISK = @PathMain WITH INIT

print 'START backup: '+@PathFile

BACKUP DATABASE @NameFile TO DISK = @PathFile WITH INIT

Příklad
SET NOCOUNT ON  
DECLARE @Time nvarchar(19), @Path nvarchar(400), @NameMain nvarchar(100), @NameFile nvarchar(100), @PathMain nvarchar(1000), @PathFile nvarchar(1000)
--upraviť cestu podľa skutočnej cesty zálohy na serveri                                                     
SET @Path = 'C:\backup'                    
--možno zmeniť východzie názvy DB podľa skutočnosti        
SET @NameMain = 'ISENVITA'
SET @NameFile = 'ISENVITA_Files'
--získanie časovej pečiatky
SET @Time = REPLACE(REPLACE(CONVERT(nvarchar(19), GETDATE(), 120),':','-'),' ','_')
--zostavenie cesty k záložnému súboru
SET @PathMain = @Path+'\'+@NameMain+'_'+@Time+'.bak'
SET @PathFile = @Path+'\'+@NameFile+'_'+@Time+'.bak'
--vytvorenie zálohy
print '==================='
print @Time
print 'START backup: '+@PathMain
BACKUP DATABASE @NameMain TO DISK = @PathMain WITH INIT
print 'START backup: '+@PathFile
BACKUP DATABASE @NameFile TO DISK = @PathFile WITH INIT   

 

Dávkový súbor .BAT pre spustenie SQL skriptu

@echo off
sqlcmd.exe -S #NAZEVSERVERU#\#NAZEVINSTANCE# -i #CESTA_K_ZALOHOVACIMU_SQL#.sql >> "#CESTA_K_LOGOVACIMU_SOUBORU#.log"

Příklad
@echo off
sqlcmd.exe -S .\SQLEXPRESS -i BackupENVITA_DB.sql >> ".\BackupENVITA_DB.log"

Vzory k stiahnutiu: 

V tomto archíve nájdete oba vzorové súbory: zalohovaciSQLaBAT.zip. Pred spustením je potrebné upraviť oba súbory podľa vášho serveru (cesty, názvy).

 

Tipy

Presunutie hotových záloh

Rozšírte dávkový súbor BAT o príkaz xcopy tak, že obsah adresára so záložnými súbormi sa prenesie tiež do iného sieťového umiestnenia, mimo databázový server (napr NAS).

Automatické spustenie zálohy

Využite systémový plánovač úloh k vytvoreniu automatického spustenia denných záloh. Akciou danej úlohy bude spustenie pripraveného BAT súboru.