Для резервного копирования баз данных сервера 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
