原本想要使用異地備援方式,達到讀寫分離,但是有兩點限制:
跨區域
,同區域不給建立一個小時
所以放棄,換使用Azure SQL Database 的 Sync to other databases
功能,做到多台資料庫同步功能,達到讀寫分離動作。
【第一步】首先決定好誰是負責寫
的資料庫,增刪改
動作都在此資料庫。我以之前建好的Blog資料庫當 master Database
,其在Azure Data Base的腳色定位為Hub
。
【第二步】建立只做讀
的 Slave 資料庫,不做其他事情,只負責查詢
動作,腳色定位為Member
方式: 所有資源 > 新增一個空白SQL Database
【第三步】在Master資料庫,點開 Sync to other databases
> 點擊 +New Sync Group
新增同步群組:
選好要同步的間隔時間,注意雖然有提供秒選項,但實際至少要間隔五分鐘
:
選擇 Conflict Resolution
資料衝突情況處理,可以選擇以master資料為主(Hub win
),或是slave資料為主(Member Win
),我這邊選擇以master資料庫為主,因為資料變動都是出自它。
【第四步】決定誰是主要資料庫,誰是成員資料庫
需要注意 Sync Directions
可以決定同步方式:
From the Hub
,資料以主資料庫為準,作為讀寫分離的基礎架構。【第四步】選擇想要同步的表格,注意不支援沒有主鍵的表格
建立成功後可以在 Sync Group 下看到建立的同步群組,跟目前同步的狀況。
【第五步】在SSMS查看資料庫狀態,可以看到新增的slave資料庫,已經成功同步選取的表格資料
。
另外可以注意到 Azure 使用同步功能,會自動在資料庫建立需要的表格,請勿刪除它們,否則資料同步無法正常運作
,這是用來變更追蹤
使用。
查詢表格資料,驗證兩邊的資料都是一樣,成功完成同步