监控SQL Server数据库异常镜像状态发告警邮件
发表于:2024-11-28 作者:千家信息网编辑
千家信息网最后更新 2024年11月28日,监控SQL Server数据库异常镜像状态发告警邮件在部署了数据库镜像之后,我们需要监控参与镜像的主数据库和镜像数据库的状态,如果状态异常,发送告警邮件。那么这个脚本需要在主和镜像服务器上都运行。目录
千家信息网最后更新 2024年11月28日监控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安全错误
数据库的锁怎样保障安全
网络技术怎么提高一对一营销能力
后台数据库技术意思
客户端直接与数据库
强的语音对讲软件开发
保护数据库安全性
租用服务器延迟如何解决
福建1u存储服务器机箱哪家好
京东管理数据库系统
基于数据中心的软件开发模式
服务器分区失败怎么回事
androidrtmp服务器
河南云互联网科技有限公司
区块链服务器是比特币吗
东城数据库安全防护系统
运行数据库够用吗
计算机网络技术和软件技术
qq音速 与服务器断开
绝地求生2手游哪个服务器稳定
大唐高鸿数据网络技术
学生使用网络安全视频
网商银行云计算和分布式数据库
公安部发布网络安全条例
科技互联网经典名句
win7没有信息服务器
金保业务网络安全管理制度
计算机服务器搭建限与管理
服务器管理器mmc无法
网络安全法第四十二条内容
哪个软件能备份应用数据库
邮件服务器入侵