地端 SQL 同步至雲端 SQL Azure
SQL Azure 有提供各種情境的資料同步方式,雲端 與 雲端 或 雲端 與 本地端。而本地端 SQL Server 資料庫與 SQL Azure 進行同步,主要是透過本地端的工具程式 (SQL Azure Data Sync Agent Preview) 做媒介, 本文是說明安裝與設定細節。
本地端安裝 Sync Client Agent
本地端做同步的主機上須安裝 SQL Azure Data Sync Agent Preview,此軟體有有兩項必要安裝:
- SQL Server 2012 CLR Types - x86 version for US-EN (1033) locale (下載點1)。
- SQL Server 2012 Shared Management Objects - x86 version for US-EN (1033) locale (下載點2)。
接著安裝主程式 SQL Azure Data Sync Agent Preview (下載點3)。
以上這些安裝程式目前版本以 SQL 2012 英文版為主,筆者事先若有安裝中文版SQL 2012,最後是將中文版先移除。
同步主機上須建立一個 Windows 帳號可以連上 SQL Server。
安裝主程式最後需要輸入此帳號,記得要輸入完整格式,如 domain\domainUser 或 localcomputer\localUser。
安裝程式懶人包下載。
建立 Sync Agent
SQL Azure 同步相關功能在 Azure 管理中心 > SQL DATABASE > SYNC,
首先要先建立一個 Sync Agent,如下圖示最下方 [ADD SYNC] > [New Sync Agent]
輸入名稱與選擇地區,即完成新增。
新增完成後,取得 [Manage Key],回到同步主機上開啟 [Microsoft SQL Data Sync Agent Preview] > [Submit Agent Key] > 貼上 > 按下 [OK]
回到 Azure 管理中心畫面會出現一筆 Client 的資料
建立 Sync Group
這個步驟主要是設定來源與目的地的關係,來源是選 SQL Azure資料庫,而目的地就是上一步驟的 SQL Agent。
與新增 Sync Agent 相同,從 SQL Azure 管理畫面最下方 [ADD SYNC] > [New Sync Group]
輸入名稱與選擇地區後,下一步
設定來源資料庫:
最後一個選項需注意,當衝突發生時以那一方優先。
設定目的地資料庫,選擇 Sync Agent
最後一個選項是設定單向或雙向同步。
設定同步資料表
點擊 Sync Group 名稱 > SYNC RULES > 最下方 [DEFINE] > 選擇資料庫
接著選取要同步的資料表與欄位,按下方 [SAVE]
筆者按下儲存有發生錯誤,原因是該資料表尚未建立 Clustered Index,補建立後可以正常儲存。
進入 CONFIGURE 可以設定自動同步與頻率
目前可以設定的最小時間是 5 分鐘。
順利的話,以上算是完成將 SQL 從地端與雲端同步的作法。
同步發生失敗時(Synchronization failed),可以先從以下幾個地方檢查起
- SQL Azure > Sync Group > Log
- 地端同步機器上的事件檢視器
- 地端同步機器SQL Data Sync 記錄檔
C:\Program Files (x86)\Microsoft SQL Data Sync\logs
相關連結
- Getting Started with Azure SQL Data Sync [link page]
- SQL Azure Data Sync - An Overview [Channel9 Video]
- SQL Azure Data Sync- Synchronize Data across On-Premise and Cloud (E2C) [Channel9 Video]
PS: 以上所做的是資料同步,並非複寫 (Replication),目前地端尚無法與雲端做複寫的功能 (感謝 小朱 說明)。