SQL Server のデータベース ファイル(mdf、ldf)を Windows Azure ストレージ上に配置

SQL Server 2014 CTP2 からは、データベース ファイル(.mdf や .ldf)を Windows Azure 上のストレージに配置できるようになりました。次のように、CREATE DATABASE ステートメントの FILENAME に URL(Blob ストレージへのパス)を記述できます。

CREATE DATABASE aaa
ON PRIMARY
 ( NAME = aaa,
   FILENAME = 'https://teststorage111.blob.core.windows.net/container1/aaa.mdf')
LOG ON
 ( NAME = aaa_log,
   FILENAME = 'https://teststorage111.blob.core.windows.net/container1/aaa.ldf')


■ 利用手順
利用手順は、次のとおりです。
1. Windows Azure 上にストレージ アカウントを作成
2. ストレージ アカウント内にコンテナーを作成
3. コンテナーで共有アクセス署名SAS key)を作成(読み取り、書き込み、一覧権限を付与したもの)。共有アクセス署名は、Azure Storage Explorer ツールなどを利用して作成することができ、Azure Storage Explorer を利用する場合は、次のように「コンテナー」の「セキュリティ」で「Shared Access Signatures」の「Generate Signature」をクリックして作成できます。

4. 次に、SAS Key をもとに、CREDENTIAL(資格情報)を作成します。

CREATE CREDENTIAL [https://ストレージアカウント名.blob.core.windows.net/コンテナー名] 
   WITH IDENTITY='SHARED ACCESS SIGNATURE',
        SECRET = '3. で Generate した Signature'

以上で、あとは、CREATE DATABASE で、FILENAME にコンテナーへのパスおよび、作成したいデータベース ファイルの名前を記述すれば、Azure 上にデータベースを作成できます。

作成されたデータベース ファイルは、Azure Storage Explorer や Management Studio で確認することができます。

データベースのプロパティで、ファイル パスが Azure 上になっていることも確認できます。

なお、SAS Key/CREDENTIAL を作成しない状態で CREATE DATABASE を実行した場合は、次のようにエラーになります。

また、SAS Key の有効期限が切れた状態でデータベースへ接続(USE)しようすると、次のエラーになります(有効期限が切れているとデータベースが「復旧待ち」状態になります)。


■ 参考 URL
SQL Server Integration with Windows Azure Storage
http://msdn.microsoft.com/ja-jp/library/dn385720(v=sql.120).aspx