データベースのバックアップ、復元、および同期 (XMLA)

XML for Analysis には、データベースのバックアップ、復元、および同期を行う 3 つのコマンドがあります。

  • Backup コマンドは、「データベースのバックアップ」セクションで説明されているように、SQL Server Analysis Services バックアップ ファイル (.abf) を使用して Microsoft SQL Server SQL Server Analysis Services データベースをバックアップします

  • 復元コマンドは、「データベースの復元」セクションで説明されているように、.abf ファイルからSQL Server Analysis Services データベースを復元します

  • 同期コマンドは、「データベースの同期」セクションで説明されているように、1 つのSQL Server Analysis Servicesデータベースを別のデータベースのデータとメタデータと同期します

データベースのバックアップ

前述のように、Backup コマンドは、指定したSQL Server Analysis Services データベースをバックアップ ファイルにバックアップします。 Backup コマンドには、バックアップするデータベース、使用するバックアップ ファイル、セキュリティ定義のバックアップ方法、バックアップするリモート パーティションを指定できるさまざまなプロパティがあります。

重要

Analysis Services サービス アカウントには、各ファイルに指定されたバックアップ場所に対する書き込み権限が必要です。 また、ユーザーには、SQL Server Analysis Services インスタンスの管理者ロール、またはバックアップするデータベースに対するフル コントロール (管理者) アクセス許可を持つデータベース ロールのメンバーのいずれかのロールが必要です。

データベースとバックアップ ファイルの指定

バックアップするデータベースを指定するには、Backup コマンドの Object プロパティを設定します。 Object プロパティには、データベースのオブジェクト識別子が含まれている必要があります。または、エラーが発生します。

バックアップ プロセスによって作成および使用されるファイルを指定するには、Backup コマンドの File プロパティを設定します。 File プロパティは、作成するバックアップ ファイルの UNC パスとファイル名に設定する必要があります。

バックアップに使用するファイルの指定に加えて、指定したバックアップ ファイルに対する以下のオプションを設定できます。

  • AllowOverwrite プロパティを true に設定すると、指定したファイルが既に存在する場合、バックアップ コマンドによってバックアップ ファイルが上書きされます。 AllowOverwrite プロパティを false に設定すると、指定したバックアップ ファイルが既に存在する場合にエラーが発生します。

  • ApplyCompression プロパティを true に設定すると、ファイルの作成後にバックアップ ファイルが圧縮されます。

  • Password プロパティを空白以外の値に設定すると、指定したパスワードを使用してバックアップ ファイルが暗号化されます。

    重要

    ApplyCompression プロパティと Password プロパティが指定されていない場合、バックアップ ファイルには、接続文字列に含まれるユーザー名とパスワードがクリア テキストに格納されます。 クリア テキストで格納されたデータは、取得される可能性があります。 セキュリティを強化するには、 ApplyCompressionPassword の設定を使用して、バックアップ ファイルを圧縮および暗号化します。

セキュリティ設定のバックアップ

Security プロパティは、Backup コマンドが、SQL Server Analysis Services データベースに定義されているロールやアクセス許可などのセキュリティ定義をバックアップするかどうかを決定します。 セキュリティ プロパティは、バックアップ ファイルに、セキュリティ定義のメンバーとして定義された Windows ユーザー アカウントとグループが含まれているかどうかを決定します。

Security プロパティの値は、次の表に示す文字列のいずれかに制限されます。

説明
SkipMembership バックアップ ファイルにセキュリティ定義を含めますが、メンバーシップ情報は除外します。
CopyAll バックアップ ファイルにセキュリティ定義とメンバーシップ情報を含めます。
IgnoreSecurity バックアップ ファイルからセキュリティ定義を除外します。

リモート パーティションのバックアップ

SQL Server Analysis Services データベース内のリモート パーティションをバックアップするには、Backup コマンドの BackupRemotePartitions プロパティを true に設定します。 この設定により、 Backup コマンドは、データベースのリモート パーティションを格納するために使用されるリモート データ ソースごとにリモート バックアップ ファイルを作成します。

バックアップするリモート データ ソースごとに、バックアップ コマンドの Locations プロパティに Location 要素を含めることで、対応するバックアップ ファイルを指定できます。 Location 要素には、リモート バックアップ ファイルの UNC パスとファイル名に File プロパティを設定し、その DataSourceID プロパティをデータベースで定義されているリモート データ ソースの識別子に設定する必要があります。

データベースの復元

Restore コマンドは、指定したSQL Server Analysis Servicesデータベースをバックアップ ファイルから復元します。 Restore コマンドには、復元するデータベース、使用するバックアップ ファイル、セキュリティ定義の復元方法、格納するリモート パーティション、および再配置リレーショナル OLAP (ROLAP) オブジェクトを指定できるさまざまなプロパティがあります。

重要

