SQL Azure

SQL Azureと呼ばれていたWindows Azure SQL Databaseのサービス内容合意書(SLA)では、マイクロソフトが管理できない外的要因からのデータ消失への対応は例外扱いにしています。
外的要因とは、戦争や空爆、暴動、犯罪もしくは、地震や噴火、洪水のような自然災害などです。
これらによりデータセンターがダメージを受け、レプリカやオンサイトバックアップからデータをリカバリできなくなることがあります。
現在、Windows Azure SQL Databaseはオフサイトバックアップを取得していません。

SQL Database チームは、SQL Databaseでのビジネス継続性の維持に関する素晴らしいガイドラインを提供しています。

この投稿では、他のリージョンにあるWindows Azureデータセンターで稼働しているWindows Azure SQL Databaseにオフサイトバックアップを簡単に取得する方法について説明します。
Windows Azureポータルを使用して、データ層アプリケーションロジカルバックアップ(BACPAC)を他のデータセンターにあるWindows Azure Storageへエクスポートします。

Windows Azure SQL Databaseのコピー作成

BACPACは論理バックアップで、トランザクションは考慮されません。
ユーザーがデータベースに書き込みをしている際にBACPACを取得すると、BACPACはデータ不整合が発生する可能性があります。たとえば、外部参照キーの不整合などがありえます。
そのため、最初にデータベースのコピー(Windows Azure SQL Database Copy)を作成し、作成したデータベースのコピーからエクスポートを実行する必要があります。
データベースのコピーはトランザクションが考慮されます。

  1. SQL Server Management Studioを使用してWindows Azure SQL Databaseに接続します
  2. オブジェクトエクスプローラーでエクスポートしたいデータベースを選択し、
    右クリックから「新しいクエリ」を選択します。
  3. クエリウィンドウで次のクエリを入力します。
    CREATE DATABASE <destination_database_name> AS COPY OF <source_database_name>
  4. このコマンドを実行すると、すぐに結果が返ってきます。
    しかし、Windows Azure SQL Databaseはバックグラウンドでコピーを処理しています。
    コピーの実行上状況は、sys.dm_database_copiessys.databasesビューでモニタリングすることができます。
  5. コピーが完了したら、コピーしたデータベースからBACPACを作成します。
    コピーしたデータベースには、INSERTやUPDATE、DELETEは実行しないように注意してください。

データベースコピーについては、「データベース・コピーを使用してSQL Azureデータベースをバックアップする」も参照してください。

Windows Azureポータルを使用したBACPACファイルの作成

Windows Azureポータルを使用すると、Windows Azure SQL Databaseから直接Windows Azure Storage BlobにBACPACファイルを出力することができます。

出力方法については、「管理ポータルからSQL Azureデータベースのインポート/エクスポート」を参照してください。

情報源

Prevent Data Loss from Force Majeure」をざっくりと大胆にまとめた記事です。

SQL Azure

SQL Data Sync(旧称:SQL Azure Data Sync)Preview 6がリリースされました。
このリリースでは、おもに次の2点改善されています。

  • 同期タスクと初期プロビジョニングの性能が改善されました
  • オンプレミスのデータベースとWindows Azure SQL Database間の同期性能が改善されました

新しいエージェントを、「SQL Azure Data Sync Agent Preview」からダウンロードできます。

また、すべての後続のプレビューリリースを通常のサービスアップデートの代わりに、Previewと呼称するつもりです。

情報源

SQL Data Sync Preview 6 is now live!

SQL Azure

image

Windows Azure SQL Databaseは、インターネット上で提供されるデータベースサービスです。
セキュリティを確保するため、SQL Databaseに接続することができるIPアドレスを制限する機能として、Firewallが提供されています。

SQL Databaseがリリースされた当初から今まで提供されていたのは、SQL DetabaseサーバーレベルのFirewallでした。SQL Databaseサーバーに接続することができるIPを指定すると、SQL Databaseに含まれるすべてのデータベースに接続することができました。

これまではできなかったデータベース個別のFirewall設定ができるようになり、SQL Databaseに含まれる特定のデータベースだけにしか接続できないIPを設定することができるようになりました。

概要

image

Azure SQL Databaseに接続をする場合の挙動が、今後次のようになります。

  1. サーバーレベルのFirewallルールで許可されたIP範囲の中に、リクエスト元のIPアドレスが含まれていれば、SQL Databaseへの接続が許可されます。
  2. サーバーレベルのFirewallルールにリクエスト元のIPアドレスが含まれていない場合は、データベースレベルのFirewallルールをチェックします。リクエスト元のIPアドレスが、データベースレベルのFirewallルールで許可されたIP範囲に含まれていれば、データベースレベルのルールと適合したデータベースだけ接続が許可されます。
  3. サーバーレベルもしくはデータベースレベルのFirewallルールで許可されたIP範囲の中に、リクエスト元のIPアドレスが含まれていない場合、接続は失敗します。

