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

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

  • Backup コマンドは、Analysis Services バックアップ ファイル (.abf) を使用して MicrosoftSQL ServerAnalysis Services データベースをバックアップします。これについては、「データベースのバックアップ」のセクションで説明しています。

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

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

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

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

セキュリティに関する注意セキュリティに関する注意

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

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

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

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

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

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

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

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

    セキュリティに関する注意セキュリティに関する注意

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

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

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

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

説明

SkipMembership

バックアップ ファイルにセキュリティ定義を含めますが、メンバシップ情報は除外します。

CopyAll

バックアップ ファイルにセキュリティ定義とメンバシップ情報を含めます。

IgnoreSecurity

バックアップ ファイルからセキュリティ定義を除外します。

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

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

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

データベースの復元

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

セキュリティに関する注意セキュリティに関する注意

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

注意注意

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

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

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

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

セキュリティ設定の復元

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

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

説明

SkipMembership

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

CopyAll

データベースにセキュリティ定義とメンバシップ情報を含めます。

IgnoreSecurity

データベースからセキュリティ定義を除外します。

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

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

指定された各 Location 要素に関して、Analysis Services インスタンスは、DataSourceID プロパティで指定されたリモート データ ソースにアクセスし、File プロパティで指定されたリモート バックアップ ファイルで定義されているパーティションを復元します。DataSourceID および File プロパティに加えて、リモート パーティションを復元するために使用される各 Location 要素では、以下のプロパティを使用できます。

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

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

ROLAP オブジェクトの再配置

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

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

データベースの同期

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

注意注意

Synchronize コマンドを実行できるのは、サーバー管理者とデータベース管理者だけです。

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

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

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

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

セキュリティ設定の同期

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

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

説明

SkipMembership

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

CopyAll

同期先データベースにセキュリティ定義とメンバシップ情報を含めます。

IgnoreSecurity

同期先データベースからセキュリティ定義を除外します。

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

同期元データベース上に存在する各リモート データ ソースについては、Synchronize コマンドの Locations プロパティに 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 プロパティの値に置き換えます。