バックアップ ファイルごとに、復元コマンドを実行するユーザーは、各ファイルに指定されたバックアップ場所から読み取る権限を持っている必要があります。 サーバーにインストールされていないSQL Server Analysis Services データベースを復元するには、そのSQL Server Analysis Services インスタンスのサーバー ロールのメンバーである必要もあります。 SQL Server Analysis Services データベースを上書きするには、ユーザーは、SQL Server Analysis Services インスタンスのサーバー ロールのメンバー、または復元するデータベースに対するフル コントロール (管理者) アクセス許可を持つデータベース ロールのメンバーのいずれかのロールを持っている必要があります。

注意

既存のデータベースを復元すると、データベースを復元したユーザーは、復元されたデータベースにアクセスできなくなる可能性があります。 バックアップの実行時に、ユーザーがサーバー ロールのメンバー、またはフル コントロール (管理者) 権限を持つデータベース ロールのメンバーではなかった場合、このようにアクセスできなくなることがあります。

データベースとバックアップ ファイルの指定

Restore コマンドの DatabaseName プロパティには、データベースのオブジェクト識別子が含まれている必要があります。または、エラーが発生します。 指定したデータベースが既に存在する場合、 AllowOverwrite プロパティは、既存のデータベースが上書きされるかどうかを判断します。 AllowOverwrite プロパティが false に設定されていて、指定したデータベースが既に存在する場合は、エラーが発生します。

Restore コマンドの File プロパティを、指定したデータベースに復元するバックアップ ファイルの UNC パスとファイル名に設定する必要があります。 指定したバックアップ ファイルの Password プロパティを設定することもできます。 Password プロパティが空白以外の値に設定されている場合、指定したパスワードを使用してバックアップ ファイルが復号化されます。 バックアップ ファイルが暗号化されていない場合、または指定されたパスワードがバックアップ ファイルの暗号化に使用されたパスワードと一致しない場合は、エラーが発生します。

セキュリティ設定の復元

Security プロパティは、復元コマンドが、SQL Server Analysis Services データベースで定義されているロールやアクセス許可などのセキュリティ定義を復元するかどうかを決定します。 セキュリティ プロパティは、復元コマンドに、復元プロセスの一環としてセキュリティ定義のメンバーとして定義された Windows ユーザー アカウントとグループが含まれているかどうかも決定します。

この要素の値は、次の表の一覧に示す文字列のいずれかに限定されています。

説明
SkipMembership データベースにセキュリティ定義を含めますが、メンバーシップ情報は除外します。
CopyAll データベースにセキュリティ定義とメンバーシップ情報を含めます。
IgnoreSecurity データベースからセキュリティ定義を除外します。

リモート パーティションの復元

前のバックアップ コマンド中に作成されたリモート バックアップ ファイルごとに、Restore コマンドの Locations プロパティに Location 要素を含めることで、関連するリモート パーティションを復元できます。 各 Location 要素の DataSourceType プロパティは、除外するか、明示的に Remote に設定する必要があります。

指定した Location 要素ごとに、SQL Server Analysis Services インスタンスは DataSourceID プロパティで指定されたリモート データ ソースに接続し、File プロパティで指定されたリモート バックアップ ファイルで定義されているパーティションを復元します。 DataSourceID プロパティと File プロパティに加えて、リモート パーティションの復元に使用される Location 要素ごとに、次のプロパティを使用できます。

  • DataSourceID で指定されたリモート データ ソースの接続文字列をオーバーライドするには、Location 要素の ConnectionString プロパティを別の接続文字列に設定します。 復元コマンドは、ConnectionString プロパティに含まれる接続文字列を使用します。 ConnectionString が指定されていない場合、Restore コマンドは、指定されたリモート データ ソースのバックアップ ファイルに格納されている接続文字列を使用します。 ConnectionString 設定を使用して、リモート パーティションを別のリモート インスタンスに移動できます。 ただし、 ConnectionString 設定を使用して、復元されたデータベースを含む同じインスタンスにリモート パーティションを復元することはできません。 言い換えると、 ConnectionString プロパティを使用してリモート パーティションをローカル パーティションにすることはできません。

  • リモート データ ソースにリモート パーティションを格納するために使用される元のフォルダーごとに、 Folder 要素を指定して、元のフォルダーに格納されているすべてのリモート パーティションを復元する新しいフォルダーを指定できます。 Folder 要素が指定されていない場合、Restore コマンドは、リモート バックアップ ファイルに含まれるリモート パーティションに指定された元のフォルダーを使用します。

ROLAP オブジェクトの再配置

復元コマンドは、ROLAP ストレージを使用するオブジェクトの集計またはデータを復元できません。この情報は基になるリレーショナル データ ソースのテーブルに格納されるためです。 ただし、ROLAP オブジェクトのメタデータは復元できます。 ROLAP オブジェクトのメタデータを復元するために、 Restore コマンドはリレーショナル データ ソースにテーブル構造を再作成します。

