Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие 50016.doc
Скачиваний:
2
Добавлен:
30.04.2022
Размер:
202.75 Кб
Скачать

2 Теоретический материал для домашнего изучения

Автоматизация административных задач.

SQL Server предлагает набор инструментов для автоматизации административных задач. Служба SQL Server Agent позволяет автоматически выполнять определённые периодические задачи с базами данных и оповещать выбранных лиц о событиях или ошибках, возникших при выполнении. Использование этих возможностей позволяет обходиться без непрерывного мониторинга системы баз данных, чтобы определять, когда должны выполняться определённые задачи. Для автоматизации административных задач используются три основных средства: задания (jobs), оповещения (alerts), операторы (operators).

Задания.

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

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

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

Создание задания с использованием Enterprise Manager

Ниже рассматривается создание задания на резервное копиро­вание базы данных. В нем запланированы запуск резервного копировании каждый вечер в 23:00 и запись результата завершения этого задания (успешное или неуспешное) в журнал событий приложения Windows NT или Windows 2000 и в выходной файл. Для создания этого задания нужно выполнить следующие шаги:

1. В левой панели Enterprise Manager раскройте папку сервера, раскройте папку Management (Управление) и затем раскройте папку SQL Server Agent. Щелкните правой кнопкой мыши на Jobs (Задания) и выберите из контекстного меню пункт New Job (Создать задание). Появится окно New Job Properties (Свойства нового задания).

Рис.1 Вкладка General окна New Job Properties

(Свойства нового задания)

2. Во вкладке General задайте следующие параметры:

• Name (Имя). Введите в текстовом поле Name имя задания. Имя задания может содержать до 128 символов. Каждое задание на сервере должно иметь уникальное имя.

• Enabled (Активизировать). Установленный флажок Enabled указывает, что за­дание должно быть активизировано.

• Category (Категория). Выберите категорию для задания; в данном случае используется принятая по умолчанию категория Uncategorized (Local) (Без ка­тегории [Локально]). Вы можете выбирать из списка категорий, которые со­здаются при инсталляции SQL Server, или можете создавать свои собствен­ные категории. В список инсталлированных категорий входят Uncategorized (Local), Database Maintenance (Обслуживание базы данных), Full Text (Пол­нотекстовый поиск), Web Assistant (Web-помощник) и 10 категорий для реп­ликации. Категории используются для группирования родственных заданий. Например, вы можете группировать в одной категории все задания, которые используются для выполнения задач обслуживания базы данных, или груп­пировать задания по отделам, таким как отделы бухгалтерского учета, продаж и маркетинга. Категории позволяют вам следить за несколькими заданиями: вам не нужно просматривать весь список заданий, когда вас интересует толь­ко определенная часть заданий.

• Owner (Владелец). Владелец - это пользователь, который создает задание, или пользователь, для которого создается задание. Только роли System Administrator позволя­ют изменять владельца задания или изменять задание, владельцем которого является другой пользователь. Все роли System Administrator, а также владелец задания могут изменять определение задания, а также запускать и останавливать задание. В раскрывающемся списке Owner выбирайте пользователя, который будет выполнять задание. В данном примере используется пользователь, который создает задание, поэтому соот­ветствующий пользователь выбран автоматически.

• Description (Описание). В текстовом поле Description вы указываете, какие задачи выполняет это задание, и цель этого задания. Вам следует всегда вво­дить описание. Это позволит другим пользователям быстро определяться для чего предназначено задание. Описание может содержать до 512 символов,

• Target local server (На локальном сервере). Если щелкнуть на этой кнопке выбора, то задание будет выполняться только на локальном сервере. Если к данному серверу подсоединены удаленные серверы, то будет доступна кноп­ка выбора Target multiple servers (На нескольких серверах). Щелкните на этой кнопке выбора, чтобы указать удаленные серверы, на которых также будет запускаться это задание.

3. Щелкните на вкладке Steps (Шаги) и щелкните на New (Создать), чтобы появилось диалоговое окно New Job Step (Новый шаг задания). Шаги задания- это команды или операторы, которые определяют задачи данного задания. Каждое задание должно содержать хотя бы один шаг и может содержать несколь­ко шагов. Во вкладке General диалогового окна New Job Step введите следующую информацию:

• В текстовом поле Step name (Имя шага) введите имя данного шага

• В раскрывающемся списке Тyре (Тип) выберите тип шага. Варианты: Transact-SQL Script (TSQL) (Сценарий Т-SQL), ActiveX Script (Сценарий ActiveX), Operating System

