2015-04-28 42 views
0

我在SQL2012中爲HAG的主動和被動節點。當連接字符串傳遞一個「READ-ONLY」參數時,被動節點會不斷被命中。因此,舉例來說,報告會每天使用這種類型的連接。高可用性組和故障轉移

最近我們有一個QA環境設置,HAG的主動 - 主動,所以沒有被動節點。通過與DBA交談,我被告知,兩種設置(主動 - 主動式與主動 - 被動式)之間的區別在於:在故障切換情況下,主動 - 主動式設置允許到的「讀寫」連接繼續工作

在主動 - 被動故障切換情況下,任何「讀寫」連接都不起作用,因爲被動數據庫只允許「只讀」類型的連接。此外,像SSRS這樣的工具會失敗,因爲它們一次只能在一個節點上安裝。目前我們只將它安裝在被動節點中。這沒有意義,因爲被動節點是一個節點,這意味着我們應該能夠將它安裝在主動節點中。從技術上講,這一切都是有道理的......但事實並非如此。

是不是其中的主要目的的HAG組提供故障轉移保護不管設置?任何人都可以闡明這一點嗎?

回答

0

我認爲要麼你誤解了你的數據庫管理員,要麼他們不正確。

在可用性組,你有關於三種選擇你想怎麼輔助節點的行爲(按照從多到少許可):

  1. 允許任何連接
  2. 只允許連接指定申請意圖爲只讀
  3. 允許沒有任何連接

也有主副本(兩個選項再次從多到少permissiv E):

  1. 允許任何連接
  2. 允許指定應用程序的意圖作爲讀寫

是什麼讓這個略顯混亂的是,這種偏好每個副本配置只connecitons。也就是說,你可以有以下配置:

  • 節點A
    • 小學:接受任何連接
    • 中學:不接受任何連接
  • 節點B
    • 小學:接受讀寫連接
    • 次要:接受只讀連接

在故障轉移的情況下,主節點的角色被轉移到另一個節點的任何語義被配置用於它每個副本服從。所以,在我上面的例子中,如果主節點是節點A,那麼連接到它的任何應用程序都將被接受,而節點B只接受只讀連接。發生故障轉移時(使節點B成爲主節點)寫入連接將在節點B處接受,而在節點A處將不接受任何連接。我認爲爲避免混淆,以同樣的方式配置所有節點是最好的。但請與您的DBA交談,詢問每個節點的行爲在主要和次要角色中的含義。