Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LektsiiNovye.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
2.92 Mб
Скачать

Лекция 15: Автоматизация административных задач с помощью службы sqlServerAgent

Для автоматизации некоторого класса административных задач используются некоторые дополнительные средства, предоставляемые в SQL Server, например службы SQLServerAgent. Служба SQLServerAgent позволяет автоматически выполнять определённые периодические задачи с базой данных и оповещать администратора или другое указанное лицо о том, что на сервере возникла какая-либо проблема или событие. Использование этих возможностей позволяет администратору обходиться без ручного и непрерывного мониторинга системы баз данных, чтобы определять, когда должны выполняться определённые задачи, что позволяет выделить время для более сложных вопросов администрирования.

Для автоматизации административных задач используются три основных средства: задания (jobs), оповещения (alerts) и операторы (operators).

Задания

Задания – это административные задачи, которые определяются один раз и могут выполняться многократно. Задание может запускаться вручную, или системой SQL Server в определённое время, в соответствии с регулярным расписанием или при возникновении оповещения. Задания могут состоять из операторов Transact-SQL, команд Microsoft Windows, исполняемых программ или сценариев Microsoft ActiveX. Задания также автоматически создаются при использовании репликаций и создании плана обслуживания базы данных. Задание может состоять из одного или нескольких шагов, и каждый шаг может быть вызовом более сложного набора шагов, например обращением к хранимой процедуре. SQL Server автоматически следит за результатом выполнения заданий (успешное или неуспешное завершение); есть возможность задавать оповещения, которые будут отправляться в каждом случае.

Задания могут выполняться локально на сервере, а в случае нескольких серверов в сети можно назначать один из серверов как главный сервер, а остальные серверы – как серверы-получатели. На главном сервере хранятся определения заданий для всех серверов, и этот сервер действует как центр обмена информацией для координирования работы всех заданий. Каждый сервер-получатель периодически подсоединяется к главному серверу, обновляет список своих заданий, если какие-либо задания изменились, загружает любые новые задания с главного сервера и затем отсоединяется для выполнения этих заданий. Когда сервер-получатель завершает какое-либо задание, он снова подсоединяется к главному серверу и сообщает о статусе его завершения.

Рассмотрим ситуацию, в которой может потребоваться создать задание. Предположим, что есть таблица базы данных, в которой ведётся запись о каждой выполненной в банковской среде транзакции, такой как поступление денег на счёт, снятие денег со счёта и перевод (трансферт) денег. Каждая запись содержит колонку временной метки (timestamp), где указывается время выполнения транзакции. Эта таблица непрерывно растёт, и её нужно периодически сокращать. Для удаления строк из этой таблицы целесообразно написать небольшую хранимую процедуру, в которой используется оператор DELETE для удаления строк, которые хранятся больше двух месяцев (в предположении, что банк должен хранить записи только два месяца). Затем следует создать задание для выполнения этой хранимой процедуры раз в неделю, например в ночь на воскресенье. Это путь, который позводит воспрепятствовать бесконечному росту данной таблицы, сэкономить пространство на диске и, как правило, повысить производительность.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]