SQL Azure

注意事項

コピー元のSQL Azureサーバーとコピー先のSQL Azureサーバーは、同じDCを選択していますか?違うデータセンターの場合、次のエラーが発生し悩みまくります。

メッセージ 40532、レベル 11、状態 1、行 1
Cannot open server "lx88a7fkwl" requested by the login.  The login failed.

エラー内容から、異なるDC間でコピーしようとして失敗したっと気づくのは至難の業なのでご注意を。

コピー元SQL Azureサーバー

–① masterデータベースにログインを作成
CREATE LOGIN test WITH password=’P@ssw0rd’;
GO

–② コピー元データベースにユーザーを作成
CREATE USER test FROM LOGIN test;
GO

–③ コピー元データベースのユーザーにdb_onwerロールを付与
EXEC sp_addrolemember ‘db_owner’, ‘test’
GO

コピー先SQL Azureサーバー

–① masterデータベースにログインを作成
CREATE LOGIN test WITH password=’P@ssw0rd’;
GO

–② masterデータベースにユーザーを作成
CREATE USER test FROM LOGIN test;
GO

–③ ユーザーにロール付与
EXEC sp_addrolemember ‘dbmanager’, ‘test’;
GO

データベースのコピーを実行

–CREATE DATABASE コピー先データベース名 AS COPY OF (コピー元サーバ名).データベース名
–(例)
CREATE DATABASE test AS COPY OF rvpqy0fvb2.test

–実行状況の確認
SELECT * FROM sys.dm_database_copies

詳細

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

SQL Azure

バージョンアップ内容

