Microsoft SQL Server 2005 Analysis Services を使用したバックアップの方針

公開日: 2005年9月27日

概要
このホワイト ペーパーでは、Analysis Services の Backup コマンドの実行に関連するいくつかの問題について簡単に説明します。正しいバックアップ方針の選択方法と、Backup コマンドで使用可能な各種のオプションについて述べ、Analysis Services のバックアップを自動化する例を紹介します。

*
トピック
概要概要
バックアップ UIバックアップ UI
Backup コマンドBackup コマンド
バックアップ方針バックアップ方針
バックアップ パフォーマンスの考慮事項バックアップ パフォーマンスの考慮事項
SQL Server エージェント ジョブを使用したバックアップの自動化SQL Server エージェント ジョブを使用したバックアップの自動化

概要

バックアップおよび復元操作は、Analysis Services インフラストラクチャの不可欠な部分です。Microsoft® SQL Server™ 2005 Analysis Services では、バックアップ操作が完全に再構築されています。

Analysis Services、バックアップファイル、およびデータ ファイルの間のやり取りを次の図に示します。

図 1

図 1

バックアップと復元は、Analysis Services に対して XML for Analysis コマンドを発行することにより実行できます。

Backup コマンドを受け取った後、Analysis Services は 1 つのバックアップ ファイル内でパッケージ化する必要のあるファイルを決定します。バックアップおよび復元時には、データベースの整合性が保持されます。さらに、バックアップ ファイル内のすべてのオブジェクトが、同じバージョンであることが確認されます。

バックアップと復元の単位について知っておくことも重要です。Analysis Services データベース全体を、単一のファイルにバックアップして、データベース全体を同様に復元します。

バックアップ UI

まず、SQL Server Management Studio に用意されているバックアップ UI を使用すると、バックアップ機能を簡単に調べることができます。

バックアップ UI を使用するには

1.

SQL Server Management Studio を起動します。

2.

Analysis Services サーバーとの接続を開きます。

3.

バックアップするデータベースを右クリックし、[バックアップ] を選択します。

図 2 のような [データベースのバックアップ] ダイアログ ボックスが表示されます。このダイアログ ボックスには、構成する必要のある設定がいくつかあります。

4.

バックアップ ファイルの名前と場所を入力します。

5.

バックアップ ファイルを暗号化する場合、[バックアップ ファイルを暗号化する] を選択して、パスワードを入力します。

6.

Backup コマンドは、スクリプト化できます。ダイアログ ボックスの上部にある [スクリプト] をクリックすると、次のようなスクリプトが表示されます。

<Backup xmlns="http://schemas.microsoft.com/analysisservices/2003/engine"> 
  <Object> 
    <DatabaseID>FoodMart 2000</DatabaseID> 
  </Object> 
  <File>FoodMart 2000.abf</File> 
</Backup>

このスクリプトを実行すると、データベースが FoodMart 2000.abf ファイルにバックアップされます。このファイルは、既定では C:\Program Files\Microsoft SQL Server\MSSQL.1\OLAP\Backup フォルダに存在します。

Backup コマンド

Backup コマンドの DLL は、次のようになります。

<Backup> 
<object>object_ref</object> 
<File>BackupFile</File>  
[<AllowOverwrite>true/false</AllowOverwrite>] 
[<BackupRemotePartitions>true/false</BackupRemotePartitions >] 
[<Locations> 
           [<Location> 
<File>BackupFile</File>  
<DataSourceID>Datasource ID</DataSourceID> 
           </Location >] 
      </Locations>] 
[<ApplyCompression>true/false</ApplyCompression >] 
[<Password>Password</Password>] 
</Backup>

リモート パーティションを使用している場合、Backup コマンドの Location 引数を使用することにより、1 つの Backup コマンドで複数のサーバーに存在するデータベースをバックアップするかどうかを制御できます。

