Поделиться через


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

В этом разделе описываются наиболее распространенные классы, которые не являются характерными для OLAP или интеллектуального анализа данных, но являются полезными для администрирования или управления объектами в службах MicrosoftSQL ServerAnalysis 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

Restrictions

  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 и заполните его основные данные, среди прочего укажите идентификатор трассировки, имя, имя файла журнала, append|overwrite и др.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Исключение

Origin

Description

AmoException

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

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

OutOfSyncException

Производный от AMOException

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

OperationException

Производный от AMOException

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

ResponseFormatException

Производный от AMOException

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

ConnectionException

Производный от AMOException

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