溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

監控SQL Server數據庫異常鏡像狀態發告警郵件

發布時間:2020-06-04 20:49:15 來源:網絡 閱讀:1971 作者:UltraSQL 欄目:數據庫

監控SQL Server數據庫異常鏡像狀態發告警郵件

 

在部署了數據庫鏡像之后,我們需要監控參與鏡像的主數據庫和鏡像數據庫的狀態,如果狀態異常,發送告警郵件。那么這個腳本需要在主和鏡像服務器上都運行。

 

目錄視圖sys.database_mirroring對SQL Server實例上的每個數據庫都包含一行(包括系統數據庫和未配置鏡像的數據庫),當然也包含所有鏡像數據庫的狀態信息。我們可以查詢該目錄視圖,對于每個異常狀態的鏡像數據庫觸發告警郵件。筆者的環境配置的是異步鏡像,依賴于手動故障轉移。

 

前提條件:

1. 配置好數據庫郵件,有正確的Profile。

2. 有權限發送郵件的有效Login,需要是msdb數據庫中DatabaseMailUserRole角色成員。

3. 一對用于監控的鏡像數據庫。

 

DECLARE
@state VARCHAR(30)
DECLARE
@DbMirrored INT
DECLARE
@DbId INT
DECLARE
@String VARCHAR(100)
DECLARE
@databases TABLE (DBid INT, mirroring_state_desc VARCHAR(30))
-- get status for mirrored databases
INSERT
@databases
SELECT
database_id, mirroring_state_desc
FROM
sys.database_mirroring
WHERE
mirroring_role_desc IN ('PRINCIPAL','MIRROR')
AND
mirroring_state_desc NOT IN ('SYNCHRONIZED','SYNCHRONIZING')
-- iterate through mirrored databases and send email alert
WHILE
EXISTS (SELECT TOP 1 DBid FROM @databases WHERE mirroring_state_desc IS NOT NULL)
BEGIN
SELECT TOP 1 @DbId = DBid, @State = mirroring_state_desc
FROM @databases
SET @string = 'Host: '+@@servername+'.'+CAST(DB_NAME(@DbId) AS VARCHAR)+ ' - DB Mirroring is '+@state +' - notify DBA'
EXEC msdb.dbo.sp_send_dbmail 'valid_mail_profile', 'DBA@xxx.com', @body = @string, @subject = @string
DELETE FROM @databases WHERE DBid = @DbId
END
--also alert if there is no mirroring just in case there should be mirroring :)
SELECT
@DbMirrored = COUNT(*)
FROM
sys.database_mirroring
WHERE
mirroring_state IS NOT NULL
IF
@DbMirrored = 0
BEGIN
SET @string = 'Host: '+@@servername+' - No databases are mirrored on this server - notify DBA'
EXEC msdb.dbo.sp_send_dbmail 'valid_mail_profile', 'DBA@xxx.com', @body = @string, @subject = @string
END

 

依賴于手動故障轉移。將以上腳本放到主服務器和鏡像服務器上的作業里,每5分鐘執行一次。


收到郵件效果如下:

監控SQL Server數據庫異常鏡像狀態發告警郵件

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女