авторефераты диссертаций БЕСПЛАТНАЯ БИБЛИОТЕКА РОССИИ

КОНФЕРЕНЦИИ, КНИГИ, ПОСОБИЯ, НАУЧНЫЕ ИЗДАНИЯ

<< ГЛАВНАЯ
АГРОИНЖЕНЕРИЯ
АСТРОНОМИЯ
БЕЗОПАСНОСТЬ
БИОЛОГИЯ
ЗЕМЛЯ
ИНФОРМАТИКА
ИСКУССТВОВЕДЕНИЕ
ИСТОРИЯ
КУЛЬТУРОЛОГИЯ
МАШИНОСТРОЕНИЕ
МЕДИЦИНА
МЕТАЛЛУРГИЯ
МЕХАНИКА
ПЕДАГОГИКА
ПОЛИТИКА
ПРИБОРОСТРОЕНИЕ
ПРОДОВОЛЬСТВИЕ
ПСИХОЛОГИЯ
РАДИОТЕХНИКА
СЕЛЬСКОЕ ХОЗЯЙСТВО
СОЦИОЛОГИЯ
СТРОИТЕЛЬСТВО
ТЕХНИЧЕСКИЕ НАУКИ
ТРАНСПОРТ
ФАРМАЦЕВТИКА
ФИЗИКА
ФИЗИОЛОГИЯ
ФИЛОЛОГИЯ
ФИЛОСОФИЯ
ХИМИЯ
ЭКОНОМИКА
ЭЛЕКТРОТЕХНИКА
ЭНЕРГЕТИКА
ЮРИСПРУДЕНЦИЯ
ЯЗЫКОЗНАНИЕ
РАЗНОЕ
КОНТАКТЫ


Pages:     | 1 |   ...   | 11 | 12 || 14 | 15 |   ...   | 33 |

«Е.Мамаев MS SQL SERVER 2000 Книга посвящена одной из самых мощных и популярных современных систем управления базами данных - Microsoft SQL Server 2000. ...»

-- [ Страница 13 ] --

• Message. С помощью одной задачи Message Queue Task можно либо прини мать, либо отправлять строки, переменные и файлы. Конфигурирование как приема, так и отправки осуществляется с использованием единственного ок на свойств задачи. С помощью рассматриваемого раскрывающегося списка пользователь указывает, что он хочет сконфигурировать — отправку (Send messages) или получение (Receive messages). В зависимости от того, какой пункт выбран в списке, меняется состав элементов управления, расположен ных в нижней части окна. На рис. 11.70 приведен вид окна, когда в списке выбрано значение Send messages. Как видно, в этом случае в нижней части окна содержится лишь таблица Message to be sent.

• Queue. В этом поле указывается имя очереди, в которую будет отправляться (приниматься) сообщение. Имя очереди указывается в формате Часть III. Администрирование имя_компьютера\имя_очереди. Указанный компьютер должен быть доступен в момент выполнения конфигурируемой задачи. В противном случае ее рабо та завершится неудачно и будет вьщано сообщение об ошибке. Кроме того, на указанном компьютере должен быть установлен клиент Message Queue Services, который и станет непосредственно принимать данные. Имена оче редей, указываемых на отправителе и получателе, должны совпадать.

Мы перечислили элементы управления, используемые как при конфигурировании отправки, так и при приеме данных. Элементы управления, расположенные ниже рассмотренных, являются специфичными для выбранного режима работы задачи.

Как уже было сказано, если конфигурируется отправка данных, то в нижней части окна расположена лишь таблица Message to be sent (см. рис. 11.70), содержащая список отправляемых сообщений с указанием их типа. В колонке Number ука зывается номер отправляемого сообщения, тогда как его тип отображается в колонке Message Type. Для редактирования свойств сообщения достаточно два жды щелкнуть на его имени или нажать кнопку Edit. Удаление же сообщения выполняется с помощью кнопки Delete. Для создания нового сообщения пред назначено окно Message Queue Message Properties (рис. 11.71), открыть которое можно с помощью кнопки Add.

Рис. 11.71. Окно Message Queue Message Properties При создании нового сообщения достаточно выбрать его тип и сконфигуриро вать данные, которые будут отправляться. Тип сообщения выбирается с помо щью раскрывающегося списка Message type, содержащего следующие элементы:

П Data File Message — отправка файлов. В этом случае в нижней части окна появится строка File name, в которой необходимо будет указать имя и путь к отправляемому файлу. Разрешается пересылка не только файлов, располо женных на локальных дисках, но и файлов, расположенных на сетевых ре сурсах.

Глава 11. Доступ к гетерогенным источникам данных П Global Variables Message — отправка глобальных переменных. В этом случае окно Message Queue Message Properties будет иметь вид, подобный приве денному на рис. 11.72. Конфигурирование отправляемых переменных осуще ствляется с помощью таблицы Global variables. Каждая строка таблицы соот ветствует одной из отправляемых глобальных переменных текущего пакета.

По умолчанию таблица Global variables является пустой. После нажатия кнопки New в таблицу добавляется новая строка. В этой строке в колонке Name пользователь должен выбрать имя одной из глобальных переменных текущего пакета, которую необходимо отправить. В колонках Туре и Value указываются, соответственно, тип и значение по умолчанию выбранной пе ременной. Управление глобальными переменными пакета (удаление, моди фикация и создание) осуществляется с помощью окна Global Variables (см. рис. 11.40), открыть которое можно с помощью кнопки Create Global Variables. Работа с этим окном была рассмотрена в разд. "Параметрюирован ные запросы"ранее в этой главе.

• String Message — отправка текстовых строк. При выборе в списке этого пункта окно Message Queue Message Properties имеет вид, приведенный на рис. 11.71. Как видно, в этом случае окно содержит всего одно поле String message, в котором пользователь должен указать отправляемый текст.

Рис. 11.72. Окно Message Queue Message Properties На этом рассмотрение конфигурирования отправки сообщений можно считать оконченным. Теперь же перейдем к рассмотрению приема сообщений. Чтобы использовать задачу Message Queue Task для приема сообщений, в окне Message Queue Task Properties (см. рис. 11.70) в раскрывающемся списке Message следует выбрать значение Receive messages. В этом случае окно Message Queue Task Properties примет вид, приведенный на рис. 11.73.

Часть III. Администрирование Рис. 11.73. Окно Message Queue Task Properties Как уже стало ясно, с помощью одной задачи Message Queue Task можно отпра вить данные трех типов: строки, глобальные переменные и файлы. Соответст венно, за один раз можно принять также данные всех трех типов. Конфигуриро вание приема каждого типа данных осуществляется отдельно. В раскрываю щемся списке Message type пользователь должен задать тип сообщений, свойст ва приема которых необходимо настроить. В зависимости от того, какой эле мент выбран в этом списке, будет меняться и набор элементов.

Для управления свойствами приема файлов (Data File Message) используется набор элементов управления:

• Save file as. В этом поле указываются путь и имя, под которым будет сохранен* принятый файл. Файл можно сохранить как локально, так и на сетевом ресурсе.

• Overwrite. Если задача выполняется не впервые, то вполне возможно, что по указанному в предыдущем поле пути уже будет существовать файл. По умол чанию предварительное удаление старого файла перед записью нового не выполняется. В этом случае, если указанный в поле Save file as файл уже су ществует, то будет выдано сообщение об ошибке. Установка рассматривае мого флажка предписывает выполнить удаление имеющегося файла перед записью нового.

• Only receive message from a specific package or version. В одну и ту же очередь могут быть помещены файлы из различных пакетов. Если необходимо гаран тировать, что файл будет получен от конкретного пакета, то можно воспользо ваться рассматриваемым переключателем для указания идентификатора кон кретного пакета, от которого будет разрешено принимать файл. Более того, можно даже указать конкретную версию пакета, от которой будет приниматься файл. Переключатель может быть установлен в следующие положения:

Глава 11. Доступ к гетерогенным источникам данных • No filter — в этом случае никакие дополнительные ограничения налагать ся не будут. То есть разрешается прием файлов от любой версии любого пакета, выполняемого на компьютере, указанном в имени очереди (поле Queue);

• From package — при установке переключателя в данное положение стано вится доступным поле Identifier, где нужно указать идентификатор пакета, от которого будет разрешено принимать файлы. Идентификатор пред ставляет собой длинное шестнадцатеричное число вроде (CF94A366-1302 4 3 6 6 - A 0 3 7 - A 5 9 F A F F 6 D 4 0 0 }. Вряд ли кто станет запоминать подобные идентификаторы, тем более что можно воспользоваться браузером паке тов для выбора идентификатора нужного пакета. Открыть браузер можно с помощью кнопки ^А, расположенной справа от поля Identifier. Прием файлов разрешается от любой версии указанного пакета. То есть даже ес ли впоследствии в выбранный пакет будут внесены значительные измене ния, прием файлов не будет нарушен;

