バックアップと復元

Parallel Data Warehouse (PDW) のデータのバックアップと復元のについて説明します。 バックアップと復元操作は、ディザスター リカバリーに使用されます。 バックアップと復元を使用して、あるアプライアンスから別のアプライアンスにデータベースをコピーすることもできます。

バックアップと復元の基本

PDW データベース バックアップ は、アプライアンスに元のデータベースを復元するために使用できるように、形式で格納されたアプライアンス データベースのコピーです。

PDW データベース バックアップは BACKUP DATABASE t-sql ステートメントで作成され、RESTORE DATABASE ステートメントで使用するために書式設定されます。他の目的では使用できません。 バックアップは、同じ数以上の計算ノードを持つアプライアンスにのみ復元できます。

PDW は、アプライアンス データベースのバックアップと復元に SQL Server バックアップ技術を利用しています。 バックアップ圧縮を使用するために、SQL Server バックアップ オプションが事前構成されています。 圧縮、チェックサム、ブロック サイズ、バッファー カウントなど、バックアップ オプションを設定することはできません。

データベース バックアップは、独自の顧客ネットワークに存在する 1 つ以上のバックアップ サーバーに格納されます。 PDW は、計算ノードから 1 つのバックアップ サーバーにユーザー データベース バックアップを直接並列で書き込み、ユーザー データベース バックアップをバックアップ サーバーから計算ノードに直接並行して復元します。

バックアップは、Windows ファイル システム内の一連のファイルとしてバックアップ サーバーに格納されます。 PDW データベース バックアップは PDW にのみ復元できます。 ただし、標準の Windows ファイル バックアップ プロセスを使用して、バックアップ サーバーから別の場所にデータベース バックアップをアーカイブできます。 バックアップ サーバーの詳細については、「バックアップ サーバーの取得と構成」を参照してください。

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

バックアップが必要なデータには、ユーザー データベースとシステム データベース (マスター データベースなど) の 2 種類があります。 PDW はトランザクション ログをバックアップしません。

データベースの完全バックアップは、PDW データベース全体をバックアップします。 これは、既定のバックアップの種類です。 ユーザー データベースの完全バックアップには、データベース ユーザーとデータベース ロールが含まれます。 マスターのバックアップにはログインが含まれます。

差分バックアップには、前回の完全バックアップ以降のすべての変更が含まれます。 通常、差分バックアップは完全バックアップよりも短時間で完了します。完全バックアップよりも頻繁に実行できます。 複数の差分バックアップが同じ完全バックアップに基づくとき、各差分バックアップには、前の差分バックアップのすべての変更が含まれます。

例えば、完全バックアップを毎週作成し、差分バックアップを毎日作成できます。 ユーザー データベースを復元するには、完全バックアップと最後の差分 (存在する場合) を復元する必要があります。

差分バックアップは、ユーザー データベースでのみサポートされます。 マスターのバックアップは常に完全バックアップです。

アプライアンス全体をバックアップするには、すべてのユーザー データベースのバックアップとマスター データベースのバックアップを実行する必要があります。

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

次の図は、データベースバックアップ中のデータフローを示しています。

PDW backup process

このバックアップ プロセスは次のように動作します。

  1. ユーザーが BACKUP DATABASE tsql ステートメントを制御ノードに送信します。

    • バックアップは完全バックアップまたは差分バックアップのどちらかです。
  2. ユーザー データベースの場合、制御ノード (MPP エンジン) は、並列データベース バックアップを実行する分散クエリ プランを作成します。

  3. バックアップに関係する各ノードは、SQL Server バックアップ機能を使用してバックアップ サーバーにバックアップ ファイルをコピーします。

    • 関係する各ノードは、バックアップ サーバーに 1 つのバックアップ ファイルをコピーします。

    • ユーザー データベースのバックアップ (完全または差分) には、各計算ノードに格納されているデータベースの部分のバックアップと、データベース ユーザーとデータベース ロールのバックアップが含まれます。

  4. アプライアンスは、InfiniBand ネットワークを使用してバックアップを並列で実行します。

    • PDW は、各完全バックアップと差分バックアップを並列で実行します。 ただし、複数のデータベース バックアップが同時に実行されることはありません。 各バックアップ要求は、以前に送信されたバックアップが完了するまで待機する必要があります。

    • マスター データベースのバックアップでは、計算ノードからのデータのみがバックアップされます。 このバックアップの種類は、順次実行されます。

  5. PDW データベース バックアップは、アプライアンスから離れたディレクトリに格納されているファイルのグループです。 ディレクトリ名は、ネットワーク パスとディレクトリ名として指定されます。 ディレクトリはローカル パスであることはできません。また、アプライアンス上に置くこともできません。

  6. バックアップが完了したら、Windows ファイル システムを使用して、必要に応じてバックアップ ディレクトリを別の場所にコピーできます。

    • バックアップは、同数以上の計算ノードを持つ PDW アプライアンスのみ復元できます。

    • 復元を実行する前に、バックアップの名前を変更することはできません。 バックアップ ディレクトリの名前は、バックアップの元の名前と一致する必要があります。 バックアップの元の名前は、バックアップ ディレクトリ内の backup.xml ファイルにあります。 データベースを別の名前に復元するには、 restore コマンドで新しい名前を指定します。 (例: RESTORE DATABASE MyDB1 FROM DISK = ꞌ\\10.192.10.10\backups\MyDB2ꞌ)。

