监控SQL Server数据库异常镜像状态发告警邮件
发表于:2024-10-04 作者:千家信息网编辑
千家信息网最后更新 2024年10月04日,监控SQL Server数据库异常镜像状态发告警邮件在部署了数据库镜像之后,我们需要监控参与镜像的主数据库和镜像数据库的状态,如果状态异常,发送告警邮件。那么这个脚本需要在主和镜像服务器上都运行。目录
千家信息网最后更新 2024年10月04日监控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安全错误
数据库的锁怎样保障安全
公民网络安全守则违反
中公教育学院软件开发
5e游戏出来了但进不去服务器
邮政网络安全
南通海洛斯服务器空调厂家直供
重庆推广软件开发创新服务
服务器管理器怎么打开
上海澜生网络技术
微信网络技术公司
电子政务网络安全风险
测试计划对应的软件开发阶段
win10网络安全模式密码
设计数据库作用是什么意思
数据库表改名
北工大网络安全考研好考吗
服务器st号是什么意思
哪个app服务器更厉害
服务器风扇
java手游服务器开发
深圳家教服务软件开发
网络安全清理存在的问题
东北软件开发系统
阳光物采互联网科技怎么样
乐之网络技术有限公司
怎么看到表格里隐藏的数据库
河南网络技术资费
几年内不得从事网络安全
关于网络安全法的黑板报
软件开发公司经历湖南岚鸿
随产网络技术的完善与发展