From version — в этом случае разрешается прием файлов только от кон • кретной версии указанного пакета. То есть при внесении даже незначи тельных изменений в пакет-отправитель прием файлов со стороны паке та-получателя выполняться не будет. Дело в том, что при внесении любых изменений для пакета генерируется новый идентификатор версии. По добное строгое ограничение позволяет гарантировать, что вы принимаете именно те файлы, которые хотите. При внесении изменений в задачу Message Queue Task (например, в имя отправляемого файла) в пакете отправителе прием сообщений будет нарушен. Идентификатор версии, от которой предполагается принимать файл, указывается в поле Identifier.

Для просмотра списка доступных пакетов и их версий также можно вос пользоваться браузером пакетов.

• Identifier. Поле становится доступным только при установке переключателя Only receive message from a specific package or version в положение From package или From version. Как уже было сказано, в поле Identifier указывается идентификатор пакета или конкретной версии, от которых будет разрешен прием файлов.

• Remove from message queue. По умолчанию полученные данные сохраняются в очереди в структурах службы Message Queue Services. Это можно сравнить с хранением уже отправленных на печать заданий. Однако хранение множества больших файлов может привести к определенным проблемам, например, не достаче ресурсов. Во избежание подобных проблем можно выполнять удале ние полученных файлов. Для этого достаточно всего-навсего установить рас сматриваемый флажок. После успешного завершения выполнения задачи Message Queue Task из очереди будут удалены все обработанные сообщения.

• Time out after. По умолчанию задача Message Queue Task ожидает неопределен ное время получения данных от отправителя. В принципе, к моменту запуска задания в очереди уже могут находиться одно или более сообщений, которые и будут обработаны задачей. Тем не менее, когда очередь пуста, можно ограни 446 Часть III. Администрирование чить время ожидания получения сообщений, установив рассматриваемый фла жок. В этом случае нужно будет указать количество секунд, в течение которого задача будет ожидать получения данных. Можно установить период ожидания от 1 до 9999 секунд. Если в течение указанного времени ни одно сообщение получено не будет, то задача заканчивается неудачно.