Command (Команда операционной системы), Replication Distributor (Дистрибьютор репликации), Replication Transaction-Log Reader (Репликация, чтение журнала транзакций), Replication Merge (Репликация слиянием),QueueReader (Репликация, чтение данных из очереди) и Replication Snapshot (Репликация моментального снимка).

• В раскрывающемся списке Database (База данных) выберите имя базы дан­ных, с которой будет работать данное задание.

• В текстовом поле Command (Команда) введите команды, которые хотите вклю­чить в данный шаг. Для резервного копирования:

backup database название_базы_данных to название_устройства

Устройство должно быть создано заранее. Вы можете также щелкнуть на кнопке Open (Открыть), чтобы открыть файл, если у вас есть подготовленный сценарий, который вы хотите ввести как задание.

4. Щелкните на кнопке Parse (Синтаксический разбор), чтобы проверить синтак­сис шагов T-SQL, и затем щелкните на вкладке Advanced (Дополнитель­но) и задайте параметры (Рис.2). В этой вкладке вы можете выбрать, какое действие следует предпринять при успешном (success) и неуспешном (failure) за­вершении данного задания: Quit the job reporting success (Завершить задание с выдачей кода успешного завершения), Quit the job reporting failure (Завершить задание с выдачей кода неуспешного завершения) или перейти к следующему шагу. Вы можете также задать количество повторных попыток выполнения шага задания, если он не был успешно выполнен, а также интервал между попытка­ми. Если шаг представлен командой T-SQL или сценарием, то вы можете выб­рать выходной файл, в который будут выводиться результаты T-SQL. Вы можете задать добавление выходных результатов к этому файлу при каждом запуске за­дания (кнопка выбора Append) или указать замещение старых результатов новыми (кнопка выбора Overwrite). Щелкните на кнопке View (Просмотр), чтобы уви­деть содержимое выходного файла. Установите флажок Append output to step history (Добавлять выходные результаты в журнал выполнения шагов), чтобы результа­ты выполнения задания добавлялись в таблицу журнала для данного задания, Вы можете также указать пользователя (поле Run as user), который будет запус­кать этот набор T-SQL.

Рис. 2 Заполненная вкладка Advanced (Дополнительно)

диалогового окна New Job Step

5. Щелкните на кнопке Apply (Применить) и затем щелкните на кнопке ОК, чтобы вернуться во вкладку Steps окна New Job Properties, где вы можете при необходи­мости определить другие шаги задания. Щелкните на кнопке New, чтобы добавить новый шаг вслед за существующим шагом. Чтобы вставить новый шаг перед существующим шагом, выделите этот существующий шаги затем щелкните на кнопке Insert (Вставить), чтобы появилось окно New Job Step. Введите информацию для шага, который вы хотите вставить. Для удаления шага выделите эти шаг и щелкните на кнопке Delete (Удалить). Для редактирования шага выделите его и щелкните на кнопке Edit (Редактирование). Вы можете также переместить шаг в списке, выделив его и щелкая на кнопке «стрелка вверх» или «стрелка вниз» справа от метки Move Step (Переместить шаг). В раскрывающемся списке Start Step (Начальный шаг) вы можете выбрать шаг, который будет выполняться пер­вым в данном задании. Рядом с идентификационным номером шага, который будет выполняться первым, появится зеленый флаг. Щелкните на кнопке Apply, чтобы включить ваши шаги в задание. Если логика последовательности выпол­няемых шагов приводит к тому, что не будет выполняться какой-либо шаг, то после щелчка на кнопке Apply SQL Server выведет предупреждающее сообщим и позволит вам изменить логику последовательности.

6. Чтобы создать расписание для этого задания, щелкните на вкладке Schedules (Рас­писания). Чтобы найти текущее время на каком-либо сервере, выберите имя сервера в раскрывающемся списке NOTE: The Current Date/Time On Target Sera (Текущие дата/время на целевом сервере). Щелкните на кнопке New Schedule (Создать расписание), чтобы появилось диалоговое окно New Job Schedule (Новое расписание задания). Расписание указывает, в какие момента времени и по каким дням следует запускать задание. Задание может запускаться один раз или регулярно. Если вы хотите запускать задание вручную или время от времени, то вы не обязаны задавать расписание задания, а просто запускать зада­ние, когда вам потребуется. Задайте параметры в секции Schedule Type (Тип расписа­ния) (в данном случае щелкните на кнопке выбора Recurring [Повторяющееся]) и установите флажок Enabled (Активизировать).

