1. 程式人生 > >MSSQL/WMI/PowerShell結合篇(五)SQL Server鏡像狀態變化實時告警

MSSQL/WMI/PowerShell結合篇(五)SQL Server鏡像狀態變化實時告警

mssql 鏡像 實時告警

本文介紹SQL Server鏡像狀態變化實時告警,利用WMI Monitor實時監控鏡像狀態,在狀態發生變化時捕獲相關信息,通過PowerShell發送微信信息,以達到實時告警的目的。


1、創建WMI監控

DATABASE_MIRRORING_STATE_CHANGE 為鏡像狀態變化信息表,通過WQL語句可以獲取相關鏡像狀態變化詳細信息,參考《MSSQL/WMI/PowerShell結合篇(二)創建WMI監控》


核心代碼片段

EventFilter

${Query}= "select * from DATABASE_MIRRORING_STATE_CHANGE";


Consumer

${Text} ="數據庫鏡像告警`nServerName:=%ComputerName%`nInstance:=%SQLInstance%`nDatabase:=%DatabaseName%`nState:="

$Text2="%State%"


2、PowerShell遠程調用

當鏡像狀態發生變化時,Consumer觸發執行PowerShell腳本動作,在被觸發腳本中調用外網服務器的發送微信腳本,參考《MSSQL/WMI/PowerShell結合篇(三)執行PowerShell遠程腳本》



3、PowerShell發送微信信息

實時發送微信信息,參考《MSSQL/WMI/PowerShell結合篇(四)PowerShell發送微信信息》


核心代碼片段

鏡像狀態

$Mirror_State=$(switch($Text2)

{0 {"Mirroring-Session-is-Started`n"}

1 {"Synchronized-Principal-with-Witness`n"}

2 {"Synchronized-Principal-without-Witness`n"}

3 {"Synchronized-Mirror-with-Witness`n"}

4 {"Synchronized-Mirror-without-Witness`n"}

5 {"Connection-with-Principal-Lost`n"}

6 {"Connection-with-Mirror-Lost`n"}

7 {"Manual-Failover`n"}

8 {"Automatic-Failover`n"}

9 {"Mirroring-Suspended`n"}

10 {"No-Quorum`n"}

11 {"Synchronizing-Mirror`n"}

12 {"Principal-Running-Exposed`n"}

13 {"Synchronizing-Principal`n"}});



告警示例:

技術分享


本文出自 “aimax” 博客,請務必保留此出處http://aimax.blog.51cto.com/11610508/1970526

MSSQL/WMI/PowerShell結合篇(五)SQL Server鏡像狀態變化實時告警