Другие классы и методы объектов AMO

В этом разделе описаны наиболее часто используемые классы, которые не имеют отношения к OLAP и интеллектуальному анализу данных, но удобны для администрирования и управления объектами в службах Microsoft SQL Server Службы Analysis Services. Эти классы охватывают работу с хранимыми процедурами, трассировкой, исключениями, а также резервированием и восстановлением.

Этот раздел состоит из следующих подразделов.

  • Объекты Assembly

  • Методы Backup и Restore

  • Объекты Trace

  • Класс CaptureLog и атрибут CaptureXML

  • Класс исключений AMOException

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

Прочие классы AMO

Объекты Assembly

Объект Assembly создается путем добавления его в коллекцию сборок сервера и обновления объекта Assembly на сервере при помощи метода Update.

Чтобы удалить объект Assembly, к нему необходимо применить метод Drop объекта Assembly. При удалении объекта Assembly из коллекции сборок базы данных сама сборка не удаляется, она просто будет недоступна в приложении до следующего запуска.

Дополнительные сведения о доступных методах и свойствах см. в описании класса Microsoft.AnalysisServices..::..Assembly из пространства имен Microsoft.AnalysisServices.

Примечание по безопасностиПримечание по безопасности

Использование сборок COM может представлять угрозу безопасности. По этой причине, а также по ряду других сборки COM в службах Службы SQL Server 2008 Analysis Services (SSAS) являются устаревшими. Поддержка сборок COM в последующих версиях может быть прекращена.

Методы Backup и Restore

Методы Backup и Restore предназначены для создания резервной копии базы данных и восстановления служб Службы Analysis Services. Метод Backup принадлежит к объекту Database, а метод Restore — к объекту Server.

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

Файлы резервных копий баз данных должны иметь расширение ABF.

Метод Backup

Чтобы создать резервную копию базы данных, вызовите метод Backup объекта базы данных, передав ему в качестве параметра имя файла резервной копии.

Значения по умолчанию

AllowOverwrite=false

BackupRemotePartitions=false

Security=CopyAll

ApplyCompression=true

Метод Restore

Чтобы восстановить базу данных на сервере, вызовите метод Restore сервера, передав ему в качестве параметра имя файла резервной копии.

Значения по умолчанию

AllowOverwrite=false

DataSourceType=Remote

Security=CopyAll

Ограничения

  1. Локальную секцию невозможно восстановить как удаленную.

  2. Удаленную секцию невозможно восстановить как локальную, однако удаленную секцию можно восстановить на сервере, отличном от того, с которого была создана ее резервная копия.

Общие параметры и свойства методов Backup и Restore

  • File — имя файла, в который производится создание резервной копии и из которого производится восстановление (имя в формате UNC).

  • Location указывает сведения резервного копирования, определяемые сервером, например BackupFile. Это позволяет задать отдельный файл резервной копии для удаленной базы данных.

  • DatasourceID указывает идентификатор подчиненной базы данных на удаленном сервере.

  • ConnectionString позволяет настроить удаленный источник данных в случае изменения удаленного сервера. При наличии свойства ConnectionString обязательно должно быть задано свойство DatasourceID.

  • Folder позволяет повторно сопоставить папки для секций на локальном жестком диске.

  • Original — первоначальная папка для локальных секций.

  • New — новое местоположение для локальных секций, которые ранее находились в соответствующей старой папке Original.

  • Password (если оно не пусто) указывает, что сервер зашифрует файл резервной копии.

Объекты Trace

Трассировка — это платформа, предназначенная для наблюдения, воспроизведения и управления экземпляром служб Службы Analysis Services. Клиентское приложение, например Приложение SQL Server Profiler, подписывается на трассировку, после чего сервер в соответствии с ее определением будет отправлять ему определения трассировки.

Каждое событие описывается классом событий. Класс событий описывает тип сформированного события. Внутри класса событий более глубокое разделение событий на категории обеспечивают подклассы. Каждое событие описывается несколькими столбцами. Столбцы, описывающие событие трассировки, согласованы для всех событий, которые соответствуют структуре SQL-трассировки. Записываемые в каждый из столбцов сведения могут различаться в зависимости от класса события. Другими словами, стандартный набор столбцов определен для каждой трассировки, но их значения могут различаться в зависимости от классов событий. Например, столбец TextData используется для записи исходного языка ASSL для всех событий инструкций.

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

