AMO の他のクラスとメソッド

適用対象: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

このセクションには、OLAP またはデータ マイニングに固有ではなく、Analysis Services でオブジェクトを管理または管理するときに役立つ一般的なクラスが含まれています。 これらのクラスは、ストアド プロシージャ、トレース、例外、およびバックアップと復元などの機能を対象としています。

次の図は、このトピックで説明するクラスの関係を示しています。

AMO のその他のクラス

アセンブリ オブジェクト

Assemblyオブジェクトは、サーバーのアセンブリ コレクションに追加し、Update メソッドを使用してオブジェクトをAssemblyサーバーに更新することによって作成されます。

オブジェクトを Assembly 削除するには、オブジェクトの Drop メソッドを使用して削除する Assembly 必要があります。 データベースのアセンブリ コレクションからオブジェクトを Assembly 削除してもアセンブリは削除されず、次回アプリケーションを実行するまでアプリケーションにオブジェクトが表示されなくなります。

使用可能なメソッドとプロパティの詳細については、 をMicrosoft.AnalysisServices参照してくださいAssembly

重要

COM アセンブリにより、セキュリティ上のリスクが生じる可能性があります。 このリスクやその他の考慮事項により、COM アセンブリはサポートされなくなりました。

バックアップと復元の方法

バックアップと復元は、データベースのコピーを作成し、コピーを使用してデータベースを復旧するために使用できる方法です。 Backup メソッドは オブジェクトに Database 属し、Restore メソッドは オブジェクトに Server 属します。

データベースのバックアップの実行を許可されているのは、サーバーおよびデータベースの管理者だけです。 バックアップ元とは別のサーバー上にデータベースを復元できるのは、サーバー管理者だけです。 データベース管理者は、自分が所有しているデータベースについてのみ、そのデータベースを上書きすることによってデータベースを復元できます。 元のセキュリティ定義を使用してデータベースを復元した場合、データベース管理者が復元後のデータベースにアクセスできなくなる可能性があります。

データベース バックアップ ファイルには、.abf 拡張子を付ける必要があります。

バックアップ方法

データベースをバックアップするには、データベース オブジェクトの Backup メソッドを使用します。その際、バックアップ ファイルの名前をパラメーターとして指定します。

既定値

AllowOverwrite=false

BackupRemotePartitions=false

Security=CopyAll

ApplyCompression=true

復元方法

データベースをサーバーに復元するには、パラメーターとしてバックアップ ファイルを指定し、サーバーの Restore メソッドを実行します。

既定値

AllowOverwrite=false

DataSourceType=Remote

Security=CopyAll

制限

  1. ローカル パーティションは、リモート パーティションとして復元することはできません。

  2. リモート パーティションは、ローカル パーティションとして復元することはできません。ただし、リモート パーティションがバックアップされた際のバックアップ元とは異なるサーバー上に復元する場合は、復元可能です。

バックアップと復元の方法の一般的なパラメーターとプロパティ

  • [ファイル ] は、バックアップ元またはバックアップ元のファイルの名前 (UNC 名) です。

  • 場所 は、 BackupFile などのサーバー固有のバックアップ情報を指定します。これにより、リモート データベース用に個別のバックアップ ファイルを指定できます。

  • DatasourceID は、リモート サーバー内の下位データベースの ID を指定します。

  • ConnectionString を使用すると、リモート サーバーが変更された場合に備えて、リモート データソースを調整できます。 DatasourceID は、ConnectionString が存在する場合は常に指定する必要があります。

  • フォルダー を使用すると、ローカル ハード ドライブ上のパーティションのフォルダーを再マップできます

  • Original は、ローカル パーティションの元のフォルダーです。

  • New は、対応する "元の" 古いフォルダーに存在していたローカル パーティションの新しい場所です。

  • パスワード (空白以外の場合) は、サーバーがバックアップ ファイルを暗号化することを指定します。

トレース オブジェクト

トレースは、Analysis Services のインスタンスの監視、再生、管理に使用されるフレームワークです。 SQL Profiler などのクライアント アプリケーションはトレースをサブスクライブし、サーバーはトレース定義で指定されているようにトレース イベントを送信します。