(" Замечание J Последние два элемента управления являются общими для всех трех типов прини маемых сообщений. Конфигурирование приема строк и глобальных переменных прин ципиальных отличий от рассмотренного конфигурирования приема файлов не имеет.

На этом конфигурирование задачи Message Queue Task можно считать рассмот ренным.

Задача Transfer Error Messages Task При разработке больших профессиональных приложений активно используются определяемые пользователем сообщения об ошибках (user-defined error messages).

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

При работе с SQL Server 7.0 пользователь должен был вручную создавать на сервере-получателе все необходимые сообщения об ошибках заново. Механизмы DTS SQL Server 2000 позволяют выполнять копирование сообщений об ошибках автоматически. Для этого предназначена задача Transfer Error Messages Task.

Окно свойств задачи Transfer Error Messages Task имеет три вкладки. Первая из них — Source (рис. 11.74) — предназначена для указания имени исходного сер вера, с которого будет производиться выкачивание имеющихся сообщений об ошибках.

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

Отметим, что задача Transfer Error Messages Task может работать не только с серверами SQL Server 2000, но и с серверами SQL Server 7.0.

На вкладке Destination пользователь должен указать сервер, на который будет осуществляться закачка сообщений об ошибках с SQL Server, выбранного на вкладке Source. Состав и назначение элементов управления, имеющихся на вкладке Destination, полностью соответствует вкладке Source.

Глава 11. Доступ к гетерогенным источникам данных Рис. 11.74. Окно Transfer Error Messages, вкладка General Интерес представляет вкладка Error Messages (рис. 11.75), с помощью которой можно ограничить диапазон копируемых сообщений, для чего используется пе реключатель Error Message Copy Option, который может быть установлен в одно из положений:

П All error messages detected at package runtime. В этом случае будут пересылать ся все сообщения, возникающие в ходе выполнения пакета.

• Selected error messages. При установке переключателя в это положение мож но сконфигурировать пересылку только определенных пользовательских со общений об ошибках (user-definer error messages). Подобные сообщения гене рируются не SQL Server 2000, а написанными пользователем хранимыми процедурами, триггерами, пакетами и т. д. Таким образом, пользователь мо жет пересылать только те сообщения, которые свидетельствуют о конкрет ных сбоях в работе.

В верхней части вкладки находится таблица User-defined error messages, которая становится доступной только при установке описанного выше переключателя в положение Selected error messages. В таблице содержится список всех пользова тельских сообщений об ошибках, созданных на сервере, выбранном на вкладке Source. В колонке Error указывается номер сообщения. В этой же колонке со держится флажок, установка которого предписывает пересылать соответствую щие сообщения об ошибках на сервер, выбранный на вкладке Destination. Для разрешения копирования всех сообщений (установки всех флажков) можно вос пользоваться кнопкой Select АЛ. Соответственно, для сброса всех флажков ис пользуется кнопка Clear All.

с Замечание Пользовательские сообщения начинаются с номера 50 000. Для создания нового сообщения предназначена системная хранимая процедура s p a d d m e s s a g e. Список Часть III. Администрирование сообщений, имеющихся на сервере, хранится в таблице sysmessages системной базы данных Master.

Рис. 11.75. Окно Transfer Error Messages, вкладка Error Messages В колонке Severity указывается уровень серьезности (severity) соответствующей ошибки. Текст сообщения указывается в колонке Message. В колонке LanguagelD приводится идентификатор языка, на котором создано сообщение.

Сообщение с одним и тем же номером может быть указано более одного раза, если используются разные языки. В колонке Status показывается информация о состоянии соответствующего сообщения об ошибке.

с Замечание Ошибками с уровнем серьезности меньше 19 могут управлять все пользователи, но только пользователь, обладающий правами системного администратора (system administrator), может управлять ошибками с уровнем серьезности с 19 по 25, кото рые являются фатальными для системы.

На этом рассмотрение работы с задачей Transfer Error Messages Task можно счи тать оконченным.

Задача Transfer Databases Task В одном из предыдущих разделов мы рассматривали работу с задачей Copy SQL Server Objects Task, предназначенной для копирования объектов и информации между двумя базами данных SQL Server. Этот процесс копирования выполнялся в несколько этапов:

• генерирование сценария, с помощью которого были созданы выбранные для копирования объекты исходной базы данных;

Глава 11. Доступ к гетерогенным источникам данных О выполнение на сервере-получателе сценария, сгенерированного на предыду щем этапе, что приводит к созданию всех объектов, выбранных для копиро вания;

• копирование данных из таблиц источника в таблицы получателя.

Как видно, задача Copy SQL Server Objects Task дублирует в базе данных получателе все действия, выполненные в свое время в базе данных-источнике.

Однако копирование баз данных может быть выполнено и другими способами.

В составе DTS имеется задача Transfer Databases Task, которая осуществляет ко пирование баз данных на уровне файлов базы данных, а не на уровне объектов, как это выполняет задача Copy SQL Server Objects Task.

Окно свойств задачи Copy SQL Server Objects Task имеет четыре вкладки. Две первые из них имеют имена Source и Destination и предназначены, соответст венно, для конфигурирования источника и получателя. Ранее уже не раз была рассмотрена работа с подобными вкладками, и поэтому мы не будем лишний раз останавливаться на этом, а перейдем сразу к вкладке Databases (рис. 11.76).

Рис. 11.76. Окно Transfer Databases, вкладка Databases Как видно, основное пространство на вкладке занимает таблица Databases, с помощью которой пользователь может выбрать для копирования одну или более баз данных с сервера-источника. Каждая база данных (включая системные), имеющаяся на сервере-источнике, представлена отдельной строкой. В колонке Source:ServerName указывается имя базы данных, тогда как в колонке Destination:ServerName отображается статус возможности копирования или пе реноса базы данных. Значение ОК свидетельствует о возможности копирования базы данных. Если на сервере-получателе существует база данных с именем, совпадающим с именем базы данных источника, то в соответствующей строке таблицы Databases в колонке Destination:ServerName будет указано Already exists, Часть III. Администрирование а в колонках Move и Сору будут отсутствовать флажки. Для системных баз дан ных будет указано System database, и также будут отсутствовать флажки в ко лонках Move и Сору. Таким образом, копирование системных баз данных с сов падающими именами будет невозможно.

Задача Copy SQL Server Objects Task позволяет не только копировать, но и пе ремещать базы данных с одного сервера на другой. Перемещенная база данных после успешного копирования на получателя будет удалена с сервера-источ ника. Для копирования базы данных необходимо установить флажок в столбце Сору, тогда как для выполнения перемещения нужно установить флажок Move Отметим, что для каждой базы данных возможна установка только одного из флажков. При попытке установки второго флажка первый автоматически сбра сывается. В нижней части вкладки расположена кнопка Refresh, с помощью ко торой можно обновить список баз данных сервера-источника.

Как было сказано ранее, при работе с задачей Copy SQL Server Objects Task ко пирование базы данных выполняется на физическом уровне. То есть происходит копирование на сервер-получатель всех файлов, из которых состоит база дан ных, а затем выполняется присоединение (attach) скопированной базы данных Таким образом, задача Copy SQL Server Objects Task оперирует лишь файлами базы данных. С помощью вкладки File locations (рис. 11.77) пользователь может внести некоторые изменения в процесс копирования файлов. В верхней части вкладки имеется таблица, с помощью которой можно оценить какой объем дискового пространства потребуется для скопированных баз данных. В столбце Files указывается тип копируемых файлов. Возможны следующие варианты:

П Data files — файлы с данными (имеют расширения mdf и ndf);

О Log files - файлы журнала транзакций (имеют расширение ldf).

Рис. 11.77. Окно Transfer Databases, вкладка File locations Глава 11. Доступ к гетерогенным источникам данных В столбце Destinations drives указывается логический диск получателя, на кото ром предполагается сохранить копируемые файлы баз данных. Файлы базы дан ных будут размещены по адресу, указанному в полях Default data directory (файлы данных mdf и ndf) и Default log directory (файлы журнала транзакций ldf) на вкладке Database Settings окна свойств сервера. Работа со вкладкой Database Settings была описана в разд. "Вкладка Database Settings" главы 8, В столбце Size указывается объем дискового пространства, который потребуется для хранения файлов на соответствующем диске. Если места на диске, приве денном в столбце Destinations drives, меньше чем указано в столбце Size, то в колонке Status будет выведен красный крестик. Если места достаточно, то будет выведена галочка.

В случае, когда места на диске не хватает, можно попробовать освободить до полнительное пространство, удалив ненужные файлы или перенеся часть фай лов на другой диск. Для получения новой информации об объеме дискового пространства необходимо нажать кнопку Refresh. Другим способом решения проблемы с нехваткой пространства на диске является перенос части файлов баз данных на другой диск. Эта операция выполняется с помощью окна Database files (рис. 11.78), открыть которое можно с помощью кнопки Modify.

Рис. 11.78. Окно Database files Окно Database files разделено на две части. В нижней части находится таблица, с помощью которой можно получить сведения об объеме доступного простран Часть III. Администрирование ства на каждом из локальных дисков, а также узнать, сколько места требуется на каждом из них для размещения файлов копируемых баз данных. Имя диска отображается в колонке Drive, тогда как объем свободного и необходимого про странства отображается, соответственно, в колонках Available Space и Required Space. Для обновления значений в двух последних колонках можно использо вать кнопку Refresh.

С помощью таблицы, расположенной в верхней части окна, можно изменять местоположение файлов баз данных. В таблице приведена информация о файлах всех баз данных, предназначенных для копирования или переноса. Каждая строка соответствует одному из файлов какой-нибудь базы данных. В колонке Database указывается имя базы данных, которой принадлежит соответствующий файл. Собственно имя файла, которое будет ему присвоено на сервере-полу чателе после копирования, отображается в колонке Source Files. По умолчанию предлагается то же имя, что имел файл на сервере-источнике, однако пользова тель может задать любое другое. Каталог, в который будет помещен файл, ука зывается в колонке Destination. При необходимости, пользователь может опре делить для хранения файла любой другой каталог или диск, чем предлагаемые по умолчанию. Можно ввести информацию либо вручную, либо с помощью ок на CDW (рис. 11.79), открыть которое можно, щелкнув по серой кнопке в левой части поля Destination.

Рис. 11.79. Окно CDW Размер соответствующего файла отображается в колонке Size. С помощью ко лонки Status можно получить информацию о возможности копирования файла под заданным именем в указанный каталог. Если в колонке для файла содер жится красный крестик, то либо на выбранном диске не хватает пространства, Глава 11. Доступ к гетерогенным источникам данных либо в указанном каталоге уже имеется файл с именем, приведенным в колонке Source Files.

На этом работа с окном Database files заканчивается. После нажатия кнопки ОК пользователь снова попадет на вкладку File locations окна Transfer Database Task Properties (см. рис. 11.77). После того, как в столбце Status на вкладке File locations во всех строках появится зеленая галочка, конфигурирование всей за дачи можно считать законченным. Остается только нажать кнопку ОК.

Задача Transfer Master Stored Procedures Task Рассматриваемая задача используется для копирования хранимых процедур с рав ного сервера (master server) на другие серверы. Конфигурирование этой задачи практически не отличается от конфигурирования задачи Transfer Error Messages Task. Окно свойств задачи Transfer Master Stored Procedures Task (рис. 11.80) имеет три вкладки. Конфигурирование вкладок Source и Destination не представляет особых затруднений. Интерес вызывает вкладка Stored Procedures, с помощью ко торой пользователь может ограничить список копируемых хранимых процедур.

Это выполняется точно так же, как и ограничение списка копируемых сообщений при работе с задачей Transfer Error Messages Task.

Рис. 11.80. Окно Transfer Master Stored Procedures Задача Transfer Jobs Task С помощью задачи Transfer Jobs Task можно копировать задания SQLSen'eiAgent между серверами SQL Server. Как и для предыдущей задачи, окно свойств зада чи Transfer Jobs Task имеет три вкладки, и первые две из них используются для конфигурирования источника и получателя заданий. Сразу же перейдем к рас 454 Часть III. Администрирование смотрению вкладки Jobs (рис. 11.81), т. к. работа с двумя другими вкладками рассматривалась уже не раз.

Рис. 1 1. 8 1. Окно свойств задачи Transfer Jobs Task С помощью переключателя Jobs Copy Option можно разрешить либо копирова ние всех заданий, либо только выборочных:

• All jobs detected at package runtime. Будут скопироЁаны все задания, обнару женные в момент выполнения пакета.

П Selected jobs. Будет выполняться копирование только определенных заданий.

Выбор заданий для копирования осуществляется с помощью таблицы, рас положенной в верхней части вкладки. Эта таблица становится доступной только при установке переключателя в рассматриваемое положение. Каждое задание, имеющееся на сервере-источнике, представлено отдельной строкой.

Отмечая флажок в колонке Source, вы тем самым предписываете скопиро вать соответствующее задание.

После того, как будет определен список копируемых заданий, конфигурирова ние задачи Transfer Jobs Task можно считать оконченным.

Задача Transfer Logins Task Если вы интенсивно используете копирование объектов, то наверняка вам по требуется продублировать не только объекты, но и информацию системы безо пасности, а именно, учетные записи и пользователей баз данных. Без копирова ния этой информации, скорее всего, вам придется вручную создавать на сервере получателе все необходимые учетные записи-и пользователей базы данных. В некоторых случаях требуется обязательный перенос пользователей базы данных, поскольку без этой процедуры невозможно будет перенести объекты самой базы данных, принадлежащие соответствующим пользователям.

Глава 11. Доступ к гетерогенным источникам данных При выполнении копирования баз данных с помощью задачи Transfer Database Task автоматически будет перенесена вся информация о пользователях, созданных в копируемых базах данных. Однако, эти пользователи должны быть связаны с учетными записями. Связывание выполняется на основе идентификатора безопас ности (SID, security ID) учетной записи. Однако задача Transfer Database Task не копирует учетные записи. То есть вполне может оказаться, что хотя в базе данных и будут существовать пользователи, реально они работать не будут, т. к. связь с учетными записями окажется нарушенной. Для избежания подобных проблем следует дополнительно выполнить и копирование учетных записей. Мы рассмот рели лишь один вариант, когда требуется скопировать учетные записи с одного сервера на другой. Однако легко можно привести еще несколько примеров.

Копирование учетных записей можно выполнить с помощью задачи Transfer Logins Task. При работе с SQL Server 7.0 администратор должен был выполнять эту работу вручную, что заметно усложняло его жизнь. Окно свойств задачи Transfer Logins Task имеет три вкладки: Source, Destination и Logins. Работа с первыми двумя вкладками уже не раз рассматривалась, и поэтому мы сразу пе рейдем к вкладке Logins (рис. 11.82).

Рис. 11.82. Окно свойств задачи Transfer Logins Task Вкладка Logins предназначена для управления диапазоном копируемых учетных записей и пользователей базы данных. По умолчанию предлагается скопировать все учетные записи, которые будут обнаружены на сервере в момент выполне ния задачи (переключатель Logins Copy Option установлен в положение АИ server logins detected at package runtime). Если же необходимо скопировать лишь учет ные записи, имеющие отображение в конкретную базу данных, то указанный переключатель должен быть установлен в положение Logins for selected databases. В этом случае становится доступной таблица в верхней части вкладки.

Каждая строка данной таблицы соответствует одной из баз данных, имеющихся на сервере-источнике, т. е. на сервере, указанном на вкладке Source. Установка Часть III. Администрирование флажка в левой части строки предписывает скопировать учетные записи, ото бражаемые в пользователей соответствующей базы данных. С помощью кнопок Select All и Clear All можно, соответственно, установить и сбросить флажки для всех баз данных.

После того, как будут выбраны все базы данных, конфигурирование задачи Transfer Logins Task заканчивается.

Задача Dynamic Properties Task К настоящему моменту уже стало ясно, что пакет DTS представляет собой до вольно сложный объект, имеющий множество свойств. Более того, все соедине ния и задачи, определенные в пакете и являющиеся его частью, еще более утяже ляют этот набор свойств и методов. При конфигурировании пакета с помощью DTS Designer пользователь может изменять любые свойства как самого пакета, так и входящих в него соединений и задач. Однако, иногда требуется изменять неко торые свойства в ходе выполнения пакета. При работе с SQL Server 7.0 это было довольно сложно и связано с определенными проблемами. В SQL Server управление свойствами пакета в ходе выполнения осуществляется довольно легко с помощью задачи Dynamic Properties Task. Эта задача была специально разрабо тана для легкого изменения свойств пакета в ходе его выполнения. Более того, используя отношения предшествования, можно по разному изменять свойства в зависимости от результата выполнения той или иной задачи.

Рис. 11.83. Окно свойств задачи Dynamic Properties Task Глава 11. Доступ к гетерогенным источникам данных Как видно, окно свойств задачи (рис. 11.83) состоит из одной вкладки и являет ся довольно простым. В верхней части окна расположено поле Description для указания имени, по которому конфигурируемая задача будет идентифицировать ся в пакете. Это имя должно быть уникальным в пределах пакета. Основное пространство в окне занимает таблица Change list, содержащая все свойства, которые будут изменяться конфигурируемой задачей. По умолчанию таблица пуста. Для добавления новой строки (т. е. для конфигурирования изменения того или иного свойства), требуется нажать кнопку Add. В ответ откроется окно Dynamic Properties Task:Package Properties (рис. 11.84).

Рис. 11.84. Окно Dynamic Properties Task:Package Properties В окне Dynamic Properties Task:Package Properties перечислены все свойства, используемые в работе пакета. Помимо свойств собственно пакета, в окне также приводится список свойств всех соединений, задач, отношений предшествова ния и глобальные переменные, определенные в пакете. Как видно из рисунка, окно разделено на две части. В левой части отображается иерархия объектов пакета. Корнем является собственно пакет. На втором уровне иерархии присут ствуют следующие объекты:

• Connections. Этот контейнер содержит список всех соединений, определен ных в пакете. Собственно объект Connections не имеет никаких свойств. Од нако, открыв его, можно получить доступ к свойствам соединений.

Часть III. Администрирование О Tasks содержит список всех задач.

• Steps включает список отношений предшествования, определенных в пакете.

• Global Variables содержит список всех глобальных переменных, имеющихся в пакете.

с Замечание С помощью окна Dynamic Properties Task:Package Properties нельзя ни удалить объект, ни создать новый. Пользователь может лишь выбрать одно из имеющихся свойств и указать для него значение, которое должно быть присвоено выбранному свойству при выполнении конфигурируемой задачи.

В правой части окна отображается набор свойств объекта, выбранного в левой части окна. Информация о свойствах выводится в виде таблицы, имеющей ко лонки Property Name и Default Value. Первая из них содержит имя свойства, тогда как во второй выводится значение этого свойства, присвоенное по умол чанию. Каждая строка таблицы соответствует отдельному свойству объекта.

Пользователь не имеет права изменять набор свойств, а может только изменять их значения.

Для присвоения свойству нового значения необходимо выбрать его в правой части окна и нажать кнопку Set (или просто дважды щелкнуть на имени нуж ного свойства). В ответ откроется окно Add/Edit Assignment (рис. 11.85). В по мощью этого окна пользователь должен указать значение, которое будет при своено соответствующему свойству в ходе выполнения конфигурируемой задачи.

Рис. 11.85. Окно Add/Edit Assignment для присвоения значений на основе INI-файлов Глава 11. Доступ к гетерогенным источникам данных С помощью списка Source пользователь должен выбрать способ получения зна чения, которое будет присвоено соответствующему свойству. В зависимости от того, какой способ выбран, меняется набор элементов управления в группе Source information. В распоряжении пользователя имеются следующие способы:

П INI File используется для присвоения значений на основе INI-файлов (см. рис. 11.85). При выборе этого способа получения значений для присвое ния, пользователь должен указать имя и путь к INI-файлу (поле File), из ко торого должно быть извлечено значение для конфигурируемого свойства.

Помимо собственно имени файла, необходимо определить секцию (список Section) и ключ (список Key), в котором находится нужное значение. Ука занные списки автоматически обновляются при выборе файла. В поле Preview отображается значение, которое содержится по указанному адресу.

Данное значение и будет присвоено соответствующему свойству. С помощью кнопки Refresh можно обновить информацию в поле Preview.

Рис. 11.86. Окно Add/Edit Assignment для присвоения значений на основе запроса О Query. При выборе этого пункта окно примет вид, подобный приведенному на рис. 11.86. В этом случае значение для присвоения получается в результа те выполнения обычного запроса Transact-SQL. При конфигурировании за проса в первую очередь необходимо в раскрывающемся списке Connection выбрать имя одного из источников данных, определенных в пакете. В кон тексте этого источника и будет выполняться запрос. Собственно код запроса указывается в поле Query. Пользователь может ввести код либо вручную, ли бо подгрузить готовый с диска, воспользовавшись кнопкой Browse. К сожа лению, генерирование запроса с помощью построителя запросов Query Builder не реализовано. Нажав кнопку Parse, можно проверить синтаксис Часть III. Администрирование введенного запроса. Запрос должен возвращать единственное значение, т. е.

результат выборки должен состоять из одного столбца и одной строки. Если запрос возвращает лишние данные, то они будут проигнорированы. В поле Preview отображается значение, возвращаемое запросом. Значение в этом по ле не обновляется автоматически при внесении изменений в запрос. Пользо ватель должен принудительно обновлять значение с помощью кнопки Refresh всякий раз, когда он модифицирует запрос.

О Global Variable. В этом случае свойству будет присваиваться значение гло бальной переменной. Окно Add/Edit Assignment примет вид, подобный при веденному на рис. 11.87. При конфигурировании присвоения пользователь должен всего-навсего задать имя интересующей переменной в раскрываю щемся списке Variable, который содержит список всех определенных в паке те глобальных переменных. В поле Preview отображается значение, которое присвоено выбранной переменной по умолчанию. В ходе выполнения задач пакета это значение может изменяться.

Рис. 11.87. Окно Add/Edit Assignment для присвоения значений на основе Global Variable О Environment Variable. Этот пункт применяется, когда необходимо присвоить свойству значение, хранящееся в переменной окружения операционной сис темы. Использование переменных окружения является, по всей видимости, простейшим способом обмена информацией между утилитами командной строки (или любым приложением Win32) и пакетом DTS. В одном из преды дущих разделов была описана работа с задачей Execute Process Task, с помо щью которой можно запускать на выполнение обычные приложения опера ционной системы. Эти приложения могут изменять значения переменных окружения, чтобы передать в пакет DTS какую-то информацию. При выборе Глава 11. Доступ к гетерогенным источникам данных в списке Source пункта Environment Variable окно Add/Edit Assignment примет вид, подобный приведенному на рис. 11.88. В раскрывающемся списке Variable будут перечислены все переменные окружения, доступные на мо мент конфигурирования. В поле Preview отображается значение соответст вующей переменной окружения.

С Замечание Просмотреть список переменных окружения, а также их значения, можно с помощью команды SET, выполнив ее в командной строке. С помощью этой же команды можно создать новую переменную или присвоить значение существующей.

Рис. 1 1. 8 8. Окно Add/Edit Assignment для присвоения значений на основе Environment Variable П Constant. Данный пункт выбирается, когда необходимо присвоить свойству конкретное значение, заданное константой. Окно Add/Edit Assignment имеет вид, как на рис. 11.89. В поле Constant пользователь должен указать значе ние, которое необходимо присвоить свойству. Дополнительно пользователь может выбрать значение одной из констант пакета, воспользовавшись окном Select Enumeration Value (рис. 11.90). Это окно можно открыть с помощью кнопки Select.

• Data File. Этот пункт используется, если необходимо присвоить свойству со держимое одного из файлов. Например, можно присвоить глобальной пере менной пакета содержимое текстового файла и вставить его в столбец табли цы. При выборе рассматриваемого пункта окно Add/Edit Assignment будет иметь вид, как на рис. 11.91. Пользователь должен будет указать в поле File имя файла, содержимое которого необходимо присвоить свойству пакета.

Часть III. Администрирование Это содержимое будет отображено в поле Preview. Если в файл были внесены изменения, то обновить поле можно с помощью кнопки Refresh.

Рис. 11.89. Окно Add/Edit Assignment для присвоения значений на основе Constant Рис. 11.90. Окно Select Enumeration Value Каждое изменяемое свойство отображается отдельной строкой в окне Dynamic Properties Task:Package Properties (см. рис. 11.84). После того, как будут указаны значения для всех свойств, которые необходимо изменить, конфигурирование задачи Dynamic Properties Task заканчивается. Мы не будем рассматривать вари анты использования этой задачи, т. к. их очень большое количество, а оставим это на самостоятельное изучение пользователя.

Глава 11. Доступ к гетерогенным источникам данных Рис. 11.91. Окно Add/Edit Assignment Отношения предшествования В предыдущих разделах были описаны задачи, которые может применять пользо ватель при создании пакета DTS. Задачи, имеющиеся в пакете, могут выполняться либо независимо друг от друга, либо в определенной последовательности. В пер вом случае работа каждой из задач начинается в момент запуска пакета. Когда будет закончено выполнение последней задачи, работа всего пакета DTS будет завершена. Однако, подобный подход используется лишь при работе с простыми пакетами, содержащими 1—3 задачи. При создании больших пакетов, включаю щих множество задач, скорее всего, вам потребуется выполнять задачи в опреде ленной последовательности. Например, если в задаче Data Driven Query Task при меняется параметризированный запрос, то перед выполнением этой задачи необходимо присвоить значение глобальным переменным, которые отображаются в параметры запроса. Этим переменным могут быть присвоены значения пере менных окружения операционной системы, которые изменяются при выполнении пакетного файла. Таким образом, выстраивается следующая цепочка:

1. Запускается задача Execute Process Task, с помощью которой выполняется пакетный файл (bat). Этот файл изменяет значения переменных окружения операционной системы в зависимости от тех или иных обстоятельств.

2. Запускается задача Dynamic Properties Task, которая осуществляет присваи вание глобальной переменной значения переменной окружения.

3. Запускается задача Data Driven Query Task, в которой выполняется парамет ризированный запрос, использующий в качестве параметра значение гло бальной переменной пакета.

16 За*. 464 Часть III. Администрирование Приведенный пример показывает, что в некоторых случаях необходимо обеспе чить строгую последовательность выполнения задач пакета. Это требование мо жет быть реализовано с помощью отношений предшествования, определяющих порядок выполнения задач в пакете.

Отношение предшествования устанавливается между двумя задачами. Для опи сания отношений предшествования будем предполагать, что существуют задачи TaskA и TaskB и между ними определено отношение предшествования, причем задача TaskA запускается первой и от результата ее выполнения будет зависеть, станет ли работать задача TaskB. В распоряжении пользователя имются следую щие отношения предшествования:

• Безусловное (Unconditional) означает безусловное выполнение одной задачи после завершения другой. То есть задача TaskB будет выполнена всегда, не зависимо от результата завершения задачи TaskA. Этот тип отношения пред шествования используется, когда необходимо обязательно выполнить две за дачи, но в определенном порядке.

О Успешное (On Success). При использовании отношения предшествования данного типа задача TaskB будет выполнена только в том случае, когда задача TaskA успешно завершена. Это ограничение предшествования может приме няться, например, когда задача TaskA выполняет удаление таблицы, а задача TaskB — ее повторное создание. Таким образом, если таблица не будет уда лена, то система не станет пытаться ее создать, т. к. эта операция сразу же обречена на неудачу.

П Неудачное (On Failure). Это отношение предшествования используется, когда необходимо выполнить задачу TaskB в случае неудачного завершения задачи TaskA. Развивая предыдущий пример, в случае невозможности удаления таб лицы можно выполнить задачу, которая удаляет все строки и соответствую щим образом изменяет структуру таблицы.

Для определения отношения предшествования необходимо выбрать две задачи.

Причем от результата выполнения первой выбранной задачи будет зависеть, вы полнится ли вторая. После того, как задачи будут выбраны, остается только ука зать в меню Workflow нужный тип отношения предшествования. Можно также воспользоваться контекстным меню, выбрав в нем команду Workflow.

( Замечание ) Хотя и сказано, что необходимо выбрать две задачи, тем не менее, пользователь может определить и большее количество. В этом случае от результата выполнения первой выделенной задачи будет зависеть возможность выполнения всех осталь ных задач.

После выбора нужного типа отношения предшествования соответствующие за дачи окажутся соединенными линией. Причем со стороны подчиненной задачи линия будет иметь вид стрелки. В зависимости от используемого типа отноше ния предшествования меняется и цвет линии — On Completion отображается синим цветом, On Success — зеленым, On Failure — красным.

Глава 11. Доступ к гетерогенным источникам данных Каждое отношение предшествоэания имеет определенные свойства. Если дваж ды щелкнуть на соответствующей соединительной линии, изображающей отно шение предшествования, то откроется окно свойств этого отношения предшест вования (рис. 11.92).

Рис. 11.92. Окно Workflow Properties Сохранение пакета Когда все необходимые источники данных, задачи и отношения предшествования будут определены, остается только сохранить созданный пакет. Для этого доста точно нажать кнопку Save на панели инструментов или выбрать аналогичную ко манду в меню Package. При сохранении подобным образом только что созданного пакета будет выдано окно Save DTS Package (рис. П.93), с помощью которого необходимо указать некоторые параметры сохранения пакета. Если вы редактиро вали пакет и сохраняете его указанным способом, то окно Save DTS Package не появляется, и пакет сохраняется со свойствами, указанными ранее. Однако, мож но сохранить редактируемый пакет и с новыми свойствами (например, под другим именем), воспользовавшись командой Save as в меню Package.

Окно содержит ряд элементов управления, с помощью которых и определяются свойства сохранения пакета:

О Package name. В этом поле указывается имя, под которым будет сохранен пакет. Имя должно быть уникально в пределах хранилища, в которое запи сывается пакет.

16* 466 Часть III. Администрирование Рис. 11.93. Окно Save DTS Package О Owner password. В этом поле задается пароль владельца пакета. Пользователь, знающий пароль владельца, может вносить в пакет произвольные изменения.

Если пароль в этом поле не указан, то изменения в пакет может вносить лю бой пользователь.

• User password. Указывается пользовательский пароль. Данный пароль должен вводиться всякий раз, когда пакет будет запускаться. Знание этого пароля да ет пользователям возможность только выполнять пакет, но не изменять его.

О Location. С помощью этого раскрывающегося списка выбирается тип храни лища, в котором будет сохранен пакет. В зависимости от того, какой тип хранилища выбран в списке Location, будет изменяться набор элементов управления в нижней части окна. Мы рассматриваем набор элементов, кото рые выводятся при выборе в качестве хранилища SQL Server. В принципе, для хранилища SQL Server Meta Data Services выводится примерно такой же набор элементов управления. В распоряжении пользователя имеются сле ^дующие хранилища:

SQL Server — при выборе этого значения пакет будет сохранен в систем • ной таблице sysdtspackages базы данных Msdb;

SQL Server Meta Data Services — в этом случае пакет хранится в структу • рах службы метаданных SQL Server, что позволяет отслеживать изменение пакета,,его использование, потоки данных, которыми оперировал пакет, и некоторую другую информацию;

Structured Storage File — пакет будет сохранен в структурированном • СОМ-файле;

• Visual Basic File — пакет будет сохранен в файле Visual Basic.

Глава 11. Доступ к гетерогенным источникам данных • Server. В раскрывающемся списке можно выбрать имя сервера SQL Server, на котором будет сохранен пакет.

• Use Windows NT authentication. При установке переключателя в это положе ние для подключения к выбранному в списке Server серверу будет использо ваться аутентификация Windows NT.

П Use SQL Server Authentication. В этом случае для сохранения пакета для под ключения к серверу будет использоваться аутентификация SQL Server. В данной ситуации необходимо указать имя учетной записи (Username), кото рая будет участвовать в установлении соединения, а также пароль (Password) этой учетной записи.

Мы рассмотрели вид окна Save DTS Package (рис. 11.93), который оно имеет, когда пакет сохраняется в базе данных SQL Server или в структурах службы ме таданных SQL Server. При сохранении пакета в структурированном СОМ-файле или в файле Visual Basic окно Save DTS Package будет иметь другие элементы управления. В частности, необходимо будет указать имя пакета, описание, а также имя файла, в котором будет сохранен пакет.

Глава Автоматизация администрирования SQL Server Целью автоматизации администрирования любой системы в конечном счете является снижение ее стоимости владения (ТСО, Total Cost of Ownership).

В данную характеристику входит не только стоимость аппаратного и програм много обеспечения, но и затраты на ее обслуживание. Причем необходимо за метить, что стоимость аппаратной части составляет всего около 10—15% общей стоимости системы. Сокращение стоимости владения происходит за счет того, что часть работы администраторов перекладывается на саму систему. В итоге организация может позволить себе сократить штат персонала или использовать их усилия для решения более сложных и объемных задач.

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

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

При выборе конкретного продукта в качестве системы управления базами дан ных следует обращать внимание не только на цену, но и учесть, в какую сумму обойдется владение конечной системой. Сэкономив при покупке СУБД, можно затем потратить в несколько раз больше на поддержку и сопровождение этой системы. Система управления базами данных SQL Server 2000 является продук том, имеющим лучшее соотношение цена-производительность. На первый взгляд может показаться, что SQL Server 2000 дороже, чем другие аналогичные продукты, но выгода от его использования может перекрыть разницу в цене в несколько раз. Конечно, для небольших организаций может и не понадобиться такая мощная "молотилка" данных, как SQL Server 2000, и они вполне смогут обойтись небольшими, более дешевыми продуктами, но для больших организа ций SQL Server 2000 является наиболее выгодным продуктом.

Глава 12. Автоматизация администрирования SQL Server 2000 Архитектура системы автоматизации Одним из важнейших направлений корпорации Microsoft при создании совре менных продуктов является сведение к минимуму администрирования систем.

Это направление заметно во всех современных продуктах: MS Windows 2000, Exchange Server 2000 и многих других. Не является исключением и SQL Server 2000. Разработчики данного продукта позаботились о создании мощных инструментов, способных облегчить работу администратора.

Для этих же целей в архитектуру SQL Server 2000 были внесены и другие суще ственные изменения. Например, функции автоматического конфигурирования освобождают администратора от управления объемом оперативной памяти, вы деляемой серверу. SQL Server 2000 периодически анализирует работу операци онной системы и определяет, какой объем памяти необходимо выделить серверу баз данных, чтобы добиться наилучшей производительности всех запущенных приложений.


В настоящей главе будет рассмотрена специализированная подсистема SQL Server 2000, предназначенная для автоматического выполнения задач и контроля за работой сервера. Основы автоматического администрирования были заложе ны еще в SQL Server 6.x, однако, только начиная с SQL Server 7.0, стало воз можным полномасштабное автоматическое управление сервером. Подсистема автоматизации может решать не только простые одношаговые задачи, но и сложные, реализующие разветвленные алгоритмы. Кроме того, если в сети име ется несколько серверов SQL Server 2000, то подсистема администрирования может быть настроена таким образом, что одно задание будет автоматически выполняться на всех серверах сети.

Фундаментом подсистемы автоматического администрирования SQL Server является служба SQLServerAgent. Она представляет собой дополнение к SQL Server 2000, и ее запуск необязателен. Если в вашей организации не использует ся автоматическое администрирование, то служба SQLServerAgent может быть остановлена для освобождения ресурсов операционной системы. Однако для работы подсистемы репликации необходим запуск указанной службы. Подсис тема репликации автоматически создает набор вспомогательных задач, которые обеспечивают продолжительное функционирование серверов, освобождая не нужные ресурсы.

В архитектуре подсистемы автоматизации SQL Server 2000 существуют следую щие объекты:

• Jobs — задания;

• Alerts — оповещения;

• Operators — операторы.

( Замечание } Описание всех перечисленных объектов, созданных на локальном сервере, хранит ся в системной базе данных Msdb, которая используется только для работы службы 470 Часть III. Администрирование SQLServerAgent. Каждый раз при запуске этот агент анализирует содержимое базы данных Msdb и определяет, какие задания должны быть запущены.

Управление? подсистемой автоматизации осуществляется с помощью Enterprise Man ager. Если с помощью этой утилиты открыть дерево папок сервера, то среди них можно найти папку Management, в которой представлена служба SQLServerAgent.

Если щелкнуть на значке [У] слева в строке службы, то в раскрывшейся папке можно увидеть объекты Alerts, Operators и Jobs. При выборе любого из них в левой панели Enterprise Manager в правой отобразится список созданных в сис теме объектов автоматизации администрирования.

Рассмотрим более подробно назначение и использование каждого из объектов подсистемы автоматизации SQL Server 2000.

Задания Любая задача администрирования SQL Server 2000 может быть представлена в виде одного или более шагов, которые необходимо выполнить для ее решения.

Задания (jobs) представляют собой последовательный набор действий, которые нужно реализовать для решения той или иной задачи. Каждое задание состоит из одного или более шагов (steps). Шаг представляет собой минимальный набор действий, который может быть выполнен подсистемой автоматизации. В SQL Server 2000 существуют различные типы шагов, каждый из которых необходим для решения специализированных задач. Приведем эти типы.

• Transact-SQL Scripts (TSQL). Шаги этого типа состоят из одной или более команд Transact-SQL, в т. ч. и вызовов хранимых процедур. Для выполнения таких шагов служба SQLServerAgent подключается к службе MSSQLServer и передает ей набор команд.

• Operating System Command (CmdExec). Данный тип шагов используется для запуска утилит командной строки или приложений Windows. При выполне нии шагов этого типа запускается командный процессор cmd.exe для Win dows NT или command.com, если SQL Server 2000 работает под управлением Windows 95/98.

• Replication. Это набор шагов, необходимый для управления работой подсис темы репликации. В него входят:

Replication Snapshot — подготовка файлов моментальных снимков, файлов • схемы и сценариев;

• Queue Reader — чтение данных из очереди;

• Replication Transaction-Log Reader — чтение журнала транзакций на издателе;

• Replication Distributor — распространение данных подписчикам;

Replication Merge — выполнение сведения данных в одну копию.

• ( Замечание ) Более подробно подсистема репликации данных будет рассмотрена в главе 14.

Глава 12. Автоматизация администрирования SQL Server 2000 471_ П ActiveX Script. Шаги этого типа предназначены для выполнения действий, описанных на языках сценариев. В SQL Server 2000 автоматически поддер живаются языки VBScript и JavaScript. Кроме того, отдельно можно устано вить модули и для других языков, например для PerlScript.

На каждом сервере SQL Server 2000 может быть создано множество заданий. В свою очередь, любое задание способно состоять из нескольких шагов, причем в одном задании могут комбинироваться шаги самых различных типов. Разнооб разие типов шагов в SQL Server 2000 предоставляет администраторам громадные возможности гибкого управления автоматической работой сервера.

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

Когда все шаги определены и задание сконфигурировано, встает вопрос — а когда оно будет выполняться? Для каждого задания SQL Server 2000 позволяет опреде лить одно или более расписаний (schedules), в соответствии с которыми будет оп ределяться запуск этого задания. Задание может быть запущено не только в опре деленный администратором момент времени, но и во время наименьшей активности сервера, каждый раз при старте службы SQLServerAgent или единожды сразу же после создания. Кроме того, независимо от установленного расписания администратор может использовать ручной запуск (manual start) задания.

Оповещения SQL Server 2000 является сложной многофункциональной системой, состоящей из множества различных компонентов, каждый из которых влияет на работу системы в целом. Поэтому администратор должен периодически проверять их работу. Не всегда неправильное функционирование одного из компонентов ведет к отказу всей системы. В большинстве случаев происходит лишь снижение производитель ности работы сервера. Внешне система выглядит работоспособной, однако это впечатление обманчиво. Жалобы пользователей на слишком длительную обработ ку их запросов будут дополнительным свидетельством этого. Ко всему прочему, медленная обработка запросов влечет за собой увеличение времени блокирования объектов баз данных, что может помешать работе других пользователей с этими объектами. Кроме того, в этом случае повышается вероятность возникновения мертвых блокировок или тупиков (deadlocks) и других подобных проблем.

Помимо неполадок в работе самого SQL Server 2000, проблемы могут возник нуть и в функционировании операционной системы. Другой тип проблем связан с нехваткой ресурсов. Простейший пример — недостаток свободного дискового пространства. Если на диске, содержащем базу данных тетров, закончилось ме сто, то подключившиеся после этого пользователи не смогут выполнять слож 472 Часть III. Администрирование ные задачи обработки данных, требующие создания временных объектов. Не хватка места для роста любой базы данных (как системной, так и пользователь ской) приведет к проблемам.

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

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

SQL Server 2000 позволяет избавить администратора от "черной" работы по кон тролю за функционированием сервера, переложив ее на подсистему автоматиза ции администрирования. Для этого используются оповещения (alerts).

( Замечание ^ При создании оповещения необходимо указать событие, контролируемое им, и дей ствия, которые должны быть выполнены.

Оповещения представляют собой механизм, приводящий к выполнению запро граммированных администратором действий при наступлении в системе опреде ленного события (event). Событие представляет собой конкретное состояние системы, которое необходимо контролировать администратору. В качестве со бытия могут выступать ошибки в работе SQL Server 2000 или сбои в операцион ной системе. Кроме того, события могут быть сконфигурированы таким обра зом, что администратор сможет определить не только факт уже состоявшегося сбоя, но и предупредить его возникновение.

Например, администратор может не дожидаться, когда закончится место на диске, и работа пользователей будет остановлена. Он может сконфигурировать наступление события в случае уменьшения свободного пространства на диске менее 10%. Получив сигнал о наступлении критического состояния системы, администратор может вовремя предпринять действия к его устранению, а не дожидаться краха системы.

С~ Замечание ^ С помощью оповещений можно контролировать практически все аспекты работы SQL Server 2000, т. к. большая часть критических состояний сервера описана в виде оши бок, отображающихся в журнале приложений. Однако SQL Server 2000 позволяет так же создавать администратору собственные описания ошибок, которые могут быть ис пользованы для контроля работы пользователей и приложений с конкретной базы данных SQL Server 2000. Это возможно благодаря тому, что Transact-SQL дает воз можность генерировать ошибки с произвольным номером.

Строго говоря, подсистема автоматизации сама не анализирует работу сервера — она использует данные, полученные от других средств анализа функционирования системы. Для отслеживания наступления контролируемых событий служба SQLServerAgent периодически просматривает журнал приложений (application log).


Глава 12. Автоматизация администрирования SQL Server 2000 (~~ Замечание ) Журнал приложений ведется на уровне операционной системы. В нем отображается работа всех приложений, запущенных на локальном компьютере. Журнал приложе ний можно просмотреть с помощью утилиты Event Viewer, поставляемой в комплек те с Windows NT и устанавливаемой по умолчанию. Эту утилиту можно найти, нажав кнопку Start (Пуск), а затем выбрав в меью Programs (Программы) команду Admin istrative Tools (Средства администрирования).

При создании оповещения необходимо указать состояние, в котором должна находиться система, чтобы SQL Server 2000 автоматически инициализировал оповещение. Состояние системы можно описать тремя способами:

• Конкретная ошибка SQL Server 2000. Вызов оповещения происходит, если в журнале приложений встречается указанная ошибка.

• Серьезность ошибки SQL Server 2000. Если уровень серьезности (severity level) ошибки равен указанному или превышает его, то оповещение будет вызвано.

• Показания счетчика Performance Monitor. Вызов оповещения происходит в зависимости от показаний счетчиков производительности SQL Server 2000, используемых в работе утилиты Performance Monitor.

Необходимо пояснить, что же такое серьезность ошибки. Каждая ошибка SQL Server 2000 сопоставляется какому-то событию. Не обязательно ошибка является сбоем системы. Иногда это может быть просто информационное сообщение о работе сервера, деятельности пользователя или что-то другое. Но для обобще ния все эти сообщения принято называть ошибками. Чтобы как-то классифи цировать последствия той или иной ошибки на работу системы, было введено понятие уровня серьезности. Уровни серьезности нумеруются с нуля. Чем выше уровень, тем больше неприятностей доставит ошибка. Приведем перечень уров ней серьезности:

• 000 — Information;

• 001 — Miscellaneous System Information;

• 002—006 — Reserved;

П 007 — Notification: System Information;

П 008 — Notification: User Intervention Required;

• 009 - User Defined;

• 010 — Information;

• 011 — Specified Database Object Not Fount;

• 012 - Unused;

• 013 — User Transaction Syntax Error;

О 014 — Insufficient Permission;

• 015 - Syntax Error In SQL Statements;

О 016 — Miscellaneous User Error;

474 Часть III. Администрирование • 017 — Insufficient Resources;

• 018 — NonFatal Internal Error Detected;

• 019 — Fatal Error In Resource;

О 020 — Fatal Error In Current Process;

• 021 — Fatal Error In Database Process;

• 022 — Fatal Error: Table Integrity Suspect;

• 023 — Fatal Error: Database Integrity Suspect;

• 024 — Fatal Error: Hardware Error;

• 025 - Fatal Error.

Замечание Ошибками с уровнем серьезности меньше 019 могут управлять все пользователи, но только пользователь, имеющий права системного администратора (system ad ministrator), может отслеживать ошибки с уровнем серьезности с 019 по 025, которые являются фатальными для системы.

Если администратор установил контроль за наступлением какого-то события, создав оповещение, то в таблице s y s a l e r t s базы данных Msdb будет иметься соответствующая запись. Служба SQLServerAgent сравнивает данные из таблицы s y s a l e r t s с данными, полученными из журнала приложений. При нахождении совпадений служба выполняет действия, определенные администратором при создании оповещения.

SQL Server 2000 позволяет гибко определять реакцию системы в случае наступ ления запрограммированного события. Администратор может выбрать один или более следующих типов реакции:

• Выполнение задания (Execute job). Такая реакция системы на наступление со бытий позволяет предпринять конкретные шаги для устранения проблемы или для сведения к минимуму ущерба. При наступлении события будет выполнено задание Gob), которое должно быть предварительно создано. Чтобы избежать ненужного запуска этого задания, можно указать прошедшую дату. Задание может действовать как на уровне SQL Server 2000, так и на уровне операцион ной системы. Например, если необходимо увеличить размер журнала транзак ций, а места на диске нет, то эта проблема может быть решена двумя способа ми. Первый из них предполагает усечение (truncation) журнала транзакций и действует на уровне SQL Server 2000, тогда как второй предполагает удаление ненужных файлов с диска (работа на уровне операционной системы).

П Извещение оператора (Operators notify). Если проблема не может быть решена автоматически с помощью задания, то необходимо информировать оператора (operator) о ее возникновении. Кроме того, даже если решение проблемы производится автоматически с помощью задания, то для подстраховки мож но дополнительно отправить сообщение и оператору. Передача сообщений возможна тремя следующими способами:

Глава 12. Автоматизация администрирования SQL Server 2000 • e-mail — в этом случае оператору посылается письмо по электронной поч те по установленному адресу. Для реализации данной возможности необ ходимо соответствующим образом настроить систему электронной почты SQL Server;

pager — на пейджер оператора посылается текст сообщения об ошибке;

• net send — сообщение о наступлении события посылается с помощью • стандартной команды NET SEND В локальной сети.

С Замечание ) Сообщение может быть отправлено всеми тремя способами одновременно. Кроме того, можно установить отправку более одного сообщения.

