监控SQL Server数据库异常镜像状态发告警邮件
admin
2023-05-27 05:41:12
0

监控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数据库异常镜像状态发告警邮件

相关内容

热门资讯

中构建筑取得钢结构厂房用可伸缩... 国家知识产权局信息显示,中构建筑有限公司取得一项名为“一种钢结构厂房用可伸缩式抗风支撑杆”的专利,授...
西安光机所破解传统光纤在中长波... 中新网西安5月20日电 (记者 阿琳娜)记者20日从西安光机所获悉,该所郭海涛研究员团队成功研制出国...
北约秘书长“和稀泥”:美国在欧... 【文/观察者网 张菁娟】美国五角大楼日前“取消4000名美军驻波部署”的消息触动了波兰的神经,波兰官...
联想面向广大开发者与用户提供1... 5月19日晚,联想集团执行副总裁兼中国区总裁刘军开启天禧AI Skills(技能集)共创“苍穹计划”...
从“卡脖子”到“掰手腕”:中俄... 人民网记者 张齐 第十届中俄博览会上,人流穿梭。有的展台前载歌载舞,有的展台前分发美食,在几家黑龙江...
原创 一... 本文来源于海潮天下(Marine Biodiversity) 欢迎微信搜索“海潮天下”,关注全球环...
太阳“发脾气”地球会怎样?中欧... “微笑”卫星 据中国科学院消息,中欧联合研制的太阳风-磁层相互作用全景成像卫星(英文缩写SMILE,...
原创 野... 本文来源于海潮天下(Marine Biodiversity) 欢迎微信搜索“海潮天下”,关注全球环...
腾讯亮相2026中国网络文明大... 5月19日至20日,以“文明网络空间 昂扬奋进力量”为主题的2026年中国网络文明大会在广西南宁举行...
胡锡进:中俄罕见同时发两份联合... 中国与俄罗斯周三晚间同时发布两项联合声明,这非常罕见,举世瞩目。在第一项联合声明中,中俄两国宣示进一...