SQL Server 2014 ではデータベースのファイルを Microsoft Azure の BLOB ストレージに配置することができるようになりました。
以前、[SQL Server 2014 CTP2]Azure 連携の強化 という投稿で少し触れたのですが、RTM 版でまとめてみたいと思います。
技術情報としては Windows Azure 内の SQL Server データ ファイル になるかと。
BLOB ストレージにファイルを配置する場合、Shared Access Signature (SAS) Key が必要となります。
SAS の生成は Azure Storage Explorer を使用すると簡単にできますのでインストールをしておきます。
BLOB との接続には SQL Server 内の資格情報を使用しますが、その際の形式は以下のようになります。
CREATE CREDENTIAL [https://<コンテナーの URL>] WITH IDENTITY='SHARED ACCESS SIGNATURE', SECRET = '<SAS Key>'
IDENTITY に関しては [SHARED ACCESS SIGNATURE] が固定の文字列となります。
資格情報名はデータベースのファイルを配置する BLOB ストレージのコンテナーの URL を指定します。
CREATE DATABASE をする際には、指定したファイルの格納先の URL と資格情報名の URL をマッピングしてどの資格情報を使用するかの判断を行っているようです。
[SAS Key] に関しては Azure Storage Explorer から生成できますが、注意点が一つあります。
SAS Key はコンテーを選択して、[Security] から生成することができます。
# コンテナーの URL の ? 以降を SECRET に指定します。
Shared Access Signatures から作成した場合、Start /Expiry Time は 1 時間以内に設定する必要があるようでそれ以上の時間を設定するとうまく動作しませんでした。
Expiry Time に達した場合、データベースへのアクセスが正常にできなくなりそうです。
SAS Key を生成する場合には、Shared Access Policies からポリシーを作成し、
そのポリシーを使用して SAS Key を生成します。
この場合であれば、1 時間以上指定することができますので、通常運用にマッチする設定ができると思います。
# 期限が切れてしまった場合は、一度資格情報を削除し、余裕のある期限を設定して SAS Key を生成して新規の資格情報を作成することでリカバリーできます。
以下のような資格情報を作成すれば、複数のコンテナーを使用したデータベースの作成も可能です。
# 異なるストレージアカウントにファイルを配置することもできます。
CREATE CREDENTIAL [https://sql2014teststorage.blob.core.windows.net/data] WITH IDENTITY='SHARED ACCESS SIGNATURE', SECRET = 'sr=c&si=SQLPolicy&sig=xxxxxxxxxxxxxxxxxxxxx CREATE CREDENTIAL [https://sql2014teststorage.blob.core.windows.net/log] WITH IDENTITY='SHARED ACCESS SIGNATURE', SECRET = 'sr=c&si=SQLPolicy&sig=xxxxxxxxxxxxxxxxxxxxx CREATE DATABASE BLOBTEST ON (NAME=BLOBTEST_Data, FILENAME='https://sql2014teststorage.blob.core.windows.net/data/BLOBTEST_Data1.mdf') LOG ON (NAME=BLOBTEST_Log, FILENAME='https://sql2014teststorage.blob.core.windows.net/log/BLOBTEST_Log.ldf')
データベースのファイルを BLOB に配置する構成のメリットとしては、Azure の仮想マシンのインスタンスのサイズに依存せずにデータベースのファイルを追加することができることがあるかと思います。
Azure の仮想マシンでは、インスタンスのサイズに応じて最大で 16 本のデータディスクを追加することができ、この場合は最大で 16TB のデータベースを作成することができます。
BLOB にデータベースのファイルを配置した場合は、データディスクの本数に依存せずにデータベースを作成することができるようになりますので、16TB の制限を超えることができます。
久しぶりに設定しようとして少し方法を忘れていたので備忘録として RTM で試してみました。
[…] 以前、SQL Server 2014 のデータベースのファイルを BLOB に配置する構成について という投稿をしました。 この投稿ではデータベースを作成するパターンで記載したのですが、BLOB ストレージへの配置はデータベースのデタッチ/アタッチ方式でも使用することができます。 […]
SQL Server 2014 の BLOB ストレージへの配置を使用したデータベースのアタッチ | SE の雑記
11 5月 14 at 22:18