Eu escrevi um script universal para bancos de dados selecionados de backup do MS Sql Server Express. Loops de script através de uma matriz de bancos de dados e gera .bak separado para cada banco de dados. O nome do arquivo de backup começa com o nome do banco de dados e termina com hora e data. Os eventos são registrados no arquivo log.log, incluindo detalhes da tarefa de backup do banco de dados, portanto, os backups não existentes são sobrescritos. Também alguns pequenos detalhes, como o horário de início do backup.
Nesse script, você precisa definir a matriz de bancos de dados que deseja fazer backup, sa user / password e SQL Server e instance. Após todas essas modificações, é necessário invocar o arquivo de lote do agendador de tarefas.
O código do script:
@echo off
::databases array
set baza[0]=DATABSE_1
set baza[1]=DATABSE_2
::some of variables
set var=%usersa%
set var=%passsa%
set var=%instance%
set "x=0"
set hr=%TIME: =0%
set hr=%hr:~0,2%
set min=%TIME:~3,2%
set sec=%TIME:~6,2%
set czas=%hr%%min%%sec%
::database access data and instance
set usersa=sa
set passsa=sa
set instance=HOSTSERVER\SqlServerName
set backupath=E:\SQL_BACKUP\
echo Backup Start %date%_%czas%>>log.log
echo.>>log.log%%echo.>>log.log%%echo.>>log.log
:loop
if defined baza[%x%] (
call osql -S %instance% -U %usersa% -P %passsa% -d %%baza[%x%]%% -Q "BACKUP DATABASE %%baza[%x%]%% TO DISK = '%backupath%%%baza[%x%]%%_%date%_%czas%.bak'" >>log.log
set /a "x+=1"
GOTO :loop
)
echo.>>log.log%%echo.>>log.log%%echo.>>log.log