データベースの復元モード

データベースの完全復元では、データベース バックアップのデータを使用して PDW データベースが再作成されます。 データベースの復元は、最初に完全バックアップを復元してから、さらにオプションで差分バックアップを 1 つ復元することによって実行されます。 データベースの復元には、データベース ユーザーとデータベース ロールが含まれます。

ヘッダーのみの復元は、データベースのヘッダー情報が返されます。 アプライアンスにデータを復元することはありません。

アプライアンスの復元は、アプライアンス全体の復元です。 これには、すべてのユーザー データベースとマスター データベースの復元が含まれます。

復元プロセス

次の図は、データベースの復元中のデータフロー図を示しています。

Restore process

同じ数の計算ノード** を備えたアプライアンスへの復元

データを復元すると、アプライアンスはソース アプライアンスと転送アプライアンス上の計算ノードの数を検出します。 両方のアプライアンスに同じ数の計算ノードがある場合、復元プロセスは次のように機能します。

  1. 復元するデータベース バックアップは、アプライアンス以外のバックアップ サーバー上の Windows ファイル共有で使用できます。 最適なパフォーマンスを得るために、このサーバーはアプライアンス InfiniBand ネットワークに接続されています。

  2. ユーザーが RESTORE DATABASE tsql ステートメントを制御ノードに送信します。

    • 復元は、完全復元またはヘッダー復元のいずれかです。 完全復元では、完全バックアップが復元され、オプションで差分バックアップを復元します。
  3. 制御ノード (MPP エンジン) は、並列データベースの復元を実行する分散クエリ プランを作成します。

    • 分析プラットフォーム システム (PDW) は、ユーザー データベースの復元を並列で実行します。 ただし、複数のデータベース バックアップと復元は同時に実行されません。 MPP エンジンは、各復元ステートメントをキューに格納します。以前に送信されたバックアップと復元の要求が完了するまで待機する必要があります。

    • マスター データベースの復元では、制御ノードにデータのみが復元されます。復元は順次実行されます。

    • ヘッダー情報の復元は簡単な操作であり、計算ノードまたは制御ノードにデータを復元しません。 代わりに、制御ノードはクエリ出力として結果を返します。

  4. バックアップ ファイルは、通常はアプライアンス InfiniBand ネットワーク経由で、適切な計算ノードに並列にコピーされます。

  5. 各計算ノードは、ユーザー データベースの一部を復元します。 いずれかの復元が正常に完了しない場合、すべてのデータベースが削除され、復元は正常に完了しません。

より多くの計算ノードを備えたアプライアンスへの復元

より多くの計算ノードを備えたアプライアンスにバックアップを復元すると、計算ノードの数に比例して、割り当てられるデータベースのサイズが大きくなります。

例えば、2 つのノードを備えたアプライアンス (ノードあたり 30 GB) から 6 つのノードを備えたアプライアンスに 60 GB のデータベースを復元する場合、SQL Server PDW は、6 つのノードを備えたアプライアンス上に 180 GB のデータベース (6 ノード、ノードあたり 30 GB) を作成します。 SQL Server PDW は、まず 2 つのノードに復元することでソースの構成と一致させ、次に 6 つのノードすべてにデータを再割り当てします。

再割り当て後の各計算ノードでは、小さい方のソース アプライアンス上の各計算ノードと比べて、含まれる実際のデータが少なくなり、空き領域が大きくなります。 追加の領域を使用して、データベースにデータを追加します。 復元されたデータベースのサイズが必要以上に大きい場合は、ALTER DATABASE を使用してデータベース ファイルのサイズを縮小することができます。

バックアップと復元タスク 説明
サーバーをバックアップ サーバーとして準備します。 バックアップ サーバーの取得と構成
データベースをバックアップします。 BACKUP DATABASE
データベースを復元する。 RESTORE DATABASE