7. Поскольку мы выбрали расписание повторяющегося типа, то вы должны задать моменты времени и дни, когда должно запускаться это задание. Для этого щел­кните на кнопке Change (Изменить), чтобы появилось диалоговое окно Edit Recurring Job Schedule (Редактировать расписание повторяющихся заданий). Вве­дите новые моменты времени и дни, затем щелкните на кнопке ОК, чтобы вер­нуться в диалоговое окно New Job Schedule.

8. Щелкните на кнопке ОК в диалоговом окне New Job Schedule, чтобы согласиться с расписанием и вернуться в окно New Job Properties. Чтобы удалить какое-либо расписание, выделите имя этого расписания и щелкните на кнопке Delete. Что­бы отредактировать какое-либо расписание, выделите имя этого расписания и щелкните на кнопке Edit.

9. Щелкните на вкладке Notifications (Уведомления). В этой вкладке вы можете определять процесс уведомления, чтобы оператор (или указанный пользо­ватель) получал уведомление об успешном или неуспешном результате выполне­ния задания или об окончании задания. Это уведомление может быть отправлено по электронной почте, на пейджер или как сообщение в сети с помощью команды NET SENO. Статус задания можно записывать в журнал событий Windows NT или Windows 2000, и вы можете даже автоматически удалять задание в случае ус­пешного выполнения, неуспешного завершения или после окончания. Чтобы скон­фигурировать уведомление для операторов, установите нужные флажки E-mail operator (Оператор для электронной почты), Page operator (Оператор с пейджером) и Net send operator (Оператор в сети) и выберите имя оператора в раскрывающемся списке справа от флажка. В крайних правых списках выберите условие, по которому инициируется уведомление. Чтобы записывать результаты в журнал событий (Write to windows application event log) или автоматически удалять задание по его окончании (Automatically delete job), установите нужные флажки и затем в соответствующих раскрывающихся сте­ках выберите условие, по которому нужно выполнить действие, указанное флажком.

10. Закончив формирование параметров, щелкните на кнопке Apply, чтобы создать ваше задание, и затем щелкните на кнопке ОК, чтобы выйти из окна New Job Properties и вернуться с Enterprise Manager.

11. Щелкните на строке Jobs в левой панели Enterprise Manager. Вы увидите созданное задание, включенное в список заданий в правой панели.

Просмотр журнала выполнения задания при помощи Enterprise Manager

SQL Server поддерживает журнал (историю) с информацией о выполнении задания таблице sysjobhistory системной базы данных msdb. Вы можете просмотреть информацию журнала выполнения задания с помощью Enterprise Manager или T-SQL. Для просмотра журнала задания с помощью Enterprise Manager выполните следующие шаги.

1. Щелкните правой кнопкой мыши на имени задания в правой панели Enterprise Manager и выберите из контекстного меню пункт View Job History (Просмотр журнала задания), чтобы появилось диалоговое окно Job History. Здесь вы увидите строку информации, описывающую каждое выполнение этого зада­ния, любых операторов, получивших уведомления, а также ошибки или сообще­ния, полученные от SQL Server.

2. Для просмотра дополнительных подробностей о статусе выполнения задания установите флажок Show step details (Показать подробности по шагам) в верхнем правом углу этого диалогового окна.

3. Для удаления всех сообщений щелкните на кнопке Clear All (Очистить все). Для

обновления экрана, чтобы можно было увидеть статус любых новых заданий, которые были запущены после того, как вы открыли диалоговое окно Job History, щелкните на кнопке Refresh (Обновить). Чтобы закрыть диалоговое окно Job History, щелкните на кнопке Close (Закрыть).

Оповещения

Оповещение – это действие, которое возникает на сервере в ответ на событие или состояние производительности. Оповещения могут реализоваться как уведомления операторам, могут инициировать запуск указанных заданий и могут перенаправлять события другому серверу. Событие – это ошибка или сообщение, которые записываются в журнал событий приложений Windows NT или Windows 2000. Состояние производительности – это характеристика работы системы, доступная для мониторинга с помощью Performance Monitor (Windows NT) или System Monitor (Windows 2000), такая как процент использования ЦП или количество блокировок, используемых SQL Server.

При возникновении какого-либо события служба SQL Server Agent сравнивает это событие со списком определенных вами оповещений, и если для этого события су­ществует оповещение, то происходит запуск этого оповещения.

Запуск оповещения для определенного состояния производительности происхо­дит в том случае, если указанный объект SQL Server в System Monitor достигает опре­деленного порогового значения производительности, например, счетчик User Connections (Количество пользовательских соединений) внутри объекта General Statistics (Общая статистика) в System Monitor.

