如何負載平衡可用性組
我在 SQL Server 集群下有 2 台伺服器(伺服器 1、伺服器 2)
2 個配置了可用性組的數據庫(數據庫 1、數據庫 2)
伺服器 1:
數據庫 1 主副本
數據庫 2 主副本
伺服器 2:
數據庫 1:次要副本
數據庫 2:次要副本
如果數據庫 1 開始消耗大量資源並且我想添加第三台伺服器(伺服器 3)以降低伺服器 1 的壓力,這個給定的範例是否可行?
伺服器 1:
數據庫 1 輔助副本
數據庫 2 主副本
伺服器 2:
數據庫 1
次要副本 數據庫 2 次要副本
伺服器 3:
數據庫 1 主要副本
數據庫 2 次要副本
這是否可以在對使用者影響最小的情況下進行配置?我只想知道使用可用性組進行水平擴展的可能性,因為我們無法通過向伺服器添加資源來垂直擴展,備份可以在輔助副本上進行,對嗎?
百萬美元的問題是 - 在您目前的情況下,是否值得在 Windows 故障轉移集群中添加額外的伺服器?
恕我直言,不-因為您使用的是 sql server 2012。
為什麼 ?
SQL Server 2012 和 2014 將允許將定向流量只讀路由到路由列表中定義的第一個可用副本 - 前提是第一個只讀副本可訪問,否則它將獲取下一個可用副本。
因此,在 sql server 2012 和 2014 中,即使您有多個可用於處理讀取請求的輔助設備,也不可能將讀取負載分散到可用的輔助設備上。
SQL Server 2016 允許您跨一組只讀副本配置負載平衡。
這是否可以在對使用者影響最小的情況下進行配置?
可能影響最小,但正如我上面所說,這樣做不值得。
怎麼做 ?
- 將伺服器 3 添加到 Windows 故障轉移群集。
- 從伺服器 1 進行完整備份(因為它是主伺服器)並
with no recovery
在伺服器 3 上恢復它。- 從伺服器 1 獲取日誌備份並
with norecovery
在伺服器 3 上恢復。- 將數據庫加入可用性組。
- 將同步模式更改為同步,然後故障轉移
server1.db1
到server3.db1
,現在server3.db1
將是主要的。- 恢復所有輔助副本上的數據移動。在我的測試中,數據移動被暫停,你必須恢復它。
下面是它的外觀(圖不漂亮,但它解釋了我在說什麼:-)):
可以在輔助副本上進行備份嗎?
是的,您可以在輔助副本上進行 copy_only 完整和定期日誌備份。必須在主數據庫上執行完整備份。