並列データ ウェアハウス (PDW) のデータのバックアップと復元のしくみについて説明します。 バックアップ操作と復元操作は、ディザスター リカバリーに使用されます。 バックアップと復元を使用して、あるアプライアンスから別のアプライアンスにデータベースをコピーすることもできます。
バックアップと復元の基本
PDW データベース バックアップ は、元のデータベースをアプライアンスに復元するために使用できるように、形式で格納されたアプライアンス データベースのコピーです。
PDW データベース バックアップは BACKUP DATABASE t-sql ステートメントを使用して作成され、 RESTORE DATABASE ステートメントで使用できるように書式設定されます。他の目的では使用できません。 バックアップは、同じ数以上のコンピューティング ノードを持つアプライアンスにのみ復元できます。
PDW では、SQL Server バックアップ テクノロジを使用して、アプライアンス データベースのバックアップと復元を行います。 バックアップ圧縮を使用するために、SQL Server バックアップ オプションが事前構成されています。 圧縮、チェックサム、ブロック サイズ、バッファー数などのバックアップ オプションを設定することはできません。
データベース バックアップは、独自の顧客ネットワークに存在する 1 つ以上のバックアップ サーバーに格納されます。 PDW は、コンピューティング ノードから 1 つのバックアップ サーバーにユーザー データベース バックアップを直接並列で書き込み、ユーザー データベース バックアップをバックアップ サーバーからコンピューティング ノードに直接復元します。
バックアップは、Windows ファイル システム内の一連のファイルとしてバックアップ サーバーに格納されます。 PDW データベースバックアップは PDW にのみ復元できます。 ただし、標準の Windows ファイル バックアップ プロセスを使用して、バックアップ サーバーから別の場所にデータベース バックアップをアーカイブできます。 バックアップ サーバーの詳細については、「バックアップ サーバーの 取得と構成」を参照してください。
データベース バックアップの種類
バックアップが必要なデータには、ユーザー データベースとシステム データベース (master データベースなど) の 2 種類があります。 PDW はトランザクション ログをバックアップしません。
データベースの完全バックアップは、PDW データベース全体のバックアップです。 これが既定のバックアップの種類です。 ユーザー データベースの完全バックアップには、データベース ユーザーとデータベース ロールが含まれます。 マスターのバックアップにはログインが含まれます。
差分バックアップには、前回の完全バックアップ以降のすべての変更が含まれます。 通常、差分バックアップは完全バックアップよりも短時間で完了します。完全バックアップよりも頻繁に実行できます。 複数の差分バックアップが同じ完全バックアップに基づいている場合、各差分には、前の差分のすべての変更が含まれます。
たとえば、完全バックアップを毎週作成し、差分バックアップを毎日作成できます。 ユーザー データベースを復元するには、完全バックアップと最後の差分 (存在する場合) を復元する必要があります。
差分バックアップは、ユーザー データベースでのみサポートされます。 マスターのバックアップは常に完全バックアップです。
アプライアンス全体をバックアップするには、すべてのユーザー データベースのバックアップとマスター データベースのバックアップを実行する必要があります。
データベースのバックアップ プロセス
次の図は、データベースバックアップ中のデータフローを示しています。
バックアップ プロセスは次のように機能します。
ユーザーが BACKUP DATABASE tsql ステートメントを制御ノードに送信します。
- バックアップは完全バックアップまたは差分バックアップです。
ユーザー データベースの場合、制御ノード (MPP エンジン) は、並列データベース バックアップを実行する分散クエリ プランを作成します。
バックアップに関係する各ノードは、SQL Server バックアップ機能を使用してバックアップ サーバーにバックアップ ファイルをコピーします。
関係する各ノードは、バックアップ サーバーに 1 つのバックアップ ファイルをコピーします。
ユーザー データベースのバックアップ (完全または差分) には、各コンピューティング ノードに格納されているデータベースの部分のバックアップと、データベース ユーザーとデータベース ロールのバックアップが含まれます。
アプライアンスは、InfiniBand ネットワークを使用してバックアップを並列で実行します。
PDW は、各完全バックアップと差分バックアップを並列で実行します。 ただし、複数のデータベース バックアップは同時に実行されません。 各バックアップ要求は、以前に送信されたバックアップが完了するまで待機する必要があります。
マスター データベースのバックアップでは、コントロール ノードからのデータのみがバックアップされます。 このバックアップの種類は、順次実行されます。
PDW データベース バックアップは、アプライアンスから離れたディレクトリに格納されているファイルのグループです。 ディレクトリ名は、ネットワーク パスとディレクトリ名として指定されます。 ディレクトリをローカル パスにすることはできません。また、アプライアンス上に置くことはできません。
バックアップが完了したら、Windows ファイル システムを使用して、必要に応じてバックアップ ディレクトリを別の場所にコピーできます。
バックアップを復元できるのは、コンピューティング ノードの数が同じかそれ以上の PDW アプライアンスのみです。
復元を実行する前に、バックアップの名前を変更することはできません。 バックアップ ディレクトリの名前は、バックアップの元の名前と一致する必要があります。 バックアップの元の名前は、バックアップ ディレクトリ内の backup.xml ファイルにあります。 データベースを別の名前に復元するには、restore コマンドで新しい名前を指定します。 たとえば、
RESTORE DATABASE MyDB1 FROM DISK = ꞌ\\10.192.10.10\backups\MyDB2ꞌと指定します。
データベース復元モード
データベースの完全復元では、データベース バックアップのデータを使用して PDW データベースが再作成されます。 データベースの復元は、最初に完全バックアップを復元してから、必要に応じて 1 つの差分バックアップを復元することによって実行されます。 データベースの復元には、データベース ユーザーとデータベース ロールが含まれます。
ヘッダー復元では、データベースのヘッダー情報のみが返されます。 アプライアンスにデータを復元しません。
アプライアンスの復元は、アプライアンス全体の復元です。 これには、すべてのユーザー データベースとマスター データベースの復元が含まれます。
復元プロセス
次の図は、データベースの復元中のデータフローを示しています。
コンピューティング ノードの数が同じアプライアンスへの復元**
データを復元すると、アプライアンスはソース アプライアンスと宛先アプライアンス上のコンピューティング ノードの数を検出します。 両方のアプライアンスに同じ数のコンピューティング ノードがある場合、復元プロセスは次のように機能します。
復元するデータベース バックアップは、アプライアンス以外のバックアップ サーバー上の Windows ファイル共有で使用できます。 最適なパフォーマンスを得るために、このサーバーはアプライアンス InfiniBand ネットワークに接続されています。
ユーザーが RESTORE DATABASE tsql ステートメントを制御ノードに送信します。
- 復元は、完全復元またはヘッダー復元のいずれかです。 完全復元では、完全バックアップが復元され、必要に応じて差分バックアップが復元されます。
制御ノード (MPP エンジン) は、並列データベース復元を実行する分散クエリ プランを作成します。
Analytics Platform System (PDW) は、ユーザー データベースの復元を並列で実行します。 ただし、複数のデータベース バックアップと復元は同時に実行されません。 MPP エンジンは、各復元ステートメントをキューに格納します。以前に送信されたバックアップと復元の要求が完了するまで待機する必要があります。
マスター データベースの復元では、コントロール ノードにデータのみが復元されます。復元は順次実行されます。
ヘッダー情報の復元は簡単な操作であり、コンピューティング ノードまたは制御ノードにデータを復元しません。 代わりに、制御ノードはクエリ出力として結果を返します。
バックアップ ファイルは、通常はアプライアンス InfiniBand ネットワーク経由で、適切なコンピューティング ノードに並列にコピーされます。
各コンピューティング ノードは、ユーザー データベースの部分を復元します。 いずれかの復元が正常に完了しない場合、すべてのデータベースが削除され、復元が正常に完了しません。
コンピューティング ノードの数が多いアプライアンスへの復元
より多くの計算ノードを備えたアプライアンスにバックアップを復元すると、計算ノードの数に比例して、割り当てられるデータベースのサイズが大きくなります。
たとえば、2 ノード アプライアンス (ノードあたり 30 GB) から 6 ノード アプライアンスに 60 GB のデータベースを復元する場合、SQL Server PDW は 6 ノード アプライアンスに 180 GB のデータベース (ノードあたり 30 GB の 6 ノード) を作成します。 SQL Server PDW は、ソース構成に合わせてデータベースを最初に 2 つのノードに復元した後、6 つのノードすべてにデータを再配布します。
再配布後、各コンピューティング ノードには、小さいソース アプライアンス上の各コンピューティング ノードよりも実際のデータが少なく、空き領域が多くなります。 追加の領域を使用して、データベースにデータを追加します。 復元されたデータベース サイズが必要以上の場合は、 ALTER DATABASE を使用してデータベース ファイル のサイズを縮小できます。
関連タスク
| バックアップと復元タスク | Description |
|---|---|
| サーバーをバックアップ サーバーとして準備します。 | バックアップ サーバーを取得して構成する |
| データベースをバックアップします。 | データベースのバックアップ |
| データベースを復元する。 | リストアデータベース |