書籍転載:Windows Azure Platform開発入門

SQL Azure Data Sync入門
――第4章 SQL Azure 4.13 ――

WINGS プロジェクト 大和屋 貴仁(監修:山田 祥寛)
2012/01/30

本コーナーは、日経BP社発行の書籍『Windows Azure Platform開発入門』の中から、特にInsider.NET読者に有用だと考えられる章や個所をInsider.NET編集部が選び、同社の許可を得て転載したものです。基本的に元の文章をそのまま転載していますが、レイアウト上の理由などで文章の記述を変更している部分(例:「上の図」など)や、図の位置などを本サイトのデザインに合わせている部分が若干ありますので、ご了承ください。『Windows Azure Platform開発入門』の詳細は「目次情報ページ」や日経BP社のサイトをご覧ください。

ご注意:本記事は、書籍の内容を改変することなく、そのまま転載したものです。このため用字用語の統一ルールなどは@ITのそれとは一致しません。あらかじめご了承ください。

4.13 SQL Azure Data Sync

 SQL Azure Data Syncは、コードを1行も書くことなく、データベース間のデータ同期を実現するサービスです。SQL AzureとSQL Azureのデータ同期、SQL AzureとオンプレミスのSQL Serverのデータ同期を、双方向、もしくは一方向で行うことができます。

 2011年10月に最終CTP(Previewと表記されることもある)版の提供が始まり、試行期間中のサービスです(最新状況はこちら)。Windows Azure管理ポータルからSQL Azure Data Syncを使用できるようになっており、Windows Live ID、SQL Azureアカウントを持っていれば試行することができます。CTP版のため、運用中の製品データベースで使用するのは避けてください。本サービスへのフィードバックを募集しており、フィードバック内容に応じて正式サービスの開始時期を決定すると発表されています。

4.13.1 SQL Azure Data Syncのしくみ

 SQL Azure Data Syncは、同期の根幹となるハブデータベースと定義されるSQL Azureとそれ以外のメンバーデータベースで構成されます。データ同期は、ハブデータベースとメンバーデータベース間で実施し、メンバーデータベース間のデータ同期はハブデータベースを経由して同期するため直接同期することはありません(図4.38)。

図4.38 SQL Azure Data Sync概要図

 SQL Azure Data Syncを使用するケースは、同じデータを複数のデータベースで運用したい場合です。複数のデータベースで運用する例としては、次のようなパターンがあります。

  • データベースの使用者が地理的に分散しており、各拠点から近い場所にあるデータセンターのSQL Azureを使用したい
  • 複数拠点(支社、支店、営業所)内にあるSQL Serverのデータベースと本部のデータベースを同期したい
  • 運用用のデータベースとBI(Business Intelligence)用のデータベースを分けて運用したい

4.13.2 SQL Azure Data Syncの使用手順

 SQL Azure Data Syncを使用してデータ同期をする手順を見ていきます。データ同期の設定には、Data Syncサーバーを作成し、同期グループを配置します。

 まずは、Data Syncサーバーを作成します。

1 Windows Azure管理ポータルでData Syncを選択する

 Windows Azure管理ポータルにログインし、左下のメニューから[Data Sync]を選択します。

2 Data Syncサーバーをプロビジョニングする

 画面中央の[Provision Data Sync Preview Server]をクリックします(図4.39)。

図4.39 SQL Azure Data Syncのメニュー

3 使用許諾条件に同意する

 使用許諾条件に同意する場合は[I agree to the Terms of Use statement above.]チェックボックスをオンにして、[Next]をクリックします。

図4.40 使用許諾条件の同意

4 Data Syncサーバーを作成するサブスクリプションを選択する

 Data Syncサーバーを作成するサブスクリプションを選択します(図4.41)。サブスクリプションが1つの場合は、特に変更は必要ありません。

図4.41 サブスクリプションの選択

5 Data Syncサーバーを配置する地域を選択する

 最終CTP版で提供されているのは、North Central USとWest Europeの2か所です(図4.42)。本手順では、[North Central US]を選択しますが、[West Europe]を選択しても問題ありません。以上で、Data Syncサーバーの作成が完了しました。

