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

Záloha na kliknutí

Aby bylo zálohování databáze co nejsnazší, můžete vyvolat proces zálohy do souboru spuštěním dávkového BAT souboru, který vyvolá standardní zálohu databáze MSSQL dle nastavených parametrů. Níže naleznete vzor pro vytváření záloh s časovým razítkem k okamžiku spuštění (s každým spuštěním přibude v cílovém adresáři nový soubor).

SQL příkaz k provedení záloh

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

--upravit cestu dle skutecne cesty cile zalohy na serveru

SET @Path = '#CESTA_K_CILOVEMU_ADRESARI#'

--'C:\backup', musi existovat --mozno zmenit vychozi nazvy DB dle skutecnosti

SET @NameMain = 'ISENVITA'

SET @NameFile = 'ISENVITA_Files'

--ziskani cesoveho razitka

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

--sestaveni cesty k zaloznimu souboru

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

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

--provedeni zalohy 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)
--upravit cestu dle skutecne cesty zalohy na serveru                                                     
SET @Path = 'C:\backup'                    
--mozno zmenit vychozi nazvy DB dle skutecnosti         
SET @NameMain = 'ISENVITA'
SET @NameFile = 'ISENVITA_Files'
--ziskani cesoveho razitka
SET @Time = REPLACE(REPLACE(CONVERT(nvarchar(19), GETDATE(), 120),':','-'),' ','_')
--sestaveni cesty k zaloznimu souboru
SET @PathMain = @Path+'\'+@NameMain+'_'+@Time+'.bak'
SET @PathFile = @Path+'\'+@NameFile+'_'+@Time+'.bak'
--provedeni zalohy
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ý soubor .BAT pro spuštění 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 ke stažení: 

V tomto archivu naleznete oba vzorové soubory: zalohovaciSQLaBAT.zip. Před spuštěním je nutné upravit oba soubory podle vašeho serveru (cesty, názvy).

 

Tipy

Přesunutí hotových záloh

Rozšiřte dávkový soubor BAT o příkaz xcopy tak, že obsah adresáře se záložními soubory přenese také do jiného síťového umístění, mimo databázový server (např. NAS).

Automatické spouštění zálohy

Využijte systémový plánovač úloh k vytvoření automatického spouštění denních záloh. Akcí dané úlohy bude spuštění připraveného BAT souboru.