Sql-Server
數據庫級別的健康檢查沒有在失去磁碟時觸發故障轉移
我正在測試 2016 SQL Enterprise SP2 CU7 版中的新數據庫級別檢測選項,它似乎沒有按預期工作。我們在兩個節點上有一個 2 節點設置、同步送出、自動故障轉移。數據庫級別的健康檢測選項被選中。在主節點上,我使包含 AG 中數據庫的一個數據文件的驅動器離線。我從從失去磁碟讀取的表中執行了一個 select *,並得到了預期的 823 錯誤,該錯誤記錄在錯誤日誌中。我跑了幾次,錯誤日誌記錄了823多次。
可用性組沒有像發生這種情況時那樣進行故障轉移。我等了大約 3 分鐘,看看是否會發生故障轉移,但它從未發生過。我怎樣才能知道數據庫級健康檢查常式設置執行的頻率?我知道這需要根據這篇文章連續執行 4 次才能看到問題: 增強的數據庫級別故障轉移
我檢查了AG中的健康檢查超時值,是30秒。
我還查看了伺服器上的故障條件級別,它設置為 On CriticalServerErrors,但據我了解,此設置完全獨立於數據庫級別的健康檢查,它們中的任何一個都應該能夠自行觸發故障轉移. 它是否正確?
我唯一能想到的就是防止這種情況發生在 WSFC 管理器中的掛起超時。這在使集群資源離線之前的值為 3 分鐘。
知道我應該在哪裡尋找為什麼這沒有故障轉移嗎?
在主節點上,我使包含 AG 中數據庫的一個數據文件的驅動器離線。我從從失去磁碟讀取的表中執行了一個 select *
$$ … $$
由於您使用的是 2016 年,因此數據庫級別的健康檢查正在檢查數據庫是否線上(使輔助文件離線不會改變)並且我們可以寫入事務日誌。由於這兩個都是真的,你的測試通過了。這就是它在 2016 年的運作方式。
知道我應該在哪裡尋找為什麼這沒有故障轉移嗎?
是的,見上文。這在 2017 年更改為包含更多內容。