こんにちは、Windows Azure サポートチームです。

SQL Azure に関するお問い合わせの中で、よくあるお問い合わせの一つを紹介したいと思います。

[質問]

SQL Azure 上のデータをテーブル単位でバックアップする方法について知りたい。

 

[解決策]

SQL Azure 上のデータをテーブル単位でバックアップする方法として、BCP ユーティリティ や、SQL Server Integration Services (SSIS) などのツールを使用することにより、可能となります。

今回は、SQL Server Integration Services を使用し、SQL Azure 上の別データベースに、該当テーブルのデータをバックアップする方法を紹介します。

なお、これから紹介する方法は、前回 【事例3】 プライマリ キーを削除できない で紹介させて頂きました、プライマリ キーを削除、変更するために、一時的にテーブル上のデータを退避する方法としても有効です。

 

[手順]

1) SQL Server Management Studio 2008 R2 SP1 より、SQL Azure に接続し、SQL Azure 上のバックアップ対象テーブルをスクリプト化します。

 

※ SQL Server Management Studio Express 2008 R2 SP1 は以下の URL よりダウンロードが可能です。

Microsoft SQL Server 2008 R2 Service Pack 1

http://www.microsoft.com/downloads/ja-jp/details.aspx?familyid=b9aa2dba-7f20-4c0c-9afd-1eebee5a94ea

+ SQLManagementStudio_x86_JPN.exe (32ビット環境の場合)

+ SQLManagementStudio_x64_JPN.exe (64ビット環境の場合)

 

image

スクリプト化するテーブルを含むデータベース -> 右クリック -> スクリプトの生成 を選択します。

image

“特定のデータベース オブジェクトの選択” を選択後、対象のテーブルを選択し、”次へ“ を選択します。

image

“詳細設定” を選択します。

image

“データベース エンジンの種類に対応したスクリプト” を SQL Azure データベース に変更します。また、必要に応じてその他 オプションを変更し、”OK“ を選択します。(今回は、スクリプトの照合順序、インデックスのスクリプト化をTrue に変更しました。)

image

スクリプトの出力先を指定後、“次へ” を選択します。

image

“次へ” を選択します。

image

正常にオブジェクトのスクリプト化処理が完了したことを確認後、“完了” を選択します。

2) SQL Server Management Studio 2008 R2 SP1 より、SQL Azure 上の別のデータベースに接続し、1) で作成したスクリプトを実行します。

 

3) “データのインポートおよびエクスポート” を起動します。

image

 

4) “データのインポートおよびエクスポート” を使用し、SQL Azure 上の 該当データベース から 別データベースに対してテーブルデータをバックアップします。

※ 本手順では、”TEST” データベース から “TEST2” データベースに対して、テーブルデータをバックアップしています。

image

バックアップ元 の SQL Azure 上のデータベースを選択し、”次へ” を選択します。

- データ ソース : .Net Framework Data Provider for SqlServer を選択します。

- Network Library : TCP/IP を選択します。

- Connect Timeout : 接続タイムアウト値を指定します。

- Encrypt : 暗号化設定を指定します。

- User ID/Password : 該当のデータベースに接続するための UserID/Password を指定します。

- Data Source : 接続する SQL Azure サーバー名を指定します。

- Initial Catalog : 接続するデータベースを指定します。

 

image

バックアップ先 の SQL Azure 上のデータベースを選択し、”次へ” を選択します。

- データ ソース : .Net Framework Data Provider for SqlServer を選択します。

- Network Library : TCP/IP を選択します。

- Connect Timeout : 接続タイムアウト値を指定し���す。

- Encrypt : 暗号化設定を指定します。

- User ID/Password : 該当のデータベースに接続するための UserID/Password を指定します。

- Data Source : 接続する SQL Azure サーバー名を指定します。

- Initial Catalog : 接続するデータベースを指定します。

 

image

“1つ以上のテーブルまたはビューからデータをコピーする” を選択後、”次へ” を選択します。

image

変換元、変換先に同じテーブル名が指定されていることを確認後、”次へ” を選択します。

image

“すぐに実行する” にチェックし、”次へ” を選択します。

image

内容を確認後、”完了” を選択します。

image

正常にデータが転送されたことを確認後、”閉じる” を選択します。

SQL Server Integration Services (SSIS) は、バックアップ対象となっているテーブルが多いほど、便利なツールであるため、

ご使用していただければと存じます。

 

※ 本Blogの内容は、20111130 日 現在の内容となっております。

--
Support Engineer
Nobushiro Takahara