図 3 に示すように、スレーブ サーバーにリモート パーティションがある場合、マスタ サーバーに Backup コマンドを送信して Locations 引数に正しい情報を指定することにより、1 つの Backup コマンドでデータベース全体をバックアップできます。この結果、マスタ サーバーとスレーブ サーバーにより、バックアップ全体を構成する 2 つのバックアップ ファイルが作成されます。

図 3

図 3

Backup コマンドのオプション

バックアップ操作でデータ ファイルを圧縮するかどうかを指定できます。通常、これによりパーティション ファイルが大きく改善されることはありません。これは、主にパーティション ファイルが既に圧縮された形式で保存されているためです。しかし、ディメンションの属性が付いたファイルでは、特にディメンションで多数の文字列を使用している場合は、いくらかの領域が節約されます。

パスワード オプションを使用すると、バックアップ ファイルを暗号化するかどうかを指定できます。Analysis Services では、入力したパスワードが保存されません。パスワードを安全な場所に保管しておくことは、データベース管理者の責任です。

バックアップ方針

Analysis Services データベースをバックアップする正しい方針を選択することは重要です。間違った方針を採用すると、多数のバックアップを行った場合に大量のバックアップ領域が無駄になる可能性があります。また、バックアップが最新のものではなかったために、データを失ったことが後になって判明する結果になることがあります。

Analysis Server オブジェクトのストレージ モードについて理解しておくことは重要です。

データベース内のすべてのパーティションとディメンションで、ROLAP および HOLAP ではなく OLAP ストレージ モードが使用されている場合、Analysis Services データベースにインポートするデータは処理時にだけ変更されます。そのため、処理のすぐ後にデータをバックアップのが適切です。

Analysis Services データベース内のオブジェクトに ROLAP または HOLAP ストレージ モードを使用する場合、Analysis Services が実際にはデータを保持していないことを理解する必要があります。前回の更新と最新のデータは、Analysis Services により動的に読み取られます。

この場合、バックアップの際に最も重要な情報は、Analysis Services が保持するデータではなく、オブジェクトの定義です。

データベースが完全に ROLAP である場合、同じ Backup コマンドを発行して、比較的小さいファイルにデータベースをバックアップできます。

HOLAP を使用する場合、または事前に何らかのキャッシング ソリューションを使用している場合は、分析管理オブジェクト (AMO) に用意されているインターフェイスを使用してデータベース オブジェクトをスクリプト化することが推奨されます。このような場合のバックアップは、やりすぎの可能性があります。バックアップするデータは、データベースをオンラインに戻すと再構築することが可能なキャッシュにすぎません。

リレーショナル データベースのバックアップが既にあり、データ ウェアハウスのリレーショナル部分を復元すると Analysis Services データベースを再処理可能なことが完全にはっきりしている場合を考えてみましょう。

この場合、バックアップ領域と、バックアップに必要な時間を節約するには、データベースの Create ステートメントだけをバックアップすることを検討できます。

この場合は、Analysis Services データベースを最初から再作成したら、完全に再処理する必要がある点に注意してください。このような方針を選択する前に、復元手順をテスト実行して、すべて正常な状態に戻すことができることを確認してください。

書き戻し

Analysis Services の書き戻し機能を使用する場合、必ずリレーショナル書き戻しテーブルをバックアップしてください。

クエリ ログ

クエリ ログを使用してデータベースの統計情報を収集することにより、後で使用法を元にした分析を使用してクエリ パフォーマンスを最大限に高めることができるようにする場合は、クエリ ログ テーブルもバックアップする必要があります。

クエリ ログ テーブルには、サーバー上のすべてのデータベースに関する情報が含まれている点に注意してください。クエリ ログ テーブルを復元すると、すべてのデータベースの統計がリセットされます。

クエリ ログ テーブルの Database 列を使用すると、データベースに関連する情報がどれかを判断でき、その情報だけをバックアップできます。

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

