Sql-Server

AlwaysOn 可用性組的手動故障轉移

  • April 11, 2016

我們計劃將 SQL 2012 升級到 SQL 2014。我們目前為生產數據庫使用鏡像,但計劃遷移到可用性組。我們將在我們的主站點上執行 2 個 SQL Server,並在 DR 上執行一個非同步副本。

我們與 DR 的連結有時非常不完整,因此我們不想依賴 DR 來獲得法定人數,這也是 Microsoft 的建議:https://msdn.microsoft.com/en-us/library/hh270280。 .aspx _ 為了提供奇數票數,我們計劃讓節點和文件共享多數(2 個節點 + 主站點上的 1 個文件共享 = 3 票)。

一年幾次,我們需要故障轉移到 DR,要麼是為了測試,要麼是因為我們的主站點的維護(電氣/連接/等)工作。

要故障轉移到 DR,我們可以將 DR 副本設置為同步,等待它趕上,然後使用腳本或故障轉移嚮導進行故障轉移。我在 Hyper-v (3x SQL + 1x AD) 中使用 4 個伺服器設置了一個測試。一旦我將故障轉移到 DR,然後關閉 SQL Server,集群就會離線。

我注意到我上面提到的同一篇 msdn 文章說

• 故障轉移後重新評估投票分配。您不希望故障轉移到不支持健康仲裁的集群配置。

在計劃故障轉移到 DR 並且主站點完全離線(包括 2 個主 SQL 節點和文件共享)後,為了維持仲裁,最好的調整是什麼?

看起來答案是 Server 2012 R2。2012 R2 僅在節點數為偶數時才包含文件共享。因此,如果 DR 離線,則文件共享將包含在仲裁中,直到 DR 重新聯機。

從測試來看,如果您優雅地關閉輔助伺服器上的連接,那麼主伺服器就會保持正常執行。因此,從 DR 執行計劃中斷意味著我們可以優雅地進行故障轉移,然後關閉主站點的伺服器。因為 DR 成為主節點,所以它將作為最後一個節點保持執行,直到仲裁恢復(並且同步完成)

引用自:https://dba.stackexchange.com/questions/96021