2011年8月9日にマイクロソフトがリリースした.NET Framework4の信頼性に関する更新1(http://support.microsoft.com/kb/2533523)で、本問題の改善が図られています。

基本的に、SqlClientがアプリケーションにプールを返す前に、プールのコネクションが無効化されていないかを確認します。もしコネクションが無効の場合、SqlClientは単純にアプリケーションにコネクションを返す前に再接続処理をします。

この修正は、サーバのラウンドトリップを増やしません。代わりに、TCPレイヤでソケット状態を確認するので、速く効果的です。しかし、この修正は再接続処理の代わりになるわけではありません。特にSQL Azureに接続する場合、再接続処理の実装は、まだ必要なプラクティスとして推奨します。この改善により、SQL ServerとSQL Azureへの接続時に、節奥に失敗する機会を減らしました。

導入背景

SQL Azureに接続した時に、よく遭遇するエラーの一つが、「A transport-level error has occurred when sending the request to the server. (provider: TCP Provider, error: 0 – An established connection was aborted by the software in your host machine.)」です。このエラーは、SqlClientがプールから無効なコネクションを取得したときに発生し、アプリケーションに返されます。。プール上のコネクションは、ネットワークやSQL Azureで制限されて無効化されます。結果的に、たとえば実行コマンドなどでSqlException例外が発生します。

以下のようなコードを検討しましょう。

try

{

    // Let’s assume the connection string uses default connection pool set to true

    // and the connection pool was already previously created for this same

    // connection string

    using (SqlConnection connection = new SqlConnection("…"))

    {

        // If the connection pool in not empty,

        // even if the connection returned above is dead,

        // the SqlConnection.Open command below executes succesfully.

        connection.Open();

 

        SqlCommand command = new SqlCommand("select product_name from products");

        command.Connection = connection;

        command.CommandTimeout = 3;

 

        // The Sqlexception gets thrown here,

        // when it tries to send the command to SQL Server.

        SqlDataReader reader = command.ExecuteReader();

 

        while (reader.Read())

        {

            …

        }

    }

}

catch (SqlException ex)

{

    MessageBox.Show(ex.Message);

}

この例では、Openメソッドがいつでも成功します。アプリケーションからSQL Azureに接続する旅に、再接続処理を追加しています。

情報源

MSDNのBlogに掲載されたMinimizing Connection Pool errors in SQL Azureをざっくり意訳した投稿です。

SQL Azure

SQL Azure Labsが装いも新たに、まるっと過去を清算して新たなサービス展開を模索し始めましたよ。

image

今、SQL Azure Labsで担当しているのは、「Data Explorer」と「Social Analytics」の2つ。そのうち、「Social Analytics」が使用できるようになったので、早速触ってみたぞ。

image

上記画像が、Sosical Analyticsの実行状況。まぁ簡単に言うとこれがすべて。
現在のところ、フィルタリングできるのは、ビル・ゲイツとWindows 8のみでユーザが任意に追加することはできない。

何するもの?

再集計として提示されているのは、各種ソーシャルサービスから特定キーワードで情報を収集してくる。

image

収集してきた情報を一覧表示にする。
また、収集した情報を集計・分析し、活発にRTやメンションされている発言をカウントしランキング表示する。その発言に対して、ネガティブ発言数・ポジティブ発言数をカウントし表示する。その発言にたいする会話についてを、さらにピックアップする。

まぁ、ソーシャルな発言を収集して分析して、把握しやすいようにしてやろう!っというサービスなのかな?

各パネルの説明

image

image

参考情報

SQL Azure

SQL PASSサミット2日目のキーノートにて、SSMS 2012のSQL Azureサポート状況の一部がでもされました。

  • SQL Server Management Studio 2012のGUIウィザードで、SQL Azureデータベースを直接Blobへバックアップ可能
  • SQL Server Management Studio 2012からWindows Azure Storage Blobに接続
    オブジェクトエクスプローラーにBlobのツリーが表示され、blob一覧も表示された。

SQL Azure

※Windows Azureチームブログに投稿されたSQL Azureのアップデートに関する投稿をざっくり意訳した意訳です。

SQL PASSサミット2012の2日目のキーノートで、マイクロソフトはSQL Azureにとって重要な内容を含むいくつかのアップデートを発表しました。

SQL Azure ReportingとSQL Azure Data SyncのCTP版提供の開始と、SQL Azureサービスリリース2011 Q4で提供予定の内容について発表しました。

SQL Azure提供予定の機能

2011年の終わりまでに提供する予定のSQL Azure サービスリリース2011Q4は、シンプルかつ柔軟にスケールアウトするのに必要な機能を提供することを目的としています。

  • 個々のSQL Azureデータベースの最大サイズを現在の50GBから、3倍の150GBに増やします。
  • Federation
  • 新しいSQL Azure管理ポータルの強化。もっと簡単にデータベースを監視できるように新しい機能を提供します。スキーマのドリルダウン、クエリプランの表示、空間データの表示、インデックス/キーの表示、クエリパフォーマンス統計情報の表示。
  • ユーザが管理できる照合順序のサポートを拡張

SQL Azure Reporting CTP

  • 可用性とパフォーマンスの改善
  • SQL Azure Reportingサーバーのセルフプロビジョニングが可能
  • Windows Azure管理ポータルを更新し、ユーザを簡単に管理できレポートをデプロイできるようにしました。
  • 世界中のWindows Azureデータセンターでの提供を開始
  • このCTP版からマイクロソフトの公式サポート開始
  • 認証不要でレポートを参照できるようにするアクセスコントロールに対応

SQL Azure Data Sync CTP

  • 新しい管理ポータルで簡単に使用できるようになりました
    新しい管理ポータルを提供し、同期の監視管理、設定をしやすくなりました
  • 同期グループの設定とフィルタリングを柔軟にできるように強化しました
    フィルタリング:特定のテーブル列、特定の行だけを同期できるようになりました
    同期グループの設定:グループメンバーごとに同期衝突が発生した場合の解決方法を設定できるようになりました
  • すべてのユーザが使用できるようになりました
    特別な登録をすることなく、全SQL Azureユーザが試せるように新しいCTP版を提供します。

デモの様子などは、SQL PASSサミット2012のサイトで公開されます。
http://www.sqlpass.org/summit/2011/Live/LiveStreaming.aspx