各イベントは、イベント クラスによって記述されます。 イベント クラスは生成されたイベントの種類を記述します。 イベント クラス内では、イベントのサブクラスによって、より詳細なレベルの分類が記述されます。 各イベントは、多くの列によって記述されます。 トレース イベントを記述する列は、すべてのイベントに対して一貫しており、SQL トレースの構造に準拠しています。 各列に記録される情報は、イベント クラスに応じて異なる可能性があります。つまり、定義済みの列のセットは各トレースに対して定義されますが、列の意味はイベント クラスに応じて異なる可能性があります。 たとえば、TextData 列は、すべてのステートメント イベントに対する元の ASSL を記録するために使用されます。

トレース定義には、トレースされるイベント クラスを 1 つ以上同時に含めることができます。 各イベント クラスについて、トレース定義に 1 つ以上のデータ列を追加できますが、すべてのトレース列を使用する必要はありません。 データベース管理者は、使用できる列のうちどれをトレース内に含めるかを決定できます。 さらに、イベント クラスは、トレース内の任意の列に対するフィルターの条件に基づいて選択的にトレースできます。

トレースは、開始および削除できます。 複数のトレースを任意のタイミングで一度に実行できます。 トレース イベントは、実行中にキャプチャしたり、後から分析または再生するためにファイルに送信することができます。 SQL Profiler は、トレース イベントの分析と再生に使用されるツールです。 同じトレースからイベントを受け取るために、複数の接続を使用できます。

トレースは、サーバー トレースとセッション トレースの 2 つのグループに分けられます。 サーバー トレースは、サーバー内のすべてのイベントについて通知します。セッション トレースは、現在のセッション内のイベントについてのみ通知します。

サーバーのトレース コレクションからのトレースは、次の方法で定義します。

  1. オブジェクトを Trace 作成し、トレース ID、名前、ログ ファイル名、append|overwrite などの基本的なデータを設定します。

  2. トレース オブジェクトの Events コレクションに、監視する Events を追加します。 各イベントに対して、データ列が追加されます。

  3. 不要なデータの行を除外するために、それらの不要なデータの行をフィルター コレクションに追加してフィルターを設定します。

  4. トレースを開始します。トレースを作成しても、データの収集は開始されません。

  5. トレースを停止します。

  6. SQL 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 メソッドがあるため、CaptureLog はクラスと見なされます。

ログを読み取るには、文字列コレクションを取得し、それらの文字列の反復処理を開始します。 また、サーバー オブジェクト メソッド ConcatenateCaptureLog を使用して、すべてのログを 1 つの文字列に連結することもできます。 ConcatenateCaptureLog には、3 つのパラメーターがあり、そのうち 2 つは必須です。 必要なパラメーターは、ブール型の トランザクション型と、ブール型の 並列パラメーターです。 トランザクションtrue に設定されている場合は、各コマンドが個別のトランザクションとして扱われるのではなく、XML バッチ ファイルが 1 つのトランザクションとして作成されることを示します。 paralleltrue に設定されている場合は、バッチ ファイル内のすべてのコマンドが記録された順番ではなく、同時実行用に記録されることを示します。

AMOException 例外クラス

AMOException 例外クラスを使用して、AMO によってスローされるアプリケーション内の例外を簡単にキャッチできます。

AMO は、さまざまな問題が検出されるたびに例外をスローします。 次の表は、AMO によって処理される例外の種類を示しています。 例外は クラスから AmoException 派生します。

例外 出発地 説明
AmoException 基本クラス 必要な親オブジェクトが見つからない場合、または必要なアイテムがコレクション内で見つからない場合に、アプリケーションはこの例外を受け取ります。
OutOfSyncException AMOException から派生 AMO がエンジンに同期されておらず、AMO が認識していないオブジェクト参照をエンジンが返す場合、アプリケーションはこの例外を受け取ります。
OperationException AMOException から派生 これは、アプリケーションが頻繁に受け取る重要な例外です。 この例外には、サーバーから発生するエラーの詳細が含まれています。このエラーの原因としては、更新、処理、削除などの不正な AMO 操作が考えられます。
ResponseFormatException AMOException から派生 この例外は、AMO によって認識されない形式のメッセージをエンジンが返す場合に発生します。
ConnectionException AMOException から派生 この例外は、(Server.Connect を使用して) 接続を確立できない場合、または AMO がエンジンと通信している間 (更新、処理、または削除の間など) に接続が失われる場合に発生します。