SQL Server 2012(11.0.5058.0)企业版
我们在一个 2(HA)+1(DR) 集群中有 8 个可用性组,我们的监控 DMV 报告的结果让我感到困惑。6 个可用性组配置用于 HA 和 DR,1 个仅配置 HA,1 个仅配置 DR。
6 个 HA/DR 可用性组中的每一个都将“SQLB”作为主要副本,将“SQLA”作为辅助(同步)HA 副本,将“SQLC”作为辅助(异步)副本。
在两个次级:
SELECT dhags.group_id, dhags.synchronization_health_desc
FROM sys.dm_hadr_availability_group_states dhags
报告所有可用性组复制同步运行状况NOT_HEALTHY
均为
select replica_id,synchronization_health_desc
from sys.dm_hadr_availability_replica_states
报告所有副本的同步健康状况为HEALTHY
.
主副本报告所有可用性组和副本的同步运行状况为HEALTHY
.
虽然我知道一个报告副本同步健康状况而另一个报告 AG 同步健康状况,但在我看来,如果更细粒度 (AG) 状态不健康,那将影响更广泛的上下文(副本)的整体健康状况,这似乎是合乎逻辑的. 我找不到描述每个级别的运行状况如何确定的 MSDN 文档。
为什么辅助节点会报告NOT_HEALTHY
可用性组同步健康状况,但会报告HEALTHY
副本同步健康状况,为什么这与主要报告不同?
遗憾的是,sys.dm_hadr_availability_replica 状态并不是副本健康状况的可靠指标。这是我们在 DMV 停止刷新时遇到的错误之一的连接项- 请注意,即使有要发送的日志数据,DMV sys.dm_hadr_database_replica_states 中的 log_send_queue_size 也会显示 0。
请注意,Connect 项标记为 Won't Fix。悲伤的长号。