sys.dm_hadr_database_replica_cluster_states (Transact-SQL)
适用于:SQL Server
返回一行,其中包含有关 Windows Server 故障转移群集(WSFC)群集上每个 AlwaysOn 可用性组中 AlwaysOn 可用性组中可用性数据库的运行状况的见解。 查询 sys.dm_hadr_database_replica_cluster_states
以回答以下问题:
可用性组中的所有数据库是否都已做好故障转移准备?
执行强制故障转移之后,辅助数据库是否在本地挂起自身并向新的主副本确认了其挂起状态?
如果主副本当前不可用,哪一个辅助副本在成为主副本后允许最低限度的数据丢失?
当 sys.databases
log_reuse_wait_desc
列的值是AVAILABILITY_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)同步到的值(即还原要重新初始化)。 在辅助副本 (replica)上,此值为 NULL。 每个辅助副本 (replica)都有 MAX 值或较低值,主副本 (replica)已告知辅助副本 (replica)返回。 |
truncation_lsn | numeric(25,0) | AlwaysOn 可用性组日志截断值,如果阻止本地日志截断(例如备份操作),则该值可能高于本地截断 LSN。 |
权限
对于 SQL Server 2019(15.x)和早期版本,需要对服务器具有 VIEW 标准版RVER STATE 权限。
对于 SQL Server 2022(16.x)及更高版本,需要对服务器具有 VIEW 标准版RVER PERFORMANCE STATE 权限。
另请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