千家信息网

监控SQL Server数据库异常镜像状态发告警邮件

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,监控SQL Server数据库异常镜像状态发告警邮件在部署了数据库镜像之后,我们需要监控参与镜像的主数据库和镜像数据库的状态,如果状态异常,发送告警邮件。那么这个脚本需要在主和镜像服务器上都运行。目录
千家信息网最后更新 2026年11月01日监控SQL Server数据库异常镜像状态发告警邮件

监控SQL Server数据库异常镜像状态发告警邮件

在部署了数据库镜像之后,我们需要监控参与镜像的主数据库和镜像数据库的状态,如果状态异常,发送告警邮件。那么这个脚本需要在主和镜像服务器上都运行。

目录视图sys.database_mirroring对SQL Server实例上的每个数据库都包含一行(包括系统数据库和未配置镜像的数据库),当然也包含所有镜像数据库的状态信息。我们可以查询该目录视图,对于每个异常状态的镜像数据库触发告警邮件。笔者的环境配置的是异步镜像,依赖于手动故障转移。

前提条件:

1. 配置好数据库邮件,有正确的Profile。

2. 有权限发送邮件的有效Login,需要是msdb数据库中DatabaseMailUserRole角色成员。

3. 一对用于监控的镜像数据库。

DECLARE@state VARCHAR(30)DECLARE@DbMirrored INTDECLARE@DbId INTDECLARE@String VARCHAR(100)DECLARE@databases TABLE (DBid INT, mirroring_state_desc VARCHAR(30))-- get status for mirrored databasesINSERT@databasesSELECTdatabase_id, mirroring_state_descFROMsys.database_mirroringWHEREmirroring_role_desc IN ('PRINCIPAL','MIRROR')ANDmirroring_state_desc NOT IN ('SYNCHRONIZED','SYNCHRONIZING')-- iterate through mirrored databases and send email alertWHILEEXISTS (SELECT TOP 1 DBid FROM @databases WHERE mirroring_state_desc IS NOT NULL)BEGINSELECT TOP 1 @DbId = DBid, @State = mirroring_state_descFROM @databasesSET @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 = @stringDELETE FROM @databases WHERE DBid = @DbIdEND--also alert if there is no mirroring just in case there should be mirroring :)SELECT@DbMirrored = COUNT(*)FROMsys.database_mirroringWHEREmirroring_state IS NOT NULLIF@DbMirrored = 0BEGINSET @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 = @stringEND

依赖于手动故障转移。将以上脚本放到主服务器和镜像服务器上的作业里,每5分钟执行一次。


收到邮件效果如下:

数据 数据库 镜像 邮件 状态 监控 服务器 服务 配置 手动 故障 目录 脚本 视图 有效 一行 信息 前提 实例 成员 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 手冲咖啡和咖啡机区别 互联网科技公司起名 互联网科技公司华为 互联网科技巨头监管 伴你行互联网科技有限公司 新华互联网科技2019 互联网科技教育视频 互联网科技项目计划书材料类 重庆互联网医院沙龙医盟信息科技 注册互联网科技公司经营范围大全 乌鲁木齐新华智原互联网科技学校 卓翼科技产业互联网合作 恒生互联网科技业指数调整周期 上海钢联属于互联网科技股吗 互联网科技数字货币 上海创道互联网络科技有限公司 互联网科技平台产品运营 互联网界的黑科技 现代互联网科技公司 东风日产互联网科技公司叫什么 互联网科技公司税收优惠 北京互联网科技 科技与互联网发展 亿策互联网科技 兼蜜互联网科技 互联网金融 科技创新 阿里互联网科技企业 锡山区互联网智能科技产品供应 每天都有哪些好的互联网科技 互联网营销推广黑科技
0