Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #52, МАРТ 2005 г.

Эффективное управление базой данных

Лавров Владислав (l-vv@r66.ru)

Спецвыпуск: Хакер, номер #052, стр. 052-082-2


В закладке Connection можно изменить порядок подключения к SQL-серверу, если наш агент будет работать по сети или если используется репликация по сети между двумя серверами. Здесь может использоваться либо аутентификация в системе Windows, либо SQL-аутентификация, причем необходимо установить имя системного админа в поле SysAdmin login ID и его пароль в поле Password.

Какие компоненты находятся на службе у этого агента и зачем они нужны? Всего их три: задание (job), тревожное оповещение (alert) и оператор (operator).

Например, требуется поручить серверу периодическое создание резервных копий базы данных. Для этого в диалоговом окне настройки процесса резервирования соответствующей базы выбираем опцию Schedule, а затем - отображаем параметры настройки расписания. Этот диалог является стандартным для всех процессов службы SQL Server Agent, после выполнения всех "мастерских" диалоговых окон создается новый для нее процесс. При этом никакие настройки в SQL Server Agent не производились. А где же этот процесс увидеть? Найдем наш job в списке объектов SQL Server Agent/Jobs.

Задания и оповещения дополняют друг друга, job можно привязать к alert’у. При возникновении события запускается задание, которое пытается обработать ситуацию, возникшую в результате события. К примеру, можно создать оповещение, которое будет генерироваться при заполнении файла базы данных или журнала на 90%. Когда это произойдет, сгенерируется событие, которое может выполнить работу (Job) по выделению нового пространства и одновременно отослать сообщение админу с сообщением наподобие "Админ, база заполнена на 90%. Я запустил работу по выделению пространства". Этот способ бесценен, если ты не используешь авторасширение файлов базы и журнала, больше подходящее для контроля места на диске.

Из всего описанного можно сделать такой вывод: все оповещения системы, попавшей в нештатную ситуацию, валятся именно на голову оператора. Операторы в службе SQL Server Agent бывают двух видов: обычные и последней надежды (fail safe operator). Оператор последней надежды бывает только один, и он вызывается в том случае, если никто не среагировал на предыдущие сообщения. Его нельзя удалить, но можно разжаловать до рядового или передать этот почетный титул козла отпущения кому-нибудь другому.

Создать оператор достаточно просто: надо определить его имя (name) и идентификатор (id) в меню SQL Server Agent/Operators/New Operator… Чтобы система не писала "на деревню дедушке", в окне указывается адрес электронной почты, пейджер и имя компьютера, куда можно послать сообщение. Если ты будешь рассылать сообщения себе или другим операторам по e-mail, то нужен доступ к серверу, поддерживающему интерфейс MAPI, а также правильно сконфигурированный почтовый профиль (mail profile) для SQL Server Agent. Как нельзя лучше для этого подходит MS Exchange.

Замечу, что с помощью настроек объекта jobs можно реализовывать не только плохие новости, но и alert о корректном завершении выполняемого процесса. Можно рассылать сообщения о корректном завершении резервирования. Если сообщение не показалось, то оператор должен поднять бунт на корабле.

Назад на стр. 052-082-1  Содержание  Вперед на стр. 052-082-3