SQL Server数据库镜像关键性能计数器
监视数据库镜像基本有以下5种方法:
1. 配置数据库镜像监视器、设置告警阈值。
2. 配置WMI EVENT ALERT,配置镜像状态修改后的动作或告警。
3. 使用系统监视器查看关键性能计数器。
4. 部署作业监控异常镜像状态,发送告警。
5. 使用sp_dbmmonitorresults获取镜像数据。
当然,使用扩展事件和SQL Server Profiler也能监控到数据库事件中的数据库镜像状态修改。这种工具主要用于跟踪,而非监控的常规手段。
这篇博文主要介绍如何使用系统监视器(以前叫做性能监视器)来监控数据库镜像性能。SQL Server:Database Mirroring对象包含数据库镜像的性能计数器。以下列表描述了一些关键计数器。
关键的主服务器计数器:
-
Log Bytes Send/sec:日志从主到镜像的传输速率
-
Log Send Queue KB:还没有发送到镜像的日志总数(单位:千字节)
-
Transaction Delay:花费在等待来自镜像提交应答的延迟(单位:毫秒)。该计数器用于确定在主服务器数据库镜像是否影响性能很有用。
-
Log Compress Bytes Sent/sec:上一秒发送的日志的压缩字节大小。为了计算日志压缩率,可以用Log Compressed Bytes Sent/sec除以Log Bytes Sent/sec得到。
-
Log Bytes Sent from Cache/sec:在上一秒钟内从镜像日志缓存中获得的发送日志字节数。此计数器只在主体服务器上使用。 在镜像服务器上此值始终是 0。
关键的镜像服务器计数器:
-
Redo Bytes/sec:日志在镜像数据库前滚的速率。
-
Redo Queue KB:还没有前滚到镜像数据库的总日志数量。(单位:千字节)为了评估镜像重做日志的时间,可以用Redo Queue KB除以Redo Bytes/sec。
-
Log Bytes Received/sec:从主接收的日志的速率。为了评估镜像赶上主的时间,可以用Log Send Queue KB除以Log Bytes Received/sec。
-
Log Compressed Bytes Received/sec:在上一秒接收的压缩日志的大小。
-
Log Bytes Redone from Cache/sec:在上一秒钟内从镜像日志缓存中获得的重做日志字节数。此计数器只在镜像服务器上使用。在主体服务器上此值始终是 0。
使用性能计数器可以监视数据库镜像性能。 例如,可以检查 Transaction Delay 计数器以确定数据库镜像是否影响主体服务器的性能,可以检查 Redo Queue 和 Log Send Queue 计数器以确定镜像数据库与主体数据库之间保持同步的情况。 还可以检查 Log Bytes Sent/sec 计数器以监视每秒发送的日志量。
完整性能计数器列表,请参考:
https://msdn.microsoft.com/zh-cn/library/ms189931.aspx