Windows Azure BlobストレージにSQL Serverのデータベースをバックアップしたり、リストアする方法

SQL Server 2012 SP1 CU2で、バックアップ先/リストア元のストレージとしてWindows Azureストレージを選択できるようになりました。
T-SQLかSMO(Server Management Objects)で実行できます。

オンプレミスのSQL Server向けの機能強化ですが、Windows Azure VM上のSQL Serverでも使用できます。

前提条件

SQL Server 2012 SP1 CU2をインストールしている必要があります。
ダウンロードは、ここからできます。
当然、Windows Azureのアカウントが必要です。

Windows Azureストレージの作成

Windows Azure blobストレージにデータベースをバックアップするために、Windows Azureストレージアカウントを作成する必要があります。

  1. Windows Azure管理ポータルにログインします。
  2. 管理ポータルの下部の「New」ボタンをクリックします。
  3. リボン上で、[DATA SERVICES]‐[STORAGE]‐[QUICK CREATE]を選択します。
  4. [URL]にストレージアカウントのURLに使用するサブドメイン名を入力します。
    3~24文字の英数字を入力してください。
    [REGION/AFFINITY GROUP]に、地域とアフィニティグループを選択してください。
  5. [CREATE STORAGE ACCOUNT]をクリックします。

コンテナの作成

次にストレージアカウントにコンテナを作成します。
コンテナはblobをグルーピングする一塊です。

  1. 管理ポータルからストレージアカウントを選択します。ストレージアカウントのダッシュボードが開きます。
  2. [CONTAINERS]タブを選択し、コンテナ一覧を表示します。
    ストレージアカウントを作成した直後であれば、コンテナはありません。
    [CREATE A BLOB CONTAINER]か[ADD CONTAINER]ボタンをクリックします。
  3. 新しいBLOBコンテナを作成する画面が開きます。
    NAMEに、コンテナ名を入力します。ACCESSをPrivateに選択し、ボタンをクリックします。

SQL Serverで認証情報を作成する

SQL ServerにWindows Azure ストレージ認証情報を格納するために認証を作成する必要があります。SQL Server Manaement Studioを使用してSQL Serverに接続し、新しいクエリウィンドウを開きます。
次のT-SQLで、Windows Azureストレージ認証用の認証情報を作成します。

CREATE CREDENTIAL mycredential
WITH IDENTITY = ‘mystorageaccount’,SECRET = ‘<storage access key>’;

Windows Azure管理ポータルに戻り、ストレージのDASHBOARDで[MANAGE KEYS]ボタンをクリックします。

Manage Access Keysウィンドウが開きます。

ストレージアカウントの名前をコピーし、T-SQLの「mystorageaccount」部分に貼り付けます。[PRIMARY ACCESS KEY]か[SECONDARY ACCESS KEY]をコピーし、「Storage Access Key」部分に貼り付けます。

T-SQLを実行します。
「mycredential」認証の作成に成功したら、次のクエリで情報を確認することができます。

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

認証を作成した後、認証情報を使用してWindows Azure Blobストレージにデータベースをバックアップすることができます。次の例は、AdventureWorks2012データベースをWindows Azure Blobストレージサービスにバックアップしています。

BACKUP DATABASE AdventureWorks2012
TO URL = ‘https://pfestorageaccount.blob.core.windows.net/sqlbackup/AdventureWorks2012.bak’
WITH CREDENTIAL = ‘mycredential’
,STATS = 5;
GO

サードパーティのWindows Azureストレージの管理ツールで、バックアップファイルを確認することができます。

データベースのリストア

次のクエリでデータベースをリストアすることができます。

RESTORE DATABASE AdventureWorks2012
FROM URL = ‘https://pfestorageaccount.blob.core.windows.net/sqlbackup/AdventureWorks2012.bak’
WITH CREDENTIAL = ‘mycredential’
,STATS = 5;
GO

参考情報

詳細な情報が、MSDNライブラリで提供されています。
このチュートリアルを参照してください。

この投稿は、MSDNブログの韓国プレミアムフィールドエンジニブログに投稿された「How to backup and restore user database from SQL server to Windows Azure blob storage.」をざっくり違約した投稿です。