SQL Azure

SQL Data Sync 2012年12月のサービスアップデートがリリースされました。主な更新内容は次の通りです。

  • Windows Azure ポータルにSQL Data Syncがリリースされました。
  • データセンター間の同期性能を改善しました。
  • 全体的な内部処理の性能を改善しました。

徐々に、旧ポータルを使用しなくても困らないように準備が進んでいますね!素敵素敵。

Windows Azureポータルでの操作

SQLデータベースの中に、ヘッダメニューに「SYNC」とボトムメニューに「同期の追加」というメニューと、「新しい同期グループ」、「新しい同期エージェント」というサブメニューが用意されています。

image

同期サーバーと同期グループの追加(クラウドとクラウド)

image

image

image

同期エージェント(クラウドとオンプレミス)

image

 

情報源

New in SQL Data Sync

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

Windows Azure SQL Database Servicesの2012年7月アップデートの内容がBlogに投稿されていたので紹介します。

SQL Data Syncを使用してFederationの参照テーブルをレプリケーションできるようになりました

09

SQL Azure Federationでは、メンバーデータベースに参照テーブルを含めることができます。
一度、SPLITで分割したメンバーデータベースに含まれる参照テーブルは互いに独立したテーブルなので、
片方を更新しても、もう片方には変更は反映されません。

その為、これまでは手動でメンバーデータベースの数だけ参照テーブルを更新する必要がありました
例えば、メンバーデータベースが30個あった場合、30回参照テーブルを更新しないと、
全ての参照テーブルに変更を反映させることができません。

2012年7月のアップデートにより、SQL Data Syncで、メンバーデータベースの参照テーブルを同期対象に設定できるようになりました。

image

上の図のように、メンバーデータベースを同期グループに登録することができます。
同期したいメンバーデータベースの参照テーブルとSQL Data Syncのハブデータベースとを同期するように設定します。

同期設定をすると、次の図のようにメンバーデータベースをすべて同期するように設定できます。

image

とは言え、制限事項もあります。

  • レプリケーション間隔は短くても5分なので、最大5分の同期遅延があります。
  • スクリプトによる同期レプリケーションの設定をすることができません。
    つまり、同期設定をしたい場合は、GUIで手で設定する必要があります。20個同期するなら20回。。。
  • 最大でも30個までしか、同期グループに設定できません。

参照テーブルで一意のIDを生成するのにIdentityプロパティを使用できるようになりました

2012年7月のアップデートで、フェデレーションメンバーの参照テーブル上でIdentityプロパティを使用できるように、制約を解除しました。
これにより、スキーマの変更を最小限に、既存のデータベースからフェデレーションへの移行ができるようになります。

参照元

Newsflash: Reference Data Management Simplified in Federations with the July 2012 Update to SQL Database! Reference Data Replication with Data Sync Service, Unique ID Generation for Reference Data and more…

SQL Azure

SQL Azure Data Sync改めSQL Data Syncは、クラウドとオンプレミスのデータ同期にも対応しています。
データ同期をするために、オンプレミス環境にSQL Data Sync Agentをインストールする必要があります。
SQL Data Syncは、Agentを介してAzure SQL Detabaseに配置されたハブデータベースと
同期をとります。

Question

オンプレとWindows Azure SQL DatabaseをData Syncで同期する場合、
その通信ってどうなってるのでしょう?
知りたいことは、ポート何番を開ければいいのか?Proxyなどがあっても平気か?
その他、気にしなきゃいけないことは?

検証

その答えを探し求めるのに最適な環境が、Win2008R2+SQL2012 on Azureな環境です。
多少時間はかかりますが、数クリックと簡単な入力をして放置しておけば、
クラウド上に素敵な評価環境ができあがります。
// 懸念点は、Azure内なので通信がすかすかじゃないか・・・という事ですが(^^;
// きっと大丈夫!きっと。

そんなこんなでできたSQL2012 on Azureな環境のエンドポイントは、次のような定義がされています。
リモートデスクトップ以外は空いていないことが確認できます。

image

そこにSQL Data Sync Agentをインストールします。
インストール時に次のようなメッセージが表示されています。

image

This account must have network access to reach Microsoft SQL Data Sync Service through your network’s proxy.

ネットワークプロキシを通過してSQL Data Syncサービスにネットワーク越しにアクセスできるアカウントを設定してね!と書いてます。
つまり、ネットワークプロキシの認証を気にする必要があるってことですね。
残念ながら環境が無いので、未検証。