バックアップ操作は、Analysis Services の管理者またはデータベース管理者が実行してください。

バックアップ パフォーマンスの考慮事項

バックアップ中に Analysis Services により行われる主な操作は次のとおりです。

1.

バックアップ ファイルに含めるファイルの決定

2.

バックアップ ファイルの作成

最初の操作は非常に速いため、この段階では目立ったプロセッサ アクティビティがありません。

2 番目の部分は、I/O 負荷が特に高い操作です。

Analysis Services は、バックアップ ファイルにデータ ファイルを送り始めます。

バックアップ ファイルを独立したドライブに配置すると、バックアップ操作のパフォーマンスが向上することがあります。これにより、読み取り操作と書き込み操作の競合が防止される可能性があります。

バックアップ操作では、操作対象のデータベースで読み取りロックが取得されます。処理操作を開始できる必要があります。ただし、バックアップが完了するまでは処理操作をコミットできなくなります。

データ フォルダ全体のバックアップ

特定の状況では、障害からの復旧を保証するために、データ フォルダ全体をバックアップすることが可能です。

SQL Server 2000 Analysis Services の場合、システムのバックアップにこの方法が使用されることがありました。

SQL Server 2005 Analysis Services では、構成の分析をすべて完了したことが完全にはっきりし、すべての注意事項に対処したことを確認するまでは、この方法は推奨されません。

考慮事項の例を次に示します。

バックアップ可能なのはすべての Analysis Services データが含まれるデータ フォルダ全体だけで、単一のデータベースはバックアップできません。

パーティション上で StorageLocation プロパティを使用して、ファイル システム上のさまざまな場所に配置したすべてのパーティションを記録しておく必要があります。

リモート パーティションを使用しており、異なる名前のコンピュータ上でデータ フォルダを復元する場合、リモート パーティションの場所の指定に使用されるすべてのデータ ソースを確実に調整する必要があります。

SQL Server エージェント ジョブを使用したバックアップの自動化

Analysis Services のバックアップを自動化する方法はいくつかあります。

SQL Server エージェント ジョブを使用して実行可能な自動化について説明します。

SQL Server エージェント ジョブを使用してバックアップを管理するには

1.

SQL Server Management Studio の [SQL Server エージェント] の下で [ジョブ] ノードを右クリックし、新しいジョブの作成を開始します。

図 4 のダイアログ ボックスが表示されます。

2.

[名前] ボックスで、ジョブに名前を付けます。

3.

左側ペインで [手順] ノードをクリックし、[新規作成] をクリックしてジョブに新しいステップを作成します。図 5 に示すダイアログ ボックスが表示されます。

4.

ステップに名前を付け、[SQL Server Analysis Services コマンド] というステップの種類を選択します。

5.

このコマンドを実行する Analysis Services サーバーの名前を入力します。次に、実行する Backup コマンドを切り取って [コマンド] ウィンドウに貼り付けます。

6.

[新規ジョブ ステップ] ダイアログ ボックス (図 5) で [OK] をクリックし、[新規ジョブ] ダイアログ ボックス (図 4) で [OK] をクリックします。

7.

SQL Server Management Studio に戻ると、ここで作成したジョブの新しいノードが表示されます。

8.

新しいノードを右クリックし、ジョブを開始します。

進行状況を示すダイアログ ボックスが表示され、バックアップが作成されたことが示されます。

この時点から、全機能を備えた SQL Server エージェントを使用して、ジョブを管理できます。

たとえば、別のステップを追加して、データベース ファイルを安全な場所にコピーするなどの操作を行うことができます。

SQL Server エージェントでは、ジョブの実行の履歴を参照する機能や、他の多くの優れた機能を使用できます。

Backup コマンドのすべてのオプションについて学習して正しいバックアップ方針を選択し、自動化スクリプトが機能することを確認すると、障害から復旧する備えがある程度できたことになります。