Windows-Server-2008
具有高可用性的負載平衡 - 使用 AWS 的 SQL Server + IIS
這是我第一次使用 Windows 和 SQL Server 進行高可用性負載平衡。在我計劃的設置中尋找一些驗證和輸入。
現在,通常當我想創建一個 HA 負載平衡網站時,我會將數據庫分離到一個多可用區 RDS 實例,然後生成多個都指向 RDS 的 Ec2 實例。這一直適用於 MySQL,但 SQL Server RDS 不支持多可用區。
我讀到 SQL Server 可以設置為見證伺服器,它(如果我錯了,請糾正我)實時鏡像數據庫,除非它無法訪問數據庫,此時它成為主數據庫。在使用相同的數據庫數據時,下面的設置會正確地平衡傳入請求嗎?如果主實例確實在某個時候出現故障,然後又重新啟動,它是否會自動“趕上”來自伺服器的數據?你會這樣做嗎?
根據您提供的圖表,您將擁有第三個 SQL Server 框,以允許對鏡像數據庫進行自動故障轉移。有關 HA 設置中鏡像的描述,請參閱此連結 - http://msdn.microsoft.com/en-ca/library/ms179344(v=sql.105).aspx。
只要您有第三個 SQL Server 實例充當見證角色,此設置就可以工作。這有點像 Windows 集群的工作方式,您需要讓大多數伺服器線上,以保持鏡像數據庫線上。如果您的主伺服器離線,則鏡像(輔助\備份)伺服器將接管主角色。一旦伺服器重新聯機,數據庫應自行同步。
此設置的另一個考慮因素是您的應用程序僅依賴於一個數據庫。由於鏡像是特定於數據庫而不是特定於伺服器的,因此可能存在只有一個數據庫“翻轉”到輔助伺服器的情況。如果 Web 應用程序依賴於多個數據庫,則需要額外考慮如何處理這個問題(儘管在 SQL Server 2012 中通過可用性組解決了這個問題)