Использование Enterprise Manager для создания оповещения по событию.

Ниже рассматривается создание оповещения по системному сообщению, которое уж имеет уровень серьезности 24. События (или ошибки) с уровнем серьезности (severity level) от 19 до 25 автоматически передаются в журнал событий приложений Windows NT или Windows 2000 и поэтому могут использоваться для запуска оповещений. По умолчанию события с уровнем серьезности меньше 19 не протоколируются в журна­ле, и поэтому эти события не могут использоваться для запуска оповещений. Чтобы эти события протоколировались в журнале, вы должны использовать sp_altermessage, оператор RAISERROR WITH LOG или xp_logevent, позволяющие изменить статус протоколирования события или сообщения.

Это сообщение будет протоколироваться по умолчанию в журнале событий без какого-либо вмешательства пользователя, необходимо­го для изменения его статуса протоколирования. Чтобы создать оповещение по со­бытию, выполните следующие шаги:

1. В левой панели Enterprise Manager раскройте папку сервера, раскройте папку Management (Управление) и затем раскройте папку SQL Server Agent. Щелкните пра­вой кнопкой мыши на Alerts (Оповещения) и выберите из контекстного меню пункт New Alert (Создать оповещение). Появится окно New Alert Properties (Свойства но­вого оповещения). Во вкладке General введите имя оповещения, кото­рое может содержать до 128 символов. Флажок Enabled (Активизировано) позволяет вам активизировать или деактивизировать это оповещение. Деактивизания оповещения означает, что оно не будет за­пускаться (аналогично деактивизации задания). В раскрывающемся списке Туре (Тип) выберите SQL Server event alert (Оповещение по событию), поскольку нужно создать оповещение, которое будет запускаться при возникновении определенного события. (Другой тип оповещения - SQL Server performance condition alert (Опове­щение по состоянию производительности).

2. В секции Event alert definition (Определение оповещения по событию) окна New Alert Properties нужно задать событие, по которому будет запускаться данное опо­вещение, щелкнув на кнопке выбора Error number (Номер ошибки) или Severity (Уровень серьезности) и указав затем номер ошибки или уровень серьезности. Если задан уровень серьезности, то данное оповещение будет запускаться по всем ошибкам с этим уровнем серьезности.

3. Для поиска определенной ошибки, нужно выбрать соответствующую категорию в окне списка Severity вкладки Search (Поиск) и щелкнуть на кнопке Find (Най­ти). Найденные ошибки будут представлены в списке вкладки Messages (Сооб­щения). Два флажка внизу вкладки Search можно использовать для ограничения поиска. Флажок Only include logged messages (Включать только протоколируемые в журнале сообщения) позволяет выполнять поиск только тех сообщений, кото­рые автоматически протоколируются в журнале событий. Флажок Only include user-defined messages (Включать только определенные пользователем сообщения) ограничивает поиск только теми сообщениями, которые определены пользова­телями.

4. Щелкните на кнопке OK, чтобы подтвердить выбор этого сообщении и вернуться во вкладку General окна New Alert Properties. В раскрывающемся списке Database Name (Имя базы данных) вы можете задать, что оповещение будет запускаться, только если данное событие возникло в указанной базе данных. В текстовом поле Error message contains this text (Сообщение об ошибке содержит следующий текст) вы можете ввести строку символов (до 100 символов), которая ограничивает круг ошибок, по которым будет запускаться данное оповещение, только теми ошибками, текст которых содержит данную строку. Если оставить это поле пустым, то никакого ограничения не применяется.

5. Щелкните на вкладке Response (Отклик). В этой вкладке вы можете указать действие, которое следует предпринять, если возникнет это оповещение. Установите флажок Execute job (Выполнить задание) и выберите в раскрываю­щемся списке имя задания, которое будет выполнено в случае этого оповеще­ния. Щелчок на кнопке New Operator (Создать оператора) позволяет вам создать нового оператора, который будет получать уведомление. В списке Operators to notify (Операторы для уведомления) будут представлены существующие опера­торы. Вы можете задать, нужно ли уведомлять оператора по электронной почте (колонка E-mail), через пейджер (pager), с помощью NET SEND или с помощью комбинации этих методов.

Если вы указываете какого-либо оператора для уведомления по электронной почте, а также устанавливаете флажок Include alert error text in E-mail (Включить текст ошибки оповещения в электронную почту), то текст ошибки будет отправ­лен оператору в сообщении оповещения. Чтобы включить в сообщение элект­ронной почты дополнительный текст, введите его в текстовом поле Additional notification message to send (Дополнительное сообщение уведомления для отправ­ки) внизу этой вкладки. В этом поле можно ввести до 512 символов. Поля-счетчики Delay between responses (Задержки между откли­ками) указывают, насколько часто будет извещаться оператор при повторных случаях этого оповещения. Значение 60 минут означает, что уведомление оператору будет отправляться только один раз в течение любого 60-минутного периода.

6. Для подтверждения введенных вами параметров оповещения и отклика щелк­ните на кнопке Apply. Затем щелкните на кнопке ОК, чтобы закрыть это окно.

Использование Enterprise Manager для создания оповещения по состоянию производительности

Теперь мы используем Enterprise Manager для создания оповещения, которое будет запускаться при возникновении определенного состояния производительности. Служба SQL Server Agent опрашивает счетчики производительности с 20-секундными интервалами, поэтому кратковременные пиковые или низкие на­грузки, возникающие между опросами, возможно, не будут обнаруживаться. Чтобы создать оповещение, выполните следующие шаги.

1. В левой панели Enterprise Manager раскройте папку сервера, раскройте папку Management и затем раскройте папку SQL Server Agent. Щелкните правой кнопкой мыши на Alerts и выберите из контекстного меню пункт New Alert. Появится окно New Alert Properties. Во вкладке General в текстовом поле Name ввези­те имя оповещения. Флажок Enabled. (Активизировано) позволяет вам активизировать или деактивизировать это опо­вещение. Чтобы задать оповещение по состоянию производительности, выберите в раскрывающемся списке Туре вариант SQL Server performance condition alert.

2. В секции Performance condition alert definition (Определение оповещения по состоянию производительности) нужно определить состояние производительности, по которому будет запускаться это оповещение. Выберите в раскрываю­щемся списке Object (Объект) объект производительности SQL Server, который хотите использовать для запуска оповещения, и затем выберите в раскрывав­шемся списке Counter (Счетчик) нужный счетчик. Используйте поле Alert if counter (Оповещение в случае, если счетчик), чтобы указать, в какой ситуации должно запускаться оповещение. Задайте пороговое значение (поле Value), переход которого будет приводить к запуску этого оповещения.

3. Чтобы завершить создание этого оповещения, задайте параметры на вкладке Response и щелкните на кнопке Apply и затем щелкните на кнопке ОК.

Операторы

Операторы – это отдельные люди, которые могут получать уведомление от SQL Server по завершении какого-либо задания или при возникновении какого-либо события. Оператор - это человек, ответственный за обслуживание одной или нескольким систем, на которых работает SQL Server. Имеется три метода, используемых для связи с операторами: отправка сообщений электронной почты, отправка на пейджер и использование команды NET SEND (которая отправ­ляет сетевое сообщение на компьютер оператора). Чтобы можно было применять каждый из этих методов, ваша система должна отвечать определенным требовани­ям. Для связи через электронную почту и с пейджером вы должны инсталлировать на сервере совместимый с MAPI-1 клиент, такой как Microsoft Outlook или Microsoft Exchange Client, и должны создать почтовый профиль для службы SQL Server Agent. Для пейджинговой связи вам нужно также инсталлировать на по­чтовом сервере программное обеспечение сторонних фирм для связи электронной почты с пейджером, которое обрабатывает входные сообщения электронной почты и преобразует их в пейджинговые сообщения. Чтобы использовать NET SEND, вас должна работать операционная система Windows NT или Windows 2000, посколь­ку NET SEND не поддерживается в Microsoft Windows 95/98.

Использование Enterprise Manager для создания оператора

Чтобы создать оператора с помощью Enterprise Manager, выполните следующие шаги:

1. В левой панели Enterprise Manager раскройте папку сервера, раскройте папку Management и затем раскройте папку SQL Server Agent. Щелкните правой кноп­кой мыши на Operators и выберите из контекстного меню пункт New Operator, чтобы появилось окно New Operator Properties (Свойства нового оператора). Во вкладке General введите имя нового оператора и затем заполните все или некоторые из следующих данных: адрес электронной почты этого оператора, адрес пейджера и адрес для команды NET SEND.

Если вы ввели адрес пейджера, то можете задать в секции Pager on duty schedule (Расписание дежурства на пейджере) дни и периоды времени, когда можно от­правлять сообщения этому оператору.

2. Щелкните на вкладке Notifications. Если щелкнуть на кнопке выбора Alerts (в верхнем правом углу), то появится список существующих оповещений. Устанавливая флажки в соответствующих колонках, вы можете задавать, по каким оповещениям нужно уведомлять этого оператора и какой метод связи будет для этого использоваться.

3. При создании нового оператора кнопка выбора Jobs для вас недоступна, так как нет таких заданий, которые бы уведомляли нового оператора, поскольку новый оператор еще не создан. Чтобы новый оператор не получал уведомлений, сбрось­те флажок Operator is available to receive notifications (Оператор доступен для полу­чения уведомлений).

4. Щелкните на кнопке Send E-mail (Отправить электронную почту), чтобы создать тестовое сообщение для отправки оператору, представленному во вкладке General. Вы получите сообщение об ошибке, если не указали адрес электронной почты во вкладке General. Затем вы можете отправить сообщение электронной почты, в котором описываются типы уведомлений, заданные для этого оператора. Вни­зу вкладки Notifications вы увидите информацию о последних попытках уведом­лений этому оператору по типам используемых средств отправки.

Журнал ошибок службы SQL Server Agent

Служба SQL Server Agent имеет собственный журнал ошибок, в который записыва­ются запуск и отключение SQL Server Agent и любые предупреждения, ошибки и информационные сообщения, связанные с заданием или оповещением SQL Server Agent. Чтобы использовать журнал ошибок SQL Server Agent, выполните следующие шаги:

1. В Enterprise Manager раскройте папку сервера и раскройте папку Management. Щелкните правой кнопкой мыши на SQL Server Agent и выберите из контекст­ного меню пункт Display Error Log (Показать журнал ошибок). Появится журнал ошибок.

2. В раскрывающемся списке Type (Тип) вы может выбирать просмотр сообщений об ошибках, предупреждающих сообщений, информационных сообщений или все трех типов (All Types).

3. Каждый раз, как вы запускаете SQL Server Agent, происходит повторный запуск журнала ошибок с перезаписью всех существующий сообщений этого журнала. Вы можете искать сообщение, содержащее определенную строку, набрав эту строку в текстовом поле Containing Text (Содержит текст) и нажав затем клавишу Enter или щелкнув на кнопке Apply Filter (Применить фильтр).

4. Дважды щелкните на самом сообщении, чтобы появилось диалоговое окно SQL Server Agent Error Log Message (Сообщение журнала ошибок SQL Server Agent). Если в результате поиска будет показано несколько сообщений, вы можете использовать для перехода между сообщениями кнопки Next (Следу­ющее) и Previous (Предыдущее). Эти кнопки недоступны, если найдено только одно сообщение.

В журнал ошибок SQL Server Agent поступает сообщение об ошибке, если по ка­кой-либо причине недоступен оператор или не выполняется задание. Вам следу­ет время от времени просматривать журнал ошибок, чтобы определить наличие ошибок, на которые нужно обратить внимание.

Планы обслуживания баз данных

План обслуживания - это набор задач, которые SQL Server будет автоматически выполнять по вашим базам данных согласно заданному вами расписанию. Целью плана обслуживания является автоматизация важных административных задач и снижение объема ручной работы. Вы можете создавать отдельный план для каждой базы данных, сколько планов для одной базы данных или один план для нескольких баз данных. Имеются четыре следующие основные категории административных задач, которые вы можете планировать путем создания плана обслуживания.

Оптимизации.

Проверки целостности.

Резервное копирование баз данных.

Резервное копирование журнала транзакций.

Выполнение этих задач имеет важное значение для поддержки хорошо работающей и восстанавливаемой базы данных. Типы оптимизационных задач, которые вы включите в ваш план, будут зависеть от производительности и степени использова­ния вашей базы данных. Выполнение проверок целостности является хорошим средством, чтобы обеспечить согласованность и сохранность базы данных. А регулярное резервное копирование требуется для того, чтобы обеспечить восстанавливаемость базы данных в случае аварии системы или пользовательских ошибок.

Для создания плана обслуживания используется мастер Database Maintenance Plan Wizard.

Использование мастера Database Maintenance Plan Wizard для создания плана обслуживания

Для использования мастера Database Maintenance Plan Wizard выполните следующие шаги:

1. Запустите этот мастер из Enterprise Manager с помощью одного из следующих методов.

• Выберите из меню Tools пункт Database Maintenance Planner (Планировщик обслуживания баз данных).

• Щелкните правой кнопкой мыши на имени соответствующей базы данных, выберите пункт All Tasks (Все задачи) и затем выберите из этого меню Maintenance Plan.

2. Щелкните на кнопке Next (Далее), чтобы появилось окно Select Databases (Вы­бор баз данных). Здесь вы можете выбрать базу или базы данных, для которых хотите создать план обслуживания.

3. Щелкните на кнопке Next, чтобы появилось окно Update Data Optimization Information (Обновление информации по оптимизации данных). Вы можете выбирать следующие типы оптимизации для базы или баз данных, выб­ранных на предыдущем шаге.

• Reorganize data and index pages (Реорганизация страниц данных и индексов). Этот флажок указывает, что все индексы и все таблицы базы данных будут удалены и воссозданы с использованием указанного коэффициента заполне­ния (или количества свободного места на каждой странице), что может по­высить производительность обновлений. В случае таблиц, предназначенных только для чтения, реорганизация страниц не является необходимостью. В случае таблиц, для которых часто выполняются вставки или изменения, сво­бодное место, которое первоначально было доступно на ваших индексных страницах, постепенно заполняется, и начинает происходить фрагментация страниц. Установите этот флажок, чтобы выполнить повторное создание ва­ших индексов и образовать свободное место для будущего роста во избежание задержек и нагрузок, вызываемых фрагментацией страниц. Вы можете выбрать между повторным созданием индексов с исходным коли­чеством свободного места или указать новый процент свободного места на одну страницу. Если задать слишком большой процент, то вы рискуете снизить про­изводительность операций чтения. Установив этот флажок, вы не можете уста­новить следующий флажок - Update statistics used by query optimizer.

• Update statistics used by query optimizer (Обновление статистики, используемой оптимизатором запросов). При установке этого флажка SQL Server выполнит пе­рерасчет статистики распределения по всем индексам в соответствующей базе данных. SQL Server использует информацию для выбора оптимального пла­на исполнения для запросов. SQL Server автоматически генерирует статистику путем выборки небольшого процента данных в таблице, соответствующей каждому индексу. Флажок этого окна можно использовать для того, чтобы SQL Server выпол­нял выборку с использованием большего процента данных.или чтобы задать частоту, с которой SQL Server должен обновлять эту статис­тику, вместо автоматического выбора частоты в SQL Server. Чем больше про­цент выборки данных, тем точнее будет статистика, но при этом SQL Server потратит больше времени. Эта информация может помочь в повышении про­изводительности при интенсивном изменении данных в индексируемых ко­лонках. Вы можете проверить используемый план исполнения для ваших запросов с помощью анализатора запросов SQL Query Analyzer, чтобы определить, насколько эффективно используются индексы и насколько необходима уста­новка данного флажка. Установив этот флажок, вы не сможете установить предыдущий флажок.

• Remove unused space prom database files (Удалить неиспользуемое пространство из файлов базы данных) Этот флажок применяется для удаления неиспользу­емого пространства: этот процесс также известен как уплотнение (сжатие) файла (file shrink). Вы можете задать, насколько большим должно стать неис­пользуемое пространство, чтобы произошло сжатие файла, а также процент пространства, которое должно остаться свободным после сжатия. Удалив сво­бодное пространство, вы можете использовать DBCC SHRINKFILE для сни­жения размера данного файла. Если нужно, вы можете сделать его меньше, чем при первоначальном создании. Это позволит использовать для других целей дисковое пространство, которое раньше было занято файлом. Кроме того, сжатие файла за счет удаления неиспользуемого пространства может повысить производительность. В случае таблиц, предназначенных только для чтения, реорганизация страниц не является необходимостью. Вы можете задать время, за которое должны выполняться эти задачи, щелк­нув на кнопке Change (Изменить) и введя новое расписание в появившемся диалоговом окне Edit Recurring Job Schedule (Редактировать расписание по­вторяющихся заданий). Эти задачи следует выполнять в перио­ды небольшой загруженности системы, например, в выходные дни или но­чью, поскольку это требует определенного времени и может увеличивать время отклика на запросы пользователей.

4. Щелкните на кнопке Next, чтобы появилось окно Database Integrity Check (Про­верка целостности базы данных). В этом окне вы можете указать, нужно ли выполнять проверку целостности. При проверке целостности проверяется размещение и структурная целостность таблиц и индексов (если индексы включены в проверку) с помощью команды DBCC CHECKDB. Вы можете указывать, будут ли включаться в проверку индексы, будет ли SQL Server пытаться устранить небольшие проблемы и должны ли все эти проверки целостности выполняться перед резервным копированием. Если вы указали, что выполнение проверок должно происходить перед резервным копированием, то в случае обнаружения какой-либо проблемы это резервное копирование выполняться не будет. Щелкните на кнопке Change, чтобы изменить время, когда будут выполняться эти задачи. Проверка целостности может занимать несколько часов в зависимости от размера баз данных, поэтому следите за тем, чтобы они не планировались на периоды интенсивного использования баз данных. Проверки должны проводиться регулярно, возможно, ежемесячно или еженедельно, или перед резервным копированием баз данных.

5. Щелкните на кнопке Next, чтобы появилось окно Specify the Database Backup Plan (План резервного копирования баз данных). В этом окне к указываете, будет ли создаваться план автоматизированного резервного копирования. Чтобы активизировать автоматическое резервное копирование, установите флажок Back up the database as part of the maintenance plan (Выполнять резервное копирование как часть плащ обслу­живания). Вы можете указать для SQL Server проверку целостности резервной копии по окончании копирования. SQL Server выполняет это для подтверждения того, что резервная копия создана полностью и все тома резервной копии доступны. Вы можете также ука­зывать, где должна храниться резервная копия - на ленте или диске. Щелкните на кнопке Change, чтобы изменить время, когда будет выполняться резервное копирование.

6. Щелкните на кнопке Next, чтобы появилось окно Specify Backup Disk Directory (Дисковал директория для резервной копии). Это окно появляется, только если вы задали в предыдущем окне резервное копиро­вание на диск; оно не появится, если вы задали резервное копирование на ленту. В этом окне вы можете задать местоположение файла резервной копии или использовать принятую по умолчанию директорию для резервной копии. Если у вас несколько баз данных, для которых выполняется резервное копирование, тo вы можете выбрать размещение резервной копии каждой базы данных в ее собственной поддиректории, чтобы поддерживать определенную организацию фай­лов резервных копий. Вы можете выбрать автоматическое удаление файлов резервных копии по истечении определенного срока хранения, чтобы освобождалось про­странство на дисках, а также можете задавать расширение имен файлов, которое хотите использовать для файлов резервных копий.

7. Щелкните на кнопке Next, чтобы появилось окно Specify the Transaction Log Backup Plan (План резервного копирования журнала транзакций). Это окно устроено аналогично окну Specify the Database Backup Plan, но параметры этого окна используются для создания плана резервного копирования журнала транзакции. Резервное копирование журнала транзакций должно происходить между резервными копированиями вашей базы данных. Для восстановления любых изменений, выполненных с момента после­днего резервного копирования базы данных, используется резервная копия жур­нала транзакций. Если у вас выбрано сохранение резервных копий на диске, то следующим будет окно Specify Backup Disk Directory, в котором вы задаете информацию о местопо­ложении файла резервной копии.

8. Щелкните на кнопке Next, чтобы появилось окно Reports to Generate (Генериру­емые отчеты). В этом окне вы можете выбрать создание отчета, со­держащего результаты выполнения задач плана обслуживания. Этот отчет содер­жит подробности выполненных шагов и любые возникшие ошибки. В этом окне вы также задаете местоположение для сохранений отчета, а также можете задать удаление отчетов через определенный период времени и отправку отчета по электронной почте указанным адресатам.

9. Щелкните на кнопке Next, чтобы появилось окно Maintenance History (Журнал обслуживания). Здесь вы можете выбрать запись отчета с журналом (историей) обслуживания в таблицу базы данных на локальном сервере и задать максимальный размер этого отчета. Вы можете также указать запись этого отчета на удаленный сервер и задать максимальный размер этого отчета.

10. Щелкните на кнопке Next, чтобы появилось окно Completing the Database Maintenance Plan Wizard (Завершение работы мастера созданий плана обслуживания баз данных). В этом окне показана сводка вашего плана обслу­живания. Если план обслуживания вас устраивает, щелкните на кнопке Finish (Готово).

Редактирование плана обслуживания

Чтобы отредактировать план обслуживания, щелкните в левой панели Enterprise Manager на имени базы данных, для которой создан план обслуживания, и затем выберите имя этого плана под заголовком Maintenance в правой панели. Возможно, вам потребуется выполнить прокрутку, чтобы увидеть заголовок Maintenance. По­явится диалоговое окно Database Maintenance Plan.

Во вкладке General вы можете указывать, какие базы данных будет затрагивать ваш план обслуживания. В других вкладках вы можете изменять значения парамет­ров, которые сконфигурировали с помощью мастера Database Maintenance Plan Wizard. Закончив редактирование плана, щелкните на кнопке ОК. Ваш план теперь начнет выполняться в соответствии с указанным вами расписанием.