中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

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

發布時間:2020-06-04 20:49:15 來源:網絡 閱讀:1923 作者: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

姜堰市| 三原县| 武清区| 万宁市| 大姚县| 上饶县| 皮山县| 郯城县| 新晃| 甘南县| 成安县| 偃师市| 白城市| 湖州市| 岳普湖县| 读书| 原平市| 铜鼓县| 茂名市| 巢湖市| 微山县| 磐安县| 托克托县| 凤台县| 北安市| 德兴市| 清徐县| 巴青县| 兴业县| 南皮县| 芮城县| 晴隆县| 玛多县| 淮阳县| 穆棱市| 平潭县| 瓮安县| 泗阳县| 谷城县| 额敏县| 松原市|