Restore コマンドの Location 要素を使用して、ROLAP オブジェクトを再配置できます。 データ ソースの再配置に使用される Location 要素ごとに、 DataSourceType プロパティを明示的に Local に設定する必要があります。 Location 要素の ConnectionString プロパティを、新しい場所の接続文字列に設定する必要もあります。 復元中、 Restore コマンドは、Location 要素の DataSourceID プロパティによって識別されるデータ ソースの接続文字列を 、Location 要素の ConnectionString プロパティの 値に置 き換えます。

データベースの同期

Synchronize コマンドは、指定したSQL Server Analysis Services データベースのデータとメタデータを別のデータベースと同期します。 Synchronize コマンドには、ソース データベース、セキュリティ定義の同期方法、同期するリモート パーティション、ROLAP オブジェクトの同期を指定できるさまざまなプロパティがあります。

注意

Synchronize コマンドは、サーバー管理者とデータベース管理者のみが実行できます。 同期元データベースと同期先のデータベースの両方の互換性レベルが同じであることが必要です。

同期元データベースの指定

Synchronize コマンドの Source プロパティには、ConnectionString と Object の 2 つのプロパティ含まれています。 ConnectionString プロパティには、ソース データベースを含むインスタンスの接続文字列が含まれており、Object プロパティにはソース データベースのオブジェクト識別子が含まれています。

同期先データベースは、 Synchronize コマンドが実行されるセッションの現在のデータベースです。

Synchronize コマンドの ApplyCompression プロパティが true に設定されている場合、ソース データベースから宛先データベースに送信される情報は、送信前に圧縮されます。

セキュリティ設定の同期

SynchronizeSecurity プロパティは、Synchronize コマンドが、ソース データベースで定義されているセキュリティ定義 (ロールやアクセス許可など) を同期するかどうかを決定します。 SynchronizeSecurity プロパティは、Sychronize コマンドに、セキュリティ定義のメンバーとして定義された Windows ユーザー アカウントとグループが含まれているかどうかも決定します。

この要素の値は、次の表の一覧に示す文字列のいずれかに限定されています。

説明
SkipMembership 同期先データベースにセキュリティ定義を含めますが、メンバーシップ情報は除外します。
CopyAll 同期先データベースにセキュリティ定義とメンバーシップ情報を含めます。
IgnoreSecurity 同期先データベースからセキュリティ定義を除外します。

リモート パーティションの同期

ソース データベースに存在する各リモート データ ソースについて、関連付けられている各リモート パーティションを同期する場合は、[同期] コマンドの [場所] プロパティに Location 要素を含めます。 Location 要素ごとに、DataSourceType プロパティを除外するか、明示的に Remote に設定する必要があります。

同期先データベースのリモート データ ソースを定義して接続するために、Synchronize コマンドは Location 要素の ConnectionString プロパティで定義された接続文字列を使用します。 次に、Synchronize コマンドは、Location 要素の DataSourceID プロパティを使用して、同期するリモート パーティションを識別します。 Synchronizeコマンドは、ソース データベースの DataSourceID プロパティで指定されたリモート データ ソースのリモート パーティションを、コピー先データベースの DataSourceID プロパティで指定されたリモート データ ソースと同期します。

ソース データベースのリモート データ ソースにリモート パーティションを格納するために使用される元のフォルダーごとに、Location 要素に Folder 要素を指定することもできます。 Folder 要素は、リモート データ ソースの元のフォルダーに格納されているすべてのリモート パーティションを同期する対象データベースの新しいフォルダーを示します。 Folder 要素が指定されていない場合、Synchronize コマンドは、ソース データベースに含まれるリモート パーティションに指定された元のフォルダーを使用します。

ROLAP オブジェクトの同期

Synchronize コマンドは、ROLAP ストレージを使用するオブジェクトの集計またはデータを同期できません。これらの情報は、基になるリレーショナル データ ソース上のテーブルに格納されるためです。 ただし、ROLAP オブジェクトのメタデータは同期できます。 メタデータを同期するために、 Synchronize コマンドはリレーショナル データ ソースでテーブル構造を再作成します。

Synchronize コマンドの Location 要素を使用して、ROLAP オブジェクトを同期できます。 データ ソースの再配置に使用される Location 要素ごとに、 DataSourceType プロパティを明示的に Local に設定する必要があります。 . Location 要素の ConnectionString プロパティを新しい場所の接続文字列に設定する必要もあります。 同期中に、Synchronize コマンドは、Location 要素の DataSourceID プロパティによって識別されるデータ ソースの接続文字列を、Location 要素の ConnectionString プロパティの値に置き換えます

参照

Backup 要素 (XMLA)
Restore 要素 (XMLA)
Synchronize 要素 (XMLA)
Analysis Services データベースのバックアップと復元