インストールが完了すると、Microsoft SQL Data Syncというサービスが起動します。サービスの実行ユーザは、インストール時に指定したユーザになっています。

image

インストール時に、FireWallの設定を変更するのかな?っと思い、FireWallのルールを確認してみました。
特にSQL Data Sync専用と思えるポートは空いてないですね。

image

TCPViewでポートの使用状況を確認してみましょう。
PIDから上の2つがSQL Data Syncサービスが使用しているものと分かります。

image

ネットワークキャプチャーを見てみると、SSL通信をしていることがわかります。

image

ためしに443通信をWindows Firewallでブロックしてみます。

image

ブロックすると、TCPViewでもNetwork MonitorでもSQL Data Syncの通信を確認できなくなりました。
その状態で、ポータルで確認すると・・・。

image

まとめ

  • Agentの実行ユーザは、ネットワークプロキシのユーザー認証を通過できるアカウントであること
  • ユーザーアカウントなどを使用してしまうと
    定期パスワード変更などを実施すると、SQL Data Syncの設定も変更しないと同期できなくなる
  • 通信として、サーバーから外への443通信は必須
    それ以外は・・・・うーん、今のところ気づかない。
  • Preview版で、未だマイクロソフトはサポートの提供を開始していないので、
    本番運用での利用はお勧めできない。何かあった時に自力解決することが必要。
    SLAも提供されて・・・ないはずなので。
  • データ同期の為に複数のテーブルが追加される。
    また差分をトレースするために同期対象テーブルにトリガーが生成されたりする。
    なので、設計書な世界で生きている人は大変かも?
    本番DBのスキーマが微妙に変わるので覚悟して臨むと良い。
    image

SQL Azure

SQL Data Sync (SQL Azure Data Sync) の新しいサービスアップデート(Service Update 5 / SU5)が、6月6日(PST)から6月7日の間で実施されます。
新しいクライアントエージェント(バージョン4.0.46.0)のダウンロード提供もされます。

今まで提供されてきたすべてのクライアントエージェントは、アップグレードする必要があります。クライアントエージェントのアップグレード方法について説明します。

補足

クライアントエージェントのデフォルトパスが、次のパスに変更になります。

32ビット
C:\Program Files\Microsoft SQL Data Sync

64ビット
C:\Program Files (x86)\Microsoft SQL Data Sync

アップグレード方法

ここ」で説明している手順に従って、現在インストールされているエージェントのバージョンを確認してください。

  1. もしクライアントエージェントを起動していない場合は、クライアントエージェントをインストールしている場所に移動します。

    32ビット
    C:\Program Files\Microsoft SQL Azure Data Sync

    64ビット
    C:\Program Files (x86)\Microsoft SQL Azure Data Sync

  2. インストールディレクトリのbin配下にある「SqlAzureDataSyncAgent」を起動します。
  3. クライアントエージェントウィンドウ上で、Upgrade Agent をクリックします。

    アップグレードウィザードで、エージェントのアップグレードが進行します。アップグレードが完了すると、インストールパスが変わります。

  4. アップグレード処理が完了すると、クライアントエージェントウィンドウが閉じます。

    補足:旧エージェントのインストールパスは削除してはいけません

  5. Windows Explorerで、ステップ1で示したインストールパスを開きます。
  6. dataディレクトリに移動し、「AgentConfigData.xml」ファイルなどを確認します。

    32ビット
    C:\Program Files\Microsoft SQL Azure Data Sync\data

    64ビット
    C:\Program Files (x86)\Microsoft SQL Azure Data Sync\data

  7. AgentConfigData.xmlファイルをコピーします。
  8. アップグレードしたエージェントの新しいディレクトリに移動します。
  9. 手順7でコピーしたAgentCOnfigData.xmlファイルをdataディレクトリに張り付けます。

    32ビット
    C:\Program Files\Microsoft SQL Data Sync\data

    64ビット
    C:\Program Files (x86)\Microsoft SQL Data Sync\data

  10. システム上で、Microsoft SQL Data Sync Windows Serviceを再起動します。
  11. Microsoft SQL Data Sync Agent Previewを実行します。
    1. 補足

      さりげなく記述されていますが、

      「SQL Azure Data Sync」は、「SQL Data Sync」と記載されていますね。

      さて、これがどういう意味かは、今週末のお楽しみってことで。

      参照元情報

      Client Agent Upgrade Notification