Скрипт создает backup'ы баз данных сервера MS SQL. Базы перечислены в файле db_list.txt.
Копии сразу делаются по сети
rem В этот файл будем собирать скрипт для каждой базы данных
set script_name=C:\BACUP\CMD\ms_backup.sql
rem удаляем предыдущий файл
IF EXIST "%script_name%" (del "%script_name%")
rem монтируем диск
net use Z: \\10.0.0.10\1c-ispb /user:пользователь "пароль"
echo USE master ; >> %script_name%
rem -- подключаем сетевой диск
echo EXEC xp_cmdshell 'net use Z: \\10.0.0.10\1c-ispb /user:пользователь "пароль"' ; >>
%script_name%
таким образом можно подключить сетевой диск в MS SQL, по умолчанию возможность выполнять команды ОС отключена. Для включения надо выполнить следующий скрипт:
GO
-- To update the currently configured value for advanced options.
RECONFIGURE
GO
-- To enable the feature.
EXEC sp_configure 'xp_cmdshell', 1
GO
-- To update the currently configured value for this feature.
RECONFIGURE
GO
rem ЦИКЛ БЕРЕМ ИМЕНА БАЗ ИЗ ФАЙЛА
for /F "eol= tokens=1 delims=," %%i in (C:\BACUP\CMD\db_list.txt) do (
rem генерируем имя файла
set FileName=%date:~0,2%_%date:~3,2%_%date:~6,4%
rem пишем в файл команду для монтирования устройства
echo EXEC sp_addumpdevice 'disk', 'Z1', '\\10.0.0.10\1c-ispb\%%i_%FileName%.bak' ; >> %script_name%
rem пишем команду BACKUP
echo BACKUP DATABASE [%%i] TO [Z1] WITH NOFORMAT, NOINIT, NAME = N'backup', SKIP, NOREWIND, NOUNLOAD,STATS = 10 ; >> %script_name%
rem удаляем устройство
echo EXEC sp_dropdevice 'Z1'; >> %script_name%
) rem КОНЕЦ ЦИКЛА
rem выполняем скрипт, используя команду Sqlcmd с ключами:
Sqlcmd
[-U идентификатор_входа]
[-P пароль]
[-d использовать_имя_БД]
[-c конец_команды]
[-i входной_файл]
Sqlcmd -U пользователь -P пароль -i %script_name%
rem unmount
rem net use Z: /delete /yes
-- проверка резервной копии
--RESTORE VERIFYONLY FROM DISK= '<Backup_location>' WITH CHECKSUM
Копии сразу делаются по сети
rem В этот файл будем собирать скрипт для каждой базы данных
set script_name=C:\BACUP\CMD\ms_backup.sql
rem удаляем предыдущий файл
IF EXIST "%script_name%" (del "%script_name%")
rem монтируем диск
net use Z: \\10.0.0.10\1c-ispb /user:пользователь "пароль"
echo USE master ; >> %script_name%
rem -- подключаем сетевой диск
echo EXEC xp_cmdshell 'net use Z: \\10.0.0.10\1c-ispb /user:пользователь "пароль"' ; >>
%script_name%
таким образом можно подключить сетевой диск в MS SQL, по умолчанию возможность выполнять команды ОС отключена. Для включения надо выполнить следующий скрипт:
-- To allow advanced options to be changed.
EXEC sp_configure 'show advanced options', 1GO
-- To update the currently configured value for advanced options.
RECONFIGURE
GO
-- To enable the feature.
EXEC sp_configure 'xp_cmdshell', 1
GO
-- To update the currently configured value for this feature.
RECONFIGURE
GO
rem ЦИКЛ БЕРЕМ ИМЕНА БАЗ ИЗ ФАЙЛА
for /F "eol= tokens=1 delims=," %%i in (C:\BACUP\CMD\db_list.txt) do (
rem генерируем имя файла
set FileName=%date:~0,2%_%date:~3,2%_%date:~6,4%
rem пишем в файл команду для монтирования устройства
echo EXEC sp_addumpdevice 'disk', 'Z1', '\\10.0.0.10\1c-ispb\%%i_%FileName%.bak' ; >> %script_name%
rem пишем команду BACKUP
echo BACKUP DATABASE [%%i] TO [Z1] WITH NOFORMAT, NOINIT, NAME = N'backup', SKIP, NOREWIND, NOUNLOAD,STATS = 10 ; >> %script_name%
rem удаляем устройство
echo EXEC sp_dropdevice 'Z1'; >> %script_name%
) rem КОНЕЦ ЦИКЛА
rem выполняем скрипт, используя команду Sqlcmd с ключами:
Sqlcmd
[-U идентификатор_входа]
[-P пароль]
[-d использовать_имя_БД]
[-c конец_команды]
[-i входной_файл]
Sqlcmd -U пользователь -P пароль -i %script_name%
rem unmount
rem net use Z: /delete /yes
-- проверка резервной копии
--RESTORE VERIFYONLY FROM DISK= '<Backup_location>' WITH CHECKSUM