Трассировки можно запускать и удалять. Несколько трассировок можно запустить одновременно. События трассировки могут захватываться в реальном времени или направляться в файл для анализа или воспроизведения в будущем. Средство Приложение SQL Server Profiler предназначено для анализа и воспроизведения событий трассировки служб Службы Analysis Services. Несколько соединений могут получать события из одной трассировки.

Трассировки можно разделить на две группы: трассировки сервера и трассировки сеанса. Трассировки сервера сообщают обо всех событиях на этом сервере, а трассировки сеанса сообщают только о событиях, происходящих в рамках текущего сеанса.

Трассировки из коллекции трассировок сервера определяются следующим образом.

  1. Создайте объект Trace и заполните его основные данные. Помимо прочего укажите идентификатор трассировки, имя, имя файла журнала, режим добавления-перезаписи и др.

  2. В коллекцию событий объекта трассировки добавьте события для наблюдения. Для каждого из событий будут добавлены столбцы данных.

  3. Задайте фильтры для исключения ненужных строк данных путем добавления их в коллекцию фильтров.

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

  5. Остановите трассировку.

  6. Просмотрите файл трассировки с помощью средства Приложение SQL Server Profiler.

Трассировки из объекта сеанса создаются следующим образом.

  1. Определите функции для обработки событий трассировки, формируемых в приложении объектом SessionTrace. Возможны следующие события: OnEvent и Stopped.

  2. Добавьте определенные функции в обработчик события.

  3. Запустите трассировку сеанса.

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

  5. Остановите трассировку сеанса.

  6. Продолжите работу с приложением.

Класс CaptureLog и атрибут CaptureXML

Все действия, которые должны выполняться объектами AMO, отправляются на сервер в виде сообщений XML для аналитики. Объекты AMO предоставляют средства захвата всех этих событий без заголовков SOAP. Дополнительные сведения см. в разделе Знакомство с классами объектов AMO. CaptureLog — это реализованный в объектах AMO механизм для включения объектов и операций в сценарии. Объекты и операции будут включены в сценарии в XML для аналитики.

Чтобы начать захват XML, свойству CaptureXML серверного объекта необходимо присвоить значение true. После этого все действия, которые должны отправляться на сервер, будут захватываться классом CaptureLog. CaptureLog считается классом, поскольку у него есть метод Clear, предназначенный для очистки журнала захвата.

Чтобы прочитать журнал, необходимо получить коллекцию строк и выполнить ее перебор. Кроме того, можно объединить все журналы в строку при помощи метода ConcatenateCaptureLog объекта сервера. Метод ConcatenateCaptureLog принимает три параметра, два из которых являются обязательными. Обязательные параметры: transactional и parallel (оба логического типа). Если в качестве параметра transactional передано значение true, то это свидетельствует о том, что пакетный XML-файл будет создан в рамках одной транзакции. В противном случае каждая команда будет выполняться как отдельная транзакция. Если в качестве параметра parallel передано значение true, то это говорит о том, что все команды в пакетном файле будут записаны для параллельного выполнения. В противном случае они будут выполняться последовательно по мере регистрации.

Класс исключений AMOException

Класс исключения AMOException позволяет приложению легко перехватывать исключения, создаваемые объектами AMO.

При возникновении различных проблем объекты AMO формируют исключения. В следующей таблице приведены типы исключений, обрабатываемые объектами AMO. Исключения наследуются от класса AmoException.

Исключение

Место возникновения

Описание

AmoException

Базовый класс

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

OutOfSyncException

Наследует AMOException

Приложение принимает это исключение в том случае, когда объекты AMO не синхронизированы с подсистемой, а подсистема вернула ссылку на объект, о котором объектам AMO неизвестно.

OperationException

Наследует AMOException

Это важное исключение, которое часто получают приложения. Оно содержит описание ошибки, поступившей с сервера, которая, возможно, стала результатом сбоя операции объектов AMO, например Update, Process или Drop.

ResponseFormatException

Наследует AMOException

Это исключение возникает в том случае, когда подсистема вернула сообщение в формате, который непонятен объектам AMO.

ConnectionException

Наследует AMOException

Это исключение возникает в том случае, когда невозможно установить соединение (методом Server.Connect), либо когда соединение потеряно при обмене данными между объектами AMO и подсистемой (например, во время операций Update, Process или Drop).