Ядро SQL Server, SQL-DMO и средства управления образуют систему распределенного управления сервером, SQL-DMF (Distributed Management Framework). Эта система может быть дополнена утилитами, использующими SQL-DMO и расширяющими функциональность существующих средств управления сервером SQL. Схема взаимоотношения составляющих SQL-DMF приведена на рисунке 7.
Как видно из рисунка, слой SQL-DMO является интерфейсом высокого уровня к компонентам ядра SQL Server.
Рис. 7. Компоненты SQL-DMF и их взаимосвязь
SQL-DMO предоставляет приложению полный набор интерфейсов для управления сервером. Развернутая иерархическая схема объектной модели SQL-DMO приведена на рисунке 8. Можно заметить, что каждый из объектов является представлением какой-либо подсистемы или физического элемента SQL Server, будь то система защиты, устройство или таблица базы данных. Каждый объект обладает набором свойств и методов и может содержать подчиненные объекты и/или их коллекции. С помощью свойств и методов прикладная программа может манипулировать объектами и получать доступ к объектам, вложенным в данный.
Рис. 8. Структура SQL-DMO
Базовым объектом иерархии является объект SQL Server, все остальные объекты являются его потомками. Для осуществления доступа к любому из объектов-потомков необходимо предварительно получить экземпляр его родителя.
Следует обратить внимание на наличие в SQL-DMO коллекций и объектов уровня приложения (Collections и Application Objects).
Использование коллекций позволяет избежать непосредственного объявления включенных в них объектов. Использование итераторов и методов добавления и удаления значительно упрощает процедуры обработки наборов объектов одного типа.
Объекты уровня приложения используются для сохранения в программе результатов выполнения каких-либо операций над объектами сервера, и могут быть созданы независимо от базового объекта SQL Server.
Использование SQL-DMO
Для работы с SQL-DMO может применяться любое приложение, поддерживающее протокол OLE2, это могут быть средства разработки типа Visual C/C++, Visual Basic или Visual J++ либо офисные приложения, такие как Excel, Word или Access. Ниже приводится пример на VB, использующий SQL-DMO для обновления статистики оптимизатора запросов для всех таблиц на всех зарегистрированных в организации серверах:
Dim ServerGroupObject As New SQLOLE.ServerGroup Dim RegisteredServerObject As New SQLOLE.RegisteredServer Dim SQLServerObject As New SQLOLE.SQLServer Dim DatabaseObject As New SQLOLE.Database Dim TableObject As New SQLOLE.Table For Each ServerGroupObject In ServerGroups For Each RegisteredServerObject In ServerGroupObject.RegisteredServers SQLServerObject.Connect RegisteredServerObject.Name, "sa", "" For Each DatabaseObject In SQLServerObject.Databases For Each TableObject In DatabaseObject.Tables TableObject.UpdateStatistics Next Next SQLServerObject.Close Next Next
Административная консоль SQL Enterprise Manager позволяет централизовано управлять любым количеством SQL серверов в сети организации. Для удобства управления серверы могут быть объединены в группы. Каждая группа может включать как сервера, так и вложенные группы. Информация об иерархии групп серверов хранится в registry компьютера, на котором впервые эта иерархия создана. Каждое административное место может использовать свою копию и, соответственно, версию иерархии, либо получать эту информации с другого компьютера. Каждый SQL сервер также представлен в виде иерархии объектов, что обеспечивает наглядность представления информации и упрощает навигацию по объектному дереву. Каждое подмножество дерева объектов может просматриваться независимо в дополнительных окнах. Создание нового окна производится методом "перетащи и оставь" на рабочий стол SQL Enterprise Manager. С каждым объектом ассоциирован набор действий, которые над ним можно выполнить, список их может быть выведен по нажатию правой кнопки мыши. Внешний вид административной консоли приведен на рисунке 6.9.
Использовать SQL Enterprise Manager могут как администраторы, так и зарегистрированные пользователи SQL Server для выполнения над объектами сервера разрешенных им действий. Перечислим основные возможности SQL Enterprise Manager:
Рис. 9. Консоль SQL Enterprise Manager
С панели инструментов могут быть вызваны утилиты ISQL/W и MS Query для выполнения предложений SQL и/или просмотра и модификации данных.
Кроме того существует возможность создания дополнительных панелей, содержащих ссылки на дополнительные программы, расширяющие функциональность SQL Enterprise Manager. При вызове этих программ, им могут быть переданы сведения о текущем состоянии дерева объектов (текущая группа, текущий сервер, текущий объект сервера).
В обязанности SQL Executive входят исполнение заданий, хранящихся в специальной базе сервера msdb, слежение за возникновением событий и выполнение связанных с событием действий. Кроме того SQL Executive может быть настроен таким образом, чтобы следить за состоянием сервиса MSSQLServer и обеспечивать при необходимости его перезапуск. Дополнительно SQL Executive может стартовать процесс SQL Mail вместе с запуском сервера.
Контекст пользователя, в котором запускается SQL Executive имеет важное значение в случае исполнения заданий, связанных с доступом к ресурсам удаленных компьютеров, в частности это относится к процессу репликации. Поэтому во многих случаях необходимо настроить сервис на исполнение в контексте конкретного пользователя, а не локальной системы.
Для запуска заданий пользователей, не являющихся SA, предусмотрена возможность использования контекста специального пользователя с именем SQLExecutiveCmdExec. Этот пользователь создаётся (или пересоздаётся) с минимальным набором полномочий по нажатию кнопки Reset CmdExec Account. Пароль генерируется автоматически, но может быть принудительно сгенерирован заново по нажатию кнопки Reset CmdExec Password.
Управление заданиями
SQL Executive поддерживает следующие типы заданий:
Задание создается либо из среды SQL Enterprise Manger, либо программно, в том числе при помощи хранимых процедур.
Задание может быть создано как:
После того как задание создано, оно может быть принудительно запущено, изменено, удалено или помечено как временно неактивное. С фактом завершения задания, как успешного, так и нет, можно ассоциировать событие, регистрируемое в системном журнале NT и с которым можно связать предупреждение (alert).
Для задания можно указать, сколько раз и через какие интервалы времени будет произведена попытка перезапуска задания, если оно закончилось неудачно.
Для заданий репликации можно задать имя сервера и имя базы данных, на которых задание будет выполняться.
После запуска задание регистрируется в таблице активных. В любой момент времени список заданий можно просмотреть и при необходимости прервать исполнение досрочно. История исполнения заданий сохраняется в журнале, размер журнала и предельное число записей в нем для единичного задания можно установить. Внешний вид панели управления заданиями приведен на рисунке 10.
Рис. 10. Панель управления заданиями
Предупреждения и операторы
SQL Executive в процессе работы контролирует состояния системного журнала приложений Windows NT на предмет наличия записей, относящихся к компонентам SQL Server. Найденные ошибки или сообщения сопоставляются по номеру с зарегистрированными предупреждениями, хранящимися в таблице msdb, и при обнаружении совпадения выполняется либо ассоциированное с предупреждением задание, либо отправляется почтовое сообщение оператору, в чьи обязанности входит реагировать на такого рода события.
Предупреждения и операторы, создаются либо из SQL Enterprise Manager, либо посредством хранимых процедур. На рисунке 11 приведен внешний вид панели управления множествами предупреждений и операторов.
Рис. 11. Панель управления предупреждениями и операторами
Созданные предупреждения и операторы могут в дальнейшем быть модифицированы, удалены или. сделаны временно неактивными. Для каждого предупреждения можно задать способ извещения оператора - по почте или через пейджер, хотя в последнем случае сообщение все равно отправляется почтовому адресату, следовательно, почтовая система должна иметь в своем составе соответствующий шлюз.
На рисунках 13 и 12 приводятся примеры создания предупреждения и оператора, его получающего.
Рис. 12. Создание нового оператора
Рис. 13. Создание нового предупреждения
Шлюз в электронную почту SQL Mail является одной из уникальных базовых компонент SQL Server 6.5. SQL Mail позволяет из программ, исполняемых на сервере принимать, обрабатывать и посылать почтовые сообщения. SQL Mail состоит из набора хранимых процедур, выполняющихся в контексте пользователя, под которым стартует SQL Server. Поддерживается любая почтовая система, основанная на интерфейсе MAPI, в частности MS Exchange Server и MS Mail 3.X. Для нормального функционирования на компьютере должен быть настроен клиент соответствующей почтовой системы. В панели конфигурации SQL Mail указывается имя входа (название конфигурации) и пароль.
Рис. 14. Панель настройки SQL Mail
SQL Mail может настраиваться и управляться с консоли SQL Enterprise Manager, может быть настроен на автоматический старт вместе с SQL Server или запущен посредством хранимых процедур как часть прикладного процесса или как Transact-SQL задание SQL Executive.
Хранимые процедуры обработки сообщений
В состав SQL Mail входят следующие хранимые процедуры:
Для всех хранимых процедур права на исполнение закреплены за SA, который на своё усмотрение назначает права конкретным пользователям.
Наличие процедур манипуляции сообщениями позволяет реализовать собственную схему приёма, разборки и отправки сообщений на сервере. Поскольку действия над сообщениями выполняются из расширенных процедур, их набор может быть увеличен, а логика работы надлежащим образом изменена путем создания оных на языках высокого уровня, таких как C/C++, с последующей регистрацией расширенных процедур на сервере.
Настройка для работы с Microsoft Exchange Server
Чтобы использовать SQL Mail с сервером Exchange необходимо выполнить следующие действия:
Важно обратить внимание на следующие моменты:
Назад | Содержание | Вперед