О Перенаправление ошибок. (Message forwarding). Этот тип реакции применяется в организациях со множеством серверов SQL Server 2000. Если в организации работает единственный администратор, следящий за всеми серверами, то ему гораздо удобнее контролировать работу всех SQL Server 2000 централизованно, а не обслуживать каждый из них по отдельности. Это может быть реализовано с помощью перенаправления сообщения об ошибках. Сообщения из журнала при ложения (application log) локального сервера будут копироваться в журнал при ложений на удаленный компьютер. Просмотрев единственный журнал прило жений, администратор может получить полную картину о работе всех серверов сети и в случае обнаружения сбоев принять лучшее решение.

Как видно, SQL Server 2000 предоставляет большие возможности администрато ру как для обнаружения, так и для устранения неполадок в работе сервера. Гра мотное применение предоставляемых возможностей позволяет более эффектив но использовать потенциал администраторов. Более подробно конфигури рование оповещений будет рассмотрено далее в этой главе.

Операторы При описании оповещений мы уже упоминали операторов. В этом разделе именно им будет уделено все внимание. Оператор (operator) — это лицо, на ко торое возлагается ответственность за работу сервера и выполнение определен ных задач по управлению им. Не следует путать оператора с администратором.

Системный администратор имеет максимальные права по управлению работой SQL Server 2000, тогда как оператор имеет ограниченный набор прав, необходи мых для выполнения круга задач, за которые он отвечает.

