Porovnat verze

Klíč

  • Tento řádek byl přidán.
  • Tento řádek byl odstraněn.
  • Formátování bylo změněno.
Panel
bgColor#edf1f4
titleColor#fff
titleBGColor#0071b9
borderStylenone
titleShrnutí

Pro zálohování databází je vhodné používat

Panel
bgColor#edf1f4
titleColor#fff
titleBGColor#0071b9
borderStylenone
titleObsah

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
Horizontal_line
Color#b6d545

Section
Column
width10%

 

Column
Panel

Inicodemacro

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

Code Block
languagesql
titlePříklad
collapsetrue
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
Horizontal_line
Color#b6d545

Section
Column
width10%

 

 

Column
Panel

Inicodemacro

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

Code Block
languagevb
titlePříklad
collapsetrue
@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.