
原本想要使用異地備援方式,達到讀寫分離,但是有兩點限制:
跨區域,同區域不給建立
一個小時
所以放棄,換使用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 使用同步功能,會自動在資料庫建立需要的表格,請勿刪除它們,否則資料同步無法正常運作,這是用來變更追蹤使用。
查詢表格資料,驗證兩邊的資料都是一樣,成功完成同步![]()
