Microsoft предоставляет нам бесплатный сервер SQL Server (например, редакций 2005 или 2008). Однако сервер этот, конечно, имеет некоторые ограничения. Среди них - отсутствие встроенного в версии Standard и выше агента (SQL Server Agent), который выполняет запланированные задания по расписанию.
И как теперь создавать автоматические задачи?
Впрочем, не все потеряно. Здесь я покажу - как обойти эту помеху.
1) Создаем файл SQL с набором T-SQL команд для выполнения.
Вот пример файла для резервного копирования 2х баз данных на жесткий диск (это только пример):
mybackup.sql
BACKUP DATABASE [mybase1] TO DISK = N'c:\sqlbackup\mybase1.bak' WITH INIT, NOUNLOAD, NAME = N'MyBase1 Backup', NOSKIP, STATS = 10, NOFORMAT;
BACKUP DATABASE [mybase2] TO DISK = N'c:\sqlbackup\mybase2.bak' WITH INIT, NOUNLOAD, NAME = N'MyBase2 Backup', NOSKIP, STATS = 10, NOFORMAT;
Естественно, помимо резервного копирования можно использовать любые другие команды Transact-SQL.
2) Теперь создаем задачу в планировщике заданий Windows.
Т.е. да, открываем обычный планировщик Windows (через который можно создавать обычные задачи по расписанию, например, запуск каких-нибудь программ).
Windows 2003:
Пуск -> Панель управления -> Назначенные заданияWindows 2008:
Пуск -> Администрирование -> Планировщик заданийИ добавляем новую задачу. Имя задачи пишите какое угодно. Параметры запуска (триггеры) - указывайте такие, какие Вы указали бы для SQL Agent. Например, запускать каждый день в час Х, или как-то как Вам нужно.
В строчке выполнения (т.е. какую программу запустить или какую команду выполнить) пишите запуск в таком формате:
sqlcmd -S 192.168.0.1\SQLEXPRESS -U sa -P mysuperpassword -i c:\path_to_script\mybackup.sql -o c:\path_to_script\mybackup.log
Здесь:
- -S 192.168.0.1\SQLEXPRESS : здесь укажите IP адрес сервера, на котором крутится SQL Express, и Instance-имя этого сервера. Для установки по-умолчанию Instance-имя для SQL Express сервера - это SQLEXPRESS (в отличие от Standard-установки, у которой Default-имя инстанции - пустое).
- -U sa : имя пользователя, под которым выполнять скрипт. Вместо "sa" можно (и желательно) указывать имя пользователя, который имеет право на выполнение указанных в mybackup.sql или другом SQL-Script файле операций. Т.е. для, например, резервного копирования Вы можете создать отдельного юзера в MS SQL Server, который будет иметь право только на бекапы и все.
- -P mysuperpassword : пароль этого юзера
- -i c:\... : путь и имя файла с набором T-SQL команд (mybackup.sql в нашем случае)
- -o c:\... : путь и имя файла, куда вываливать сообщения (логи) по данной операции
Ну и все. Теперь сохраняете задачу планировщика Windows и проверяете. Запускаться она будет как обычная любая задача, при этом выполняя набор команд T-SQL вместо SQL Agent.
Менее удобно, конечно, чем писать это все прямо в оснастке SQL Server, но зато бесплатно.Актуально для: MS SQL Express 2005, 2008
Комментарии
Оставить комментарий
Базы данных - MySql (Maria DB)
Термины: Базы данных - MySql (Maria DB)