Резервное копирование баз в MS SQL

Для резервного копирования баз данных сервера MS SQL обычно используют SQL Server Agent.

Проблема появляется, когда есть только бесплатная версия MS SQL — Express.

В ней отсутствует SQL Server Agent. И хотя в SQL Server 2008 Express такая служба и есть, но она не запускается, а выдает ошибку SQLServerAgent could not be started (reason: Error creating a new session).
Странно, — оставлять службу, но не позволять ее запускать.

Эту проблему решает простой скрипт:

REM База данных
set DB=DB01
REM Путь до папки хранения бэкапов
set backup_path_local=d:\backup\
REM Путь до сетевого хранилища
set backup_path_remote=\\serverbackup\backup$\SQL_Database\
REM Запуск резервного копирования с помощью утилиты Sqlcmd
Sqlcmd -Q "BACKUP DATABASE [%DB%] TO  DISK = N'%backup_path_local%%computername%_%DB%.bak' WITH NOFORMAT, INIT,  NAME = N'%DB%-Full Database Backup', SKIP, NOREWIND, NOUNLOAD,  STATS = 10" -t 60000
REM Перемещение копии в сетевое хранилище
move %backup_path_local%%computername%_%DB%.bak %backup_path_remote%

Нужно только ввести собственные параметры в переменные DB, backup_path_local и backup_path_remote

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *