Пакетный файл Windows для резервного копирования баз данных SQL Server - PullRequest
0 голосов
/ 22 октября 2019

Я пытаюсь запустить скрипт, похожий на этот ( пример ), но он работает неправильно. Файл txt успешно сгенерирован, с именами баз данных строка за строкой, но при резервном копировании баз данных создается один большой файл вместо одного файла для каждой базы данных. В моем TXT содержится 30 имен, а также 30 баз данных.

@echo off

:: Update variable date environment
set today=%date:~0,2%-%date:~3,2%-%date:~6,4%

:: Set folder root of backup files to send to network and to GDRIVE
set BACKUPPATHROOT=%systemdrive%\TMPSQL

:: Create local folder from date
mkdir %BACKUPPATHROOT%\%today% >nul 2>&1

:: Set local folder to save backup files
set BACKUPPATH=%BACKUPPATHROOT%\%today%

:: Set SQL Server location
set SERVERNAME=localhost

:: Get password of backup file compress
set PSWDZIP=123456

:: Build a list of databases to backup
set DBList=%BACKUPPATH%\SQLDBList.txt
SqlCmd -E -S %SERVERNAME% -h-1 -W -Q "SET NoCount ON; SELECT Name FROM sys.databases WHERE [Name] NOT IN ('master','model','msdb','tempdb')" > "%DBList%"

:: Backing UP
For /f "tokens=*" %%i in (%DBList%) do (
    set BACKUPFILENAME=%BACKUPPATH%\%%i.bak
    echo Fazendo backup do banco de dados %%i
    sqlcmd -E -S %SERVERNAME% -Q "BACKUP DATABASE [%%i] TO DISK=N'%BACKUPFILENAME%' WITH NOFORMAT, NOINIT, NOREWIND, NOUNLOAD"
    7za a -r -tzip -bso0 -bsp0 -sdel -p%PSWDZIP% %BACKUPFILENAME%.zip %BACKUPFILENAME%
    echo.
)

Может кто-нибудь помочь мне определить ошибку?

Первые строки в текстовом файле:

MYDBTEST
MYDBTEST_ADM
DBTEST
DBTEST_ADM
MYDBZBX
MYDBZBX_OLD

PrintScreen

...