図4.42 Data Syncサーバーの設置地域の選択

6 同期グループを作成する

 SQL Azure Data Syncサーバーが作成できたので、次は同期グループを作成します。リボンの[Sync Group]の[Create]をクリックします(図4.43)。

図4.43 同期グループの作成

7 同期グループ名を設定する

 同期対象を管理するための同期グループ名(画面上は、Sync Group Name)を入力します。

8 ハブデータベースを追加する

 データ同期の根幹になるハブデータベースを同期グループに追加するために、図4.44の囲まれた部分のアイコン([Click to add a SQL Azure database as the sync Hub])をクリックします。

図4.44 ハブデータベースの追加

9 ハブデータベースを登録する

 ハブデータベースに指定するSQL Azureのサーバー名、データベース名、ユーザー名、パスワードを入力し、[Add]をクリックします(図4.45)。ハブデータベースには、SQL Azureデータベースを指定します。指定できるSQL Azureデータベースには制限がなく、別のWindows Live IDで作成したSQL Azureデータベースを指定することもできます。SQL Azureのサーバー名、データベース名、ユーザー名、パスワードの組み合わせが正しければ、どのSQL Azureデータベースでも追加できます。

図4.45 ハブデータベースの追加

10 同期するメンバーデータベースにSQL Azureデータベースを追加する

 同期するメンバーデータベースとして、SQL Azureデータベースを追加するために、図4.46の囲まれた部分のアイコン([Click to add a SQL Azure database.])をクリックします。

 同期できるメンバーデータベースは、SQL AzureとSQL Serverのです。ここでは、SQL Azureデータベースと同期設定します。

図4.46 メンバーデータベースの追加

11 メンバーデータベースの登録

 メンバーデータベースに追加するSQL Azureサーバー名、データベース名、ユーザー名、パスワード、同期方向を設定し[Add]をクリックします(図4.47)。同期方向(画面上は、Sync Direction)は、メンバーデータベースからハブデータベースへの同期(画面上は、Sync to the Hub)、ハブデータベースからメンバーデータベースへの同期(画面上は、Sync from the Hub)、双方向の同期(画面上は、Bi-Directional)の3つから選択できます。

図4.47 メンバーデータベースの設定

12 衝突時の解決ルールを選択する

 画面の右側で、ハブデータベースとメンバーデータベースで同じテーブルの同じ行を更新し、更新が衝突した場合の解決ルールを設定します。設定できるルールは、ハブの更新を優先する(画面上は、Hub Wins)、メンバーの更新を優先する(画面上は、Client Wins)の2種類です(図4.48)。

図4.48 衝突時の解決方法

13 データセットを設定する

 データセットを設定するため、画面右側の[Edit Dataset]をクリックします。同期するデータベースのテーブル、行、列、フィルタリング条件などを指定するためにデータセットを定義します。

14 同期対象の選択

 同期元のデータベースをドロップダウンから選択し、[Get Latest Schema]をクリックします。表示されたスキーマ一覧から同期するテーブル、列、行を選択し、[OK]をクリックします(図4.49)。

図4.49 同期対象の選択

15 同期を開始する

 リボンの[Deploy]をクリックします。

 以上の手順で、メンバーデータベースとハブデータベースを30分ごとに双方向データ同期をし、衝突した場合はハブのデータを優先するようにしました。

 SQL Azureどうしのデータ同期設定手順を説明しましたが、SQL AzureとSQL Serverのデータ同期もできます。SQL Serverとデータ同期をする場合は、SQL Serverを運用しているサーバーに、SQL Azure Data Sync Agent Previewをインストールし、エージェント経由でデータ同期を行います。

 SQL Azure Data Syncによるデータ同期設定をすると、同期状況をトレースするためのテーブルやトリガーなどが追加されるため、元のデータベースサイズよりも多少データベースサイズが増えるので注意してください。

 次回は、SQL Azureレポートについて解説します。end of article

インデックス・ページヘ 「Windows Azure Platform開発入門」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間