為什麼要在Azure雲中構建SQL Server故障轉移群集實例?
Twitterverse今天發生了一場有趣的討論。基本上,有人問過“有沒有人在Azure中設置SQL服務器故障轉移群集實例?”隨後的對話涉及一些很好的尊重SQL Server專家。它導致了下面的問題:“為什麼你要在雲中構建SQL Server AlwaysOn故障轉移群集實例?”
這個問題可以通過兩種方式解釋:“為什麼需要雲中的高可用性”或“為什麼不使用AlwaysOn可用性組而不是故障轉移群集實例?”
我們一次解決每個問題。
問題1 – 為什麼您需要Azure雲中的高可用性?
- 您可能認為,僅僅因為您在Azure中託管了SQL Server實例,您的99.95%正常運行時間SLA就能覆蓋您。如果你認為那樣,你會錯的。為了充分利用99.95%的SLA,您必須在可用性集中至少運行兩個SQL實例。在運行一個SQL實例的情況下,您絕對可以預計,在維護期間,停機時間最短。但是,你也容易受到計劃外的失敗。
- 兩個SQL Server實例通常不能進行負載平衡。 你必須實現某種機制來保持服務器的同步。 為確保如果其中一台服務器出現問題,另一台服務器將能夠繼續為這些請求提供服務。高可用性解決方案,如AlwaysOn可用性組,AlwaysOn故障切換群集實例,甚至是不贊成使用的數據庫鏡像都可以為該場景中的SQL Server提供高可用性。日誌傳送和事務複製等其他解決方案可以幫助保持服務器之間的數據同步。但它們通常不被視為高可用性解決方案,並不能確保SQL Server的可用性。
- Microsoft偶爾需要在Azure上執行維護操作,這可能會導致整個升級域以及該升級域中運行的所有實例。你什麼時候會發生這種事情都沒有發言權。所以,你需要有一個機制來確保如果他們不得不關閉你的主要SQL Server實例,你可以期望你的輔助SQL Server實例能夠接管工作量而不會錯過任何節拍。上面提到的所有高可用性解決方案都可以確保在Microsoft正在對主服務器的升級域進行維護的情況下繼續運行。Microsoft一次只能在單個升級域上進行維護。這可以確保您的輔助服務器仍然處於聯機狀態,假設您將兩者都放在同一個可用性集中。
- 如果您希望在生產SQL Server上進行性能維護,您會做什麼?也許你想安裝一個Service Pack或其他修補程序?如果沒有輔助服務器進行故障轉移,則必須安排計劃停機時間。任何高可用性解決方案的主要優點之一是可以執行滾動升級,從而將計劃停機時間的影響降至最低。
問題2 – 為什麼不使用AlwaysOn可用性組而不是故障轉移群集實例?
- 存錢!SQL Server AlwaysOn可用性組需要SQL Server的企業版。為什麼不省錢並部署SQL Server Standard Edition並構建一個簡單的雙節點故障轉移群集實例?除非您因為其他原因需要使用企業版,否則這是毫無疑問的。
- 保護ENTIRE SQL Server實例。AlwaysOn可用性組僅保護用戶定義的數據庫;您無法保護系統和MSDB數據庫。如果您構建SQL Server故障轉移群集實例,則需要保護ENTIRE實例,包括System和MSDB數據庫。
- 簡化管理。在Azure中,您僅限於客戶端偵聽器。這限制您只有一個可用性組。相比之下,使用故障轉移群集實例只需一個客戶端監聽器,因此沒有限制。
- 工作者線程用盡。通過AlwaysOn AG,您必須密切關注可用的工作線程。可用的工作線程限制了AlwaysOn AG可以保護的數據庫數量。相比之下,使用DataKeeper塊級複製的AlwaysOn故障切換群集不會為您添加的每個數據庫消耗更多的資源。這意味著您可以進行擴展以保護數百個數據庫,而不會增加與AlwaysOn AG相關的額外開銷。
- 分發事務支持。AlwaysOn AG不支持分佈式事務(DTC)。如果您的應用程序需要DTC支持,您將不得不查看AlwaysOn故障轉移群集實例。
- 支持其他復制技術。如果您打算在AlwaysOn AG保護的兩個數據庫之間設置對等複制,您可以將其遺忘。事實上,一旦部署AlwaysOn可用性組,您必須注意許多限制。AlwaysOn FCI沒有任何限制。
結論
了解上述知識後,這個問題不應該是真正的問題:“為什麼我需要在構建AlwaysOn故障轉移群集實例的更健壯,更經濟的解決方案時,在雲中實施AlwaysOn AG?”
如果您有興趣在Azure中構建AlwaysOn故障轉移群集實例,請查看我的博客文章分步:如何在Microsoft Azure中配置SQL Server故障轉移群集實例(FCI)#SQLServer #Azure #SANLess
經https://clusteringformeremortals.com/2015/03/05/why-would-you-want-to-build-a-sqlserver-failover-cluster-instance-in-the-azure-cloud/許可轉載