Однако ничто не мешает использовать в качестве оператора системного админи стратора. Такой подход часто действует в небольших организациях, которые не могут позволить себе иметь отдельных людей для решения разных задач. Но в больших организациях требование к разделению обязанностей между обслужи вающим персоналом часто бывает обязательным. Каждый человек должен отве чать за ограниченный набор административных задач, но решать их он должен на высоком профессиональном уровне быстро и оперативно. Например, сотрудники Часть III. Администрирование могут отвечать за выполнение резервного копирования, обеспечение целостности баз данных или следить за использованием дискового пространства. Каждый из операторов должен получать сообщения от системы автоматизации, относящиеся к его обязанностям.

Сам по себе факт конфигурирования пользователя в качестве оператора не дает ему никаких дополнительных прав доступа. Оператор подсистемы автоматизации SQL Server 2000 лишь определяет способ информирования других сотрудников и то, в каких случаях следует отправлять им сообщения. Оператор никак не связан с учет ными записями Windows NT или SQL Server 2000, а также с пользователями баз данных. В принципе, в качестве оператора может выступать человек, не имеющий никаких прав доступа к серверу. При создании оператора SQL Server 2000 не вы полняет никаких проверок на права оператора, возлагая всю ответственность на ад министратора. Оператор будет получать сообщения, посылаемые системой автома тизации, однако для выполнения действий по устранению сбоев системы администратор должен явно предоставить ему необходимые права доступа, напри мер, включив его в одну из встроенных ролей сервера или базы данных.

