sys.dm_hadr_database_replica_cluster_states (Transact-SQL)

适用于:SQL Server

返回一行,其中包含有关 Windows Server 故障转移群集 (WSFC) 群集上每个Always On可用性组中Always On可用性数据库运行状况的见解。 查询 sys.dm_hadr_database_replica_cluster_states 以回答以下问题:

  • 可用性组中的所有数据库是否都已做好故障转移准备?

  • 执行强制故障转移之后,辅助数据库是否在本地挂起自身并向新的主副本确认了其挂起状态?

  • 如果主副本当前不可用,哪一个辅助副本在成为主副本后允许最低限度的数据丢失?

  • sys.databaseslog_reuse_wait_descAVAILABILITY_REPLICA的值为 时,可用性组中哪个辅助副本 (replica) 在给定主数据库上保留日志截断?

列名称 数据类型 说明
replica_id uniqueidentifier 可用性组内可用性副本的标识符。
group_database_id uniqueidentifier 可用性组内数据库的标识符。 在此数据库联接到的每个副本上,该标识符都是相同的。
database_name sysname 属于可用性组的数据库的名称。
is_failover_ready bit 指示辅助数据库是否与相应的主数据库同步。 其中之一:

0 = 数据库未在群集中标记为已同步。 数据库尚未准备好进行故障转移。

1 = 该数据库在群集中标记为已同步。 数据库已做好故障转移准备。
is_pending_secondary_suspend bit 指示强制故障转移后,数据库是否正待挂起,可为下列值之一:

0 = 除HADR_SYNCHRONIZED_SUSPENDED以外的任何状态。

1 = HADR_SYNCHRONIZED_SUSPENDED。 强制故障转移完成后,每个辅助数据库都设置为HADR_SYNCHONIZED_SUSPENDED,并一直保持此状态,直到新的主数据库副本 (replica) 从该辅助数据库收到对 SUSPEND 消息的确认。

NULL = 未知(无仲裁)
is_database_joined bit 指示此可用性副本上的数据库是否已联接到可用性组,可为下列值之一:

0 = 数据库未加入此可用性副本 (replica) 的可用性组。

1 = 数据库联接到此可用性副本上的可用性组。

NULL = 未知(可用性副本缺少仲裁。)
recovery_lsn numeric(25,0) 在主副本上,在恢复或故障转移后、但在副本写入任何新日志记录前事务日志的结尾。 在主副本 (replica) ,给定辅助数据库的行具有主数据库副本 (replica) 需要辅助副本 (replica) 同步到 (即还原并重新初始化为) 的值。

在次要副本上,此值为 NULL。 每个辅助副本 (replica) 都有主要副本 (replica) 已告知辅助副本 (replica) 返回的 MAX 值或较低值。
truncation_lsn numeric(25,0) Always On可用性组日志截断值,如果本地日志截断被阻止 (例如备份操作) ,则该值可能高于本地截断 LSN。

权限

对于 SQL Server 2019 (15.x) 及更早版本,需要对服务器具有 VIEW SERVER STATE 权限。

对于 SQL Server 2022 (16.x) 及更高版本,需要对服务器具有 VIEW SERVER PERFORMANCE STATE 权限。

另请参阅