SQL Server 2012容錯移轉的looksalive check和is alive check

來源:互聯網
上載者:User

標籤:

 

 

什麼是looksalive check和is alive check

      SQL Server容錯移轉叢集是建立在windows叢集服務上的一種熱備的高可用方案。在叢集運行過程中,windows叢集服務定期檢測節點的資源健康狀態,如果發生了故障,會根據預先定義的容錯移轉策略把SQL Server服務從故障節點切換到可用節點上,從而實現SQL Server的高可用。

      而looksalive和isalive就是windows叢集服務定期檢測節點的資源健康情況的兩個方法,它們存在於 resource dll中。

根據資源類型不同,resource dll可分為兩個大類。對於叢集IP、DNS名稱、服務服務(SQL Server)、叢集磁碟等windows內建的資源類型,resource dll就是windows叢集內建的Resource DLL——“clusres.dll”中;而對那些自己的專屬資源類型的資源,他們有專屬的resource dll,如SQL Server和sql server agent的resource dll分別為sqlrvres.dll和sqlatres.dll。

    顯示了叢集裡資源的類型及資源DLL與資源的關係:

                      原圖來自《SQL Server 2012實施與管理實戰指南》

 

 

looksalive check和is alive check檢測原理

RHS.exe的進程(windows叢集服務進程clussvc.exe產生的)通過調用定義了looksalive check和is alive check方法 resource dll來實現對資源的健康狀態檢測。

在SQL Server容錯移轉叢集中,對於SQL Server資源,looksalive check和is alive check檢測的原理如下:

looksalive是基本的健康狀態檢測,它通過服務控制管理員(SCM)來檢查SQL Server服務在活躍點是否處於“啟動狀態”,預設每隔5秒檢查一次。

isalive則通過windows叢集服務去執行select @@servername(SQL Server 2012之前的版本)或sp_server_diagnostics(SQL Server 2012),然後根據返回的結果來判斷SQL Server是否可用。它預設每隔60秒檢查一次。

      select @@servername是SQL Server 2012之前的版本執行isalive方法的操作。執行的結果返回給容錯移轉叢集,如果容錯移轉叢集收到返回的結果,則說明此資源目前在正常狀態。反之,則說明此資源目前已經發生故障。

       這種方法簡單、“粗暴”,能夠適應大多數情境,但如果此時SQL Server負載比較高,沒有在60秒內響應,則可能發生誤判,導致容錯移轉發生。為瞭解決這個問題,在SQL Server 2012及以後的版本上,微軟改進了isalive檢查方法,不再使用select @@servername,取而代之的是使用預存程序sp_server_diagnostics。

      相比select @@servername而言,sp_server_diagnostics返回的結果要詳細得多(如)。SQL Server會利用內部演算法來處理sp_server_diagnostics的結果,然後從多個維度來評估SQL Server的健康情況(系統、資源、查詢、IO等),從而作為windows容錯移轉叢集判斷是否需要進行容錯移轉的依據。除此之外,SQL Server 2012還做了特別的最佳化:

    執行sp_server_diagnostics的線程使用搶佔模式,且線程的OS優先順序也高於普通線程;

sp_server_diagnostics每隔20秒執行一次,預設情況下如果3次(60秒)執行的結果都顯示SQL Server資源處於故障狀態,才發生容錯移轉

    說明:之所以是60秒,是因為“資源屬性”的HealthCheckTimeout預設為60秒,可以人為改變大小,但一般保持預設即可。

 

配置looksalive check和isalive check

looksalive和isalive檢測的間隔時間可以在“資源屬性”的“進階策略”裡面設定,一般採用預設即可,如需更改,可參考的位置設定。

SQL Server 2012容錯移轉的looksalive check和is alive check

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.