オンプレミスのSQL Server データベースのバックアップ先としてクラウドを活用しよう

このSQL Server 2012 SP1 CU2 または SQL Server 2008 R2 CU6から、新しい機能が追加され、オンプレミスのSQL Serverのデータベースのバックアップ先としてWindows AzureのBlobストレージを指定することができるようになりました。また逆にWindows AzureのBlobストレージにあるバックアップファイルからオンプレミスにデータベースをリストアすることも可能になりました。

この機能により、バックアップの取得先としてテープ等のデバイスが不要になったりと、コスト削減につながる可能性がでてきます。

イメージとしては以下のようになります。

clip_image004[6]

それでは実際に操作してみましょう。

まず、バックアップファイル格納先のストレージを作成しておきます。Windows Azure 管理ポータルにアクセスし、「ストレージ」をクリック後、左下に出てくる「新規」をクリックします。

clip_image006[4]

「ストレージ」-「簡易作成」をクリックします。

clip_image008[4]

「URL」欄に名称を指定、格納先のデータセンターの場所を一覧から選び、「ストレージアカウントの作成」をクリックします。

clip_image010[4]

作成の進行状況が表示されます。

clip_image012[4]

作成が完了すると、「オンライン」と表示されます。

clip_image014[4]

次にコンテナーを作ります。先ほど作成したストレージ名をクリックすると、下記の画面になります。「コンテナー」をクリックし、「アクセスキーの管理」をクリックします。

clip_image016[4]

「コンテナーを作成する」をクリックします。

clip_image018[4]

新しいコンテナーの名前を指定します。ここではsqlbackupと指定しています。アクセス方法を選びます。今回は「プライベート」を指定し、Windows Azureアカウントの認証に必要な情報を指定できるユーザーだけがアクセスできるように設定します。

clip_image020[4]

コンテナーが作成されます。URLをコピーしておきます。ここでは https://kayobkup.blob.core.windows.net/sqlbackup となります。

clip_image022[6]

また、アクセスするのに必要なアクセスキー情報もここでコピーしておきます。「アクセスキーの管理」をクリックします。

clip_image024[6]

プライマリアクセスキー値をコピーします。

clip_image026[6]

次に、バックアップの取得元のオンプレミスのSQL ServerにSQL Server Management Studio で接続します。

clip_image029
 

今回は AdventureWorks2012 データベースのバックアップをBlobストレージに取得してみます。また、その後、取得したバックアップをもとにリストアも試してみましょう。

まず、Blobストレージにアクセスするための資格情報を作成します。これは、SQL Serverでは、Windows Azureのアカウント名とアクセスキー認証をSQL Server資格情報に格納する必要があるためです。

資格情報を作成するには下記のコマンドを実行します。

CREATE CREDENTIAL myCredential ---任意の名前を指定します。

WITH IDENTITY='kayobkup', ---ストレージ名を指定します。

SECRET='アクセスキーの管理からコピーしたプライマリアクセスキー値を指定します';

次にバックアップを取得します。下記のコマンドを実行します。下記のhttps://kayobkup.blob.core.windows.net/sqlbackupの部分には先ほど作成したコンテナーのURLを指定してください。また、バックアップファイル名は任意ですが、日付情報を指定しておくとよいでしょう。

BACKUP DATABASE AdventureWorks2012 TO

URL='https://kayobkup.blob.core.windows.net/sqlbackup/AdventureWorks2012_5_8_2013.bak'

WITH COMPRESSION, CREDENTIAL='myCredential', STATS=5;

実行状況がOutput欄に出力されます。

clip_image032[4]

コンテナーを見てみると、バックアップが取得され、取得日時とサイズが確認できます。

clip_image034[4]

それでは、データベースのリストアを試してみましょう。ここではAdventureWorks2012データベースを置き換えてリストアするマンドを実行します。

CREATE CREDENTIAL myCredential

WITH IDENTITY='kayobkup',

SECRET='アクセスキーの管理からコピーしたプライマリアクセスキー値を指定します';

RESTORE DATABASE AdventureWorks2012 FROM

URL='https://kayobkup.blob.core.windows.net/sqlbackup/AdventureWorks2012_5_8_2013.bak'

WITH CREDENTIAL='myCredential', STATS=5, REPLACE

clip_image038[6] 

リストアができました。

ここで、URLにはhttps:// を指定していますが、https:// を指定し通信を暗号化することもできます。(推奨)

上記のコマンドのオプションについての詳細はこちらをご覧ください。

参考
SQL Server 2012 SP1 CU2とSQL Server 2008 R2 CU6にて新しく追加された機能の詳細
Description of new features in Cumulative Update 2 for SQL Server 2012 SP1 and Cumulative Update 6 for SQL Server 2008 R2

Windows Azure BLOB ストレージ サービスを使用した SQL Server のバックアップと復元
https://msdn.microsoft.com/ja-jp/library/jj919148.aspx

※ 2013 年 5月 8 日現在の情報です。仕様については変更される可能性があります。

--

SQL Server / Windows Azure SQL Database Support

Kayoko Gray