如果 SQL Server 中的主伺服器出現故障,如何從複製的輔助伺服器讀取/寫入?
我在 SQL Server 中創建了一個事務發布,現在我的要求是在主節點上寫入並從訂閱者讀取,如果主節點由於某種原因出現故障,訂閱者應該自動充當主節點。
現在我只有一個向訂閱者寫信的發布者。
事務複製不是您所描述的要求的正確技術。您所追求的是 SQL Server 的高可用性/災難恢復 (HADR) 保護,而事務複製不適合或不適合於此。
Brent Ozar在他的First Responder工具包中有一個高可用性規劃工作表。我建議您看一下,以幫助您確定需求並設計合適的架構。
為簡單起見,以下是您的主要選擇:
- AlwaysOn 可用性組
- SQL 故障轉移集群實例
- 日誌運輸
- 數據庫鏡像
- 虛擬機/SAN 複製
您選擇哪個選項取決於您目前的環境(SQL Server 的版本和版本很重要)、HADR 要求、許可、預算以及設計、實施和管理所選解決方案的內部技能。
例如,如果您執行的是 SQL Server 2014 或更早版本,則需要企業版來執行可用性組,但您可以使用數據庫鏡像(現已棄用)。
執行可用性組或故障轉移群集實例需要在 SQL Server 節點上安裝 Windows Server 故障轉移群集以提供 HADR - 您是否具備內部建構和管理群集的技能?
如果您的 RPO 和 RTO 要求不高,或者您執行的是舊版本的 SQL Server,那麼日誌傳送可能是一個合適的解決方案。您可以通過一些努力實現一個解決方案,以允許在故障轉移後將日誌傳送從輔助伺服器“寫回”到主伺服器。
最後,如果您進行發現工作並且沒有所需的 RPO/RTO 預算,您的基礎架構團隊可能能夠利用 SAN 複製和 VM DR 技術(VMWare 的 SRM、Azure ASR、Hyper-V 複製等)為您的 SQL Server 環境提供保護。
如果可以的話,我建議聘請一位經驗豐富的顧問來執行評估和發現工作,以提供滿足您所有限制的適當架構,並能夠幫助建構和部署解決方案。您還應該查看培訓選項以快速了解 HADR 技術,以便充分管理系統。
一些可以幫助您的連結: