SQL Server 2012故障轉移的looksalive check和is alive check

来源:http://www.cnblogs.com/i6first/archive/2016/01/14/5130772.html
-Advertisement-
Play Games

什麼是looksalive check和is alive check SQL Server故障轉移集群是建立在windows集群服務上的一種熱備的高可用方案。在集群運行過程中,windows集群服務定期檢測節點的資源健康狀態,如果發生了故障,會根據預先定義的故障轉移策略把SQL Server服務從....


 

 

什麼是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與資源的關係:

clipboard

                      原圖來自《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。

clipboard[1]

      相比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檢測的間隔時間可以在“資源屬性”的“高級策略”裡面設置,一般採用預設即可,如需更改,可參考下圖的位置設置。

clipboard[2]


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • //偏好設置是專門用來保存應用程式的配置信息的, 一般情況不要再偏好設置中保存其他數據// 如果利用系統的偏好設置來存儲數據, 預設就是存儲在Preferences文件夾下麵的// 偏好設置會將所有的數據保存到同一個文件中// 獲取NSUserDefaults對象NSUserDefaults *de...
  • 1.在AppDelegate.h 里添加標記2.在AppDelegate.m 里添加這個方法3.使用[(AppDelegate*)[UIApplication sharedApplication].delegate setAllowRotation:YES];來打開屏幕旋轉4.通過使用 [(AppD...
  • 無論哪個平臺,開始哪種應用程式,日誌總是少不了的,大家在Lind.DDD里也可以看到大叔的日誌組件,而在xamarin進行移動開發時,為了更好的調試,記錄運行的情況,日誌也是必須的,這講主要說一下在xamarin for android開發時,日誌組件的實現。對於android平臺有自己的日誌組件,...
  • 通過這種方格圖片實現濾鏡代碼:"CIFilter+ColorLUT.h""CIFilter+ColorLUT.m"#import "CIFilter+ColorLUT.h"#import #import @implementation CIFilter (ColorLUT)+ (CIFilter *...
  • 不少設計師和工程師都被安卓設備紛繁的屏幕搞得暈頭轉向,我既做UI設計,也做過一點安卓界面佈局,剛好對這塊內容比較熟悉,也曾在公司內部做過相關的講座,在此,我將此部分知識重新梳理出來分享給大家!
  • iOS開發之 監聽事件全攻略(一)協議代理= 2016年才開始沒幾天,IT業界大事件快播庭審,最近兩天看了快播庭審,真是精彩,王欣辯護人金嘴真是絕了,話說快播辯護人的金嘴,句句金腔,我很贊同辯護人道出當今互聯網業界的一些不合規矩或者不合法律的一些互聯網公司打的擦邊球,拉下幾家知名互聯網公司陪斬,.....
  • 命令模式的定義:將“請求”封裝成對象,以便使用不同的請求、隊列或者日誌來參數化其他對象。命令模式也支持撤銷的操作。註意命令模式是將請求封裝成對象! 其實簡單的說,命令模式就是把方法調用封裝起來了,通過封裝方法調用,可以把運算塊包裝成型,所以調用此運算的對象不需要關心事情是如何進行的,...
  • 1、SwipeBackLayout項目地址:https://github.com/ikew0ng/SwipeBackLayout2、用法android studiocompile 'me.imid.swipebacklayout.lib:library:1.0.0'項目實例package com.e...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...