Windows Azure - SQL Database Data Sync

23 August 2013 — Written by Sky Chang
#Azure#SQL Server

Windows Azure上,除了一般的SQL Database服務、VM服務外,還有一個非常強大的服務,那就是Data Sync,Data Sync如名子所述,就是資料同步的利器,除了可以將Local的資料同步到Azure的SQL Database外,還可以把Azure的SQL Database當作中繼點,散布到其他台的db去,如MSDN提供的下圖,我們可以看到整個架構圖,透過Data Sync,可以當作中樞,來同步所有的db。

image

那到底怎麼做呢?現在,我們就來試驗看看。首先,我們要先在Windows Azure的管理介面,選擇加入同步。

image

然後我們要先選擇"新的同步代理程式",來建立一個新的同步代理程式,這樣才能把讓Local端的機器,和Azure註冊。

image

按下去後,在設定完同步代理程式之前,我們需要先在Local端安裝同步代理程式,這樣才有人會自動地去同步這些東西。

image

目前也只有英文版可以用。

image

選擇這個來下載。

image

另外,我們可以從下載頁面,打開System Requirements看到一些要注意的事項,目前同步代理程式需要安裝SQL Server 2012 CLR Types x86和SQL Server 2012 Hared Management Objects x86的英文版( 中文版或是太新版本都不行…因為在Preview嘛… ),所以如果之前已經有安裝了,要先移除,可以參考我好友Terry的這篇文章;如果還沒裝,就去下面那兩個網址下載吧。

image

接下來,就進入安裝的步驟。

image

如果沒安裝那兩樣,就會跳出警告,而且目前裝了最新版或是中文版,一樣不行,所以請乖乖地使用英文版。

image

最後,官方也提出一個警告如下

  • Be sure that this Windows Service account has permissions to connect to all the on-premises databases you want to register with the agent.
  • Be sure that the service account has network access through network proxy and firewall.
  • If you have a network proxy ensure that the service account can connect to SQL Data Sync (Preview) service through the proxy. > To later change to a different service account you must uninstall the current client agent than install a new client agent under the new service account.

大致上的意思是說,如果要確保能連線到Database,你必須註冊,此外,也請確保此服務帳號,可以通過與訪問,而比較重要的是,如果要改變服務帳號,那必須把程式移除後在重裝;另外,當此代理程式和Azure上對應過後就不能改了喔,如果要改,也必須要先把程式移除掉。

接下來這邊,輸入服務的帳號與密碼,小弟就直接用自己的帳號了,如果是架設在正式的Server環境,就又特別注意權限了。

image

經過超長的設定與安裝,我們終於可以回到Windows Azure下,繼續設定。

image

設定完成後,我們要取得金鑰,可以按下產生,產生金鑰。

image

接下來,我們打開剛剛裝好的Microsoft SQL Data Sync Agent程式,並且輸入剛剛給的金鑰;在一次的提醒,此代理程式,金鑰輸入進去後,如果未來要改,就必須把程式移除後重裝喔。

image

接下來,選擇要註冊的DB,也就是Local的哪一個db要準備加入群組。

image

到這邊,代理程式就準備好了。

image

接下來,我們準備好代理程式後,我們要使建立一個同步群組。

image

這邊,我們開始建立一個同步群組。

image

接下來,我們要決定哪一台當作中樞,也就是資料的集散地,基本上,所有群組的資料,都會先到中樞,然後再去做散發。

image

接下來,加入要參考的資料庫,也就是說,中樞的db要散發給誰。

image

完成之後,我們可以看到,其實目前還未就緒,因為我們還沒決定要同步那些東西。

image

接下來,我們來到同不規則的地方,點選定義同步規則。

image

這邊,我們就可以則到Local端,剛剛用Microsoft SQL Data Sync Agent註冊的DB了。

image

然後就可以挑選,要同步那些Table。

image

決定之後,就可以存檔,並且同步。

image

我們可以從記錄這邊看到經過。

image

最後,如果想要讓他自動同步處理的話,我們就從設定這邊做調整,只要開啟,並且設定頻率,未來就會自動同步了!!

image

這樣就完成了Sync的機制,很簡單吧

後記

透過Sync的機制,大幅度的強化了SQL Database的可用性,我們可以透過Sync,來讓SQL Database只處理Read的部分,來讓讀寫分流,也可以透過Sync來讓全球各地的資料庫同步化,這些如果是以前,都必須花費很長的時間設定與測試,而現在只要透過SQL Sync,就可以輕易地做到了。

參考資料

Sky & Study4.TW