データベースレベルのFirewallルール制御

今のところGUIでの制御画面が提供されていないので、設定したいデータベースに対してT-SQLクエリを発行することで設定します。

ルールの確認

select * from sys.database_firewall_rules

ルールの作成

exec sp_set_database_firewall_rule N’Example DB Setting 1′,’0.0.0.4′,’0.0.0.4′

ルールの更新

exec sp_set_database_firewall_rule N’Example DB Setting 1′,’0.0.0.4′,’0.0.0.5′

ルールの削除

exec sp_delete_database_firewall_rule N’Example DB Setting 1′

次の図は、未設定、作成、更新、削除をした、それぞれのタイミングで確認クエリを発行したときの内容です。

image

FederationメンバーDBへの影響について

データベースレベルのFirewallルールを設定したルートデータベースに、Federationを作成した場合、
フェデレーションメンバーデータベースには、データベースレベルのFirewallルールはコピーされません。

フェデレーションメンバーデータベースで、データベースレベルのFirewallルールを定義する必要がある場合は、個別にデータベースレベルのルールを作成する必要があります。

フェデレーションメンバーデータベースにデータベースレベルのFirewallルールを定義してある状態で、メンバーデータベースをSPLITすると、新しいメンバーデータベースにもFirewallルールが複製されます。

参考・元情報

SQL Azure

SQL Server Management Studio や Visual Studio のサーバーエクスプローラーからWindows Azure SQL Database (SQL Azure)に接続するのに必要な点を説明します。

ソフトウェアのバージョンを確認する

SQL Server Management Studio

SQL Server Management Studioを使用する場合は、SQL Server Management Studio 2008 R2 SP1以降(SQL Server Management Studio 2012でもOK)を使用する必要があります。

Windows Azure SQL Database Federationを管理したいのなら、SQL Server Management Studio 2012を使用したほうが良いでしょう。

Visual Studio

Visual Studio 2010から直接接続したい場合は、Visual Studio 2010 SP1を使用する必要があります。
さらに、最新のWindows Azure SDKがインストールされているかを確認してください。
Visual Studio 2010からWindows Azure SQL Databaseに接続する場合、Azure SDK内に含まれているコンポーネントが接続をフックし、データベースへの接続を確立します。

SQL Server Native Client の設定を確認する

名前パイプに関するエラーが発生する場合、SQLクライアントのネットワークプロトコルの設定が、名前パイプを使用するように設定されている可能性があります。
Windows Azure SQL Database に接続するには、TCP/IP接続を有効にする必要があります。

SNAGHTMLa5ec48c

ローカル側のファイヤーウォールの設定確認

ポート1433を使用して、接続します。
1433が使用できるか確認してください。
ローカルマシンのファイヤーウォール、ネットワーク上のファイヤーウォールそれぞれで確認する必要があります。

SQL Azureのファイヤーウォールのルール

SQL Azureのファイヤーウォールは、接続を許可するIPを設定します。
既定では、すべてのIPからの接続を拒否するようになっていますので、接続元IPから接続できるように設定する必要があります。

SQL Azure

Windows Azure に関する正式なアナウンスを公開する場として知られる、
Windows Azure Team Blogにて
Annoucing New Windows Azure Services to Deliver "Hybrid Cloud"」が投稿されました。

Amazonちっくになるね!とか突っ込みそうになるけど、
そのあたりは、明日の朝にはpnop抱かれたい役の方がわかりやすくBlogを書いてくれると思うので割愛。

 

Azure Team Blogに、
今回のWindows Azureの更新内容をまとめた Fact Sheet が公開されている。

Fact Sheetで、SQL Azure(と言えるのも後少しだけど…)に関連する内容があったので、
ピックアップしておく。

 

Windows Azure SQL Reporting

これまでSQL Azure ReportingとしてPreview公開されてきたサービスが、
Windows Azure SQL Reporting とブランド名を変えて、generally available された。

セキュアで、柔軟性があり、コスト効率のいいクラウドベースのサービス。
システム管理や追加のソフトウェア、ハードウェアが不要で、組織内外でレポート公開を可能にする
レポーティングサービスです。

 

と言うわけで、今のところSQL Azureに関する発表は、これぐらい。
後は、SQL Azure Data Syncのアップグレードが
予告されてることぐらい(SQL Data Syncのクライアントエージェントのアップグレード通知)。