Управление подсистемой автоматизации SQL Server 2000 предоставляет богатый набор методов управления подсистемой автоматизации, различающихся по сложности и наглядности их использования.

Рассмотрим эти способы.

• Wizards (мастера). Пользователи, не имеющие достаточного опыта в управле нии подсистемой автоматизации, могут прибегнуть к помощи специальных мастеров. Мастера облегчают задачи администрирования с точки зрения тре бующегося объема знаний, т. к. они снабжены большим количеством подска зок и работают в пошаговом режиме, что делает процесс управления интуи тивно понятным. В SQL Server 2000 имеются следующие мастера:

• Create Alert Wizard — с помощью этого мастера можно создать оповещение;

Create Job Wizard — этот мастер предназначен для создания заданий;

• • Make Master Server Wizard — применяя данный мастер можно создать главный сервер;

Make Target Server Wizard — при помощи этого мастера создается сервер • назначения.

( Замечание ^ Как видно, мастера предоставляют возможность только для создания объектов ад министрирования. Последующее управление ими должно быть выполнено с помо щью других средств администрирования, описываемых ниже. Кроме того, следует отметить, что последние два мастера применяются только при работе с многосер верными заданиями.

• Enterprise Manager. С помощью этого стандартного инструмента можно вы полнять любые действия по управлению подсистемой автоматизации адми Глава 12. Автоматизация администрирования SQL Server 2000 нистрирования: создание, изменение или удаление заданий, оповещений и операторов. Enterprise Manager предоставляет удобный графический интер фейс, интуитивно понятный любому пользователю. Объекты подсистемы ав томатизации можно найти в папке Management, находящейся в корневом ка талоге сервера панели Enterprise Manager.

П Transact-SQL. Как уже было сказано, информация обо всех свойствах объек тов подсистемы автоматизации хранится в системной базе данных Msdb. Если разрешить прямой доступ к системным данным, то пользователи смогут из менять свойства объектов непосредственно, не прибегая к дополнительным инструментам. Однако для выполнения подобных операций нужен очень вы сокий профессиональный опыт и знание структур данных объектов подсис темы администрирования. В SQL Server 2000 имеется набор специальных системных хранимых процедур, с помощью которых можно управлять под системой автоматизации администрирования.

( Замечание ) Microsoft не советует изменять или читать системные данные напрямую. Взамен на стоятельно рекомендуется использовать специальные хранимые процедуры, в дос татке имеющиеся в SQL Server 2000. Microsoft не гарантирует, что структура сис темных таблиц, типы данных колонок и их назначение останутся неизменными в последующих версиях. Хранимые процедуры обеспечивают совместимость прило жений, написанных для SQL Server 2000, с последующими версиями этого продукта.

Каждый из перечисленных методов имеет свои достоинства и недостатки. Выбор конкретного метода зависит от квалификации пользователя и способа создания объ ектов. Например, при создании объектов из пользовательских приложений приме нение мастеров невозможно и необходимо обратиться к хранимым процедурам.

Управление заданиями Рассмотрим конкретные методы управления заданиями SQL Server 2000. Самый простой способ создания задания заключается в использовании мастера Create Job Wizard. С его помощью даже пользователи, имеющие лишь поверхностные сведения о работе подсистемы администрирования, смогут создать функциони рующее задание. Более опытным пользователям SQL Server 2000 можно реко мендовать утилиту Enterprise Manager. Этот инструмент предоставляет возмож ности не только создания, но также изменения и удаления заданий. Наконец, в этом разделе будет рассмотрена системная хранимая процедура s p a d d j o b, ко торая предназначена для добавления в систему нового задания.

Мастер Create Job Wizard Для создания задания можно использовать мастер Create Job Wizard. Основным его преимуществом является простота его использования. Главным же недостат ком можно считать ограничение на количество шагов в задании. Мастер позво ляет создать задание с единственным шагом. Кроме того, с его помощью можно 478 Часть III. Администрирование определить только единственное расписание (schedule) запуска задания. Для соз дания сложных заданий с множеством разнотипных шагов с возможностью ветвления и множеством расписаний запуска необходимо применять хранимые процедуры или Enterprise Manager.

Для запуска мастера создания нового задания в панели инструментов Enterprise Manager нужно нажать кнопку Run a wizard и в открывшемся диалоговом окне для папки Management выбрать пункт Create Job Wizard. После этого остается нажать кнопку ОК.

Первое окно мастера содержит лишь общую вводную информацию о мастере и поэтому без особых сожалений может быть пропущено. Во втором окне (рис. 12.1) необходимо выбрать тип создаваемого задания.

Рис. 12.1. Второе окно мастера Create Job Wizard Пользователь может выбрать следующие типы задания:

• Transact-SQL command — набор команд и хранимых процедур Transact-SQL.

• Operating-system shell command (for example, run a batch script or invoke an ap plication) — команды и утилиты командной строки.

П Active script (for example, VBScript or JavaScript) — сценарии, написанные на одном из языков создания сценариев (VBScript, JavaScript или PerlScript).

с Замечание В верхней части окна мастера приведена краткая информация о действиях, выпол няемых в этом окне.

Глава 12. Автоматизация администрирования SQL Server 2000 Содержание третьего окна зависит от того, какой тип задания был выбран. В общем смысл действий, выполняемых в третьем окне, сводится к указанию ко манд, которые будут выполнены. На рис. 12.2 приведено третье окно мастера при выборе типа задания Transact-SQL command.

Рис. 12.2. Третье окно мастера Create Job Wizard В раскрывающемся списке Database name нужно выбрать базу данных, к кото рой будет подключаться агент SQLServerAgent во время выполнения задания.

При ссылке на объекты выбранной базы данных (БД) в имени этого объекта не нужно указывать имя базы данных. Для ссылки на объекты других баз данных имя БД надо указать.

В поле Transact-SQL statement указывается набор команд Transact-SQL, которые будут решать поставленную задачу. Если уже имеется подготовленный код, то для его подключения нажмите кнопку Open. Кнопка Parse позволяет проверить правильность введенного кода. При этом анализируется не только написание зарезервированных слов, но также имена объектов.

В четвертом окне мастера (рис. 12.3) пользователь может определить время за пуска создаваемого задания. Для этого надо установить один из переключателей:

П Now. Задание будет запущено сразу же по завершении работы мастера. В бу дущем запуск заданий будет возможен ручным способом.

• One time. Этот способ предполагает одноразовый запуск задания в определен ное время. При выборе данного пункта нужно указать дату (раскрывающийся список On date) и время (раскрывающийся список At time), в которое необхо димо запустить задание. После этого запуск возможен вручную.

Часть III. Администрирование • Automatically when the SQL Server Agent starts. В указанном случае запуск задания производится при каждом старте службы SQLServerAgent.

• When the computer is idle. При установке этого переключателя запуск задания производится в моменты простоя сервера. Характеристики работы сервера, при которых считается, что он простаивает, определяются отдельно на уров не сервера.

П On a recurring basis. Перечисленные выше способы не позволяют запускать задание периодически в определенные моменты. При выборе этого пункта пользователь может определить запуск задания в конкретные моменты вре мени. Для создания такого расписания нужно нажать кнопку Schedule. В от вет откроется диалоговое окно Edit Recurring Job Schedule.

Рис. 12.3. Четвертое окно мастера Create Job Wizard В пятом окне мастера (рис. 12.4) можно выбрать оператора, который будет по лучать сообщения о ходе выполнения задания.

Пользователь может информировать оператора двумя способами:

П Net send — сведения предоставляются стандартной командой NET SEND;

• E-mail — сообщение отправляется по электронной почте.

Мастер позволяет отправлять сообщения разным пользователям. Для этого в раскрывающихся списках Net send и E-mail следует выбрать разных операторов.

Информация о параметрах отправки сообщения (имя пользователя в сети и ад рес электронной почты) берется из свойств оператора.

Глава 12. Автоматизация администрирования SQL Server 2000 На этом конфигурирование задания завершается. В последнем окне мастера нужно указать имя задания (поле Job name). Кроме того, в этом окне приведена сводная информация о создаваемом задании.

Рис. 12.4. Пятое окно мастера Create Job Wizard Утилита Enterprise Manager Как было сказано в начале предыдущего раздела, возможности мастера Create Job Wizard весьма ограничены. С его помощью можно создать лишь одношаго вое задание с единственным расписанием запуска. Ниже рассмотрено формиро вание заданий любой сложности с помощью консоли администрирования Enter prise Manager.

Чтобы сформировать задание с помощью Enterprise Manager, необходимо перей ти к папке Management, расположенной в корневой папке сервера. В папке Management необходимо нажать кнопку L+J слева в строке службы SQLServer Agent. В раскрывшемся списке представлены объекты подсистемы автоматиза ции администрирования: Jobs, Alerts и Operator. Чтобы сформировать новое за дание в контекстном меню объекта Jobs, выберите команду New Job. Откроется диалоговое окно New Job Properties, подобное представленному на рис. 12.5.

Это окно имеет четыре вкладки.

Общие сведения о задании Первая вкладка — General (см. рис. 12.5), предназначена для указания общих све дений о создаваемом задании. В окне представлено несколько элементов управле ния, с помощью которых пользователь должен указать необходимую информацию.

Часть III. Администрирование В поле Name нужно ввести имя, которое будет присвоено заданию. Не допуска ется формирование на одном сервере двух заданий с одинаковыми именами. В поле Source указывается сервер, являющийся владельцем задания. Если задание сформировано на локальном сервере, то в этом поле будет выведено значение (local). В поле Created указывается дата создания. Поскольку формируется новое задание, то в этом поле будет стоять (Not yet created). Если открыть окно свойств уже существующего задания, то в поле Created будет указана дата его создания.

Рис. 12.5. Окно New Job Properties, вкладка General В правой части вкладки General имеются переключатели, с помощью которых устанавливается тип задания:



Pages:     | 1 |   ...   | 11 | 12 || 14 | 15 |   ...   | 33 |
 





 
© 2013 www.libed.ru - «Бесплатная библиотека научно-практических конференций»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.