sys.dm_hadr_availability_replica_states (Transact-SQL)

适用于:SQL Server

为每个本地副本都返回一行,并为与本地副本位于同一 AlwaysOn 可用性组的每个远程副本都返回一行。 每一行都包含给定副本的状态信息。

重要

若要获取有关给定可用性组中每个副本的信息,请在承载主副本的服务器实例上查询 sys.dm_hadr_availability_replica_states 。 在对正在承载某一可用性组的辅助副本的服务器实例进行查询时,此动态管理视图仅返回该可用性组的本地信息。

列名称 数据类型 说明
replica_id uniqueidentifier 副本的唯一标识符。
group_id uniqueidentifier 可用性组的唯一标识符。
is_local bit 副本是否为本地副本,包括:

0 = 指示某一可用性组中其主副本由本地服务器实例承载的远程辅助副本。 此值仅在主副本位置上出现。

1 = 指示本地副本。 在辅助副本上,这是副本所属的可用性组的唯一可用值。
role tinyint 本地副本或连接的远程副本的当前Always On可用性组角色,其中之一:

0 = 正在解析

1 = 主

2 = 辅助

有关 Always On 可用性组角色的信息,请参阅 Always On 可用性组概述 (SQL Server)
role_desc nvarchar(60) 角色说明,其中之一:

RESOLVING

PRIMARY

SECONDARY
operational_state tinyint 副本的当前操作状态,其中之一:

0 = 挂起故障转移

1 = 挂起

2 = 联机

3 = 脱机

4 = 失败

5 = 失败,无仲裁

NULL = 副本不在本地。

有关详细信息,请参阅本主题后面的 角色和操作状态
operational_state_desc nvarchar(60) operational_state的说明,其中之一:

PENDING_FAILOVER

PENDING

ONLINE

OFFLINE

FAILED

FAILED_NO_QUORUM

Null
recovery_health tinyint sys.dm_hadr_database_replica_states动态管理视图的database_state列汇总。 下面是可能的值及其说明。

0 :正在进行。 至少有一个联接的数据库状态不是 ONLINE (database_state 不是 0) 。

1 :联机。 所有联接的数据库的数据库状态都为 ONLINE (database_state 为 0) 。

NULL: is_local = 0
recovery_health_desc nvarchar(60) recovery_health的说明,其中之一:

ONLINE_IN_PROGRESS

ONLINE

Null
synchronization_health tinyint 反映数据库同步状态 (synchronization_state) 所有联接的可用性数据库 (也称为 副本) ,副本的可用性模式 (同步提交或异步提交模式) 。 汇总将反映副本上的数据库最不正常的累积状态。 下面是可能的值及其说明。

0:不正常。 至少有一个联接的数据库处于 NOT SYNCHRONIZING 状态。

1:部分正常。 一些副本未处于目标同步状态:同步提交副本应已同步,异步提交副本应正在同步。

2:正常。 所有副本均处于目标同步状态:同步提交副本已同步,异步提交副本正在同步。
synchronization_health_desc nvarchar(60) synchronization_health的说明,其中之一:

NOT_HEALTHY

PARTIALLY_HEALTHY

HEALTHY
connected_state tinyint 辅助副本当前是否连接到主要副本。 可能的值如下所示及其说明。

0:已断开连接。 可用性副本对 DISCONNECTED 状态的响应取决于其角色:在主要副本上,如果辅助副本断开连接,则其辅助数据库在主要副本上标记为“未同步”,等待辅助副本重新连接;在次要副本上,检测到它已断开连接时,次要副本会尝试重新连接到主要副本。

1:已连接。

每个主副本都会跟踪同一可用性组中每个辅助副本的连接状态。 辅助副本仅跟踪主副本的连接状态。
connected_state_desc nvarchar(60) connection_state的说明,其中之一:

DISCONNECTED

CONNECTED
last_connect_error_number int 上一个连接错误的编号。
last_connect_error_description nvarchar(1024) last_connect_error_number消息的文本。
last_connect_error_timestamp datetime 指示发生 last_connect_error_number 错误的日期和时间时间戳。

角色和操作状态

角色反映给定可用性副本的状态,操作状态operational_state描述副本是否已准备好处理针对可用性副本的所有数据库的客户端请求。 下面是每个角色可能的操作状态的摘要:RESOLVING、PRIMARY 和 SECONDARY。

解决: 当可用性副本处于 RESOLVING 角色中时,可能的运行状态如下表所示。

操作状态 描述
PENDING_FAILOVER 正在为可用性组处理故障转移命令。
OFFLINE 可用性副本的所有配置数据都已在 WSFC 群集上更新,并且也在本地元数据中更新,但可用性组目前缺少主副本。
FAILED 在试图从 WSFC 群集中检索信息时发生了读取失败。
FAILED_NO_QUORUM 本地 WSFC 节点没有仲裁。 这是一种推断状态。

主要: 当可用性副本正在执行 PRIMARY 角色时,它当前是主要副本。 可能的运行状态如下表所示。

操作状态 描述
PENDING 这是一个临时状态,但是,如果工作线程无法处理请求,主副本可能会处于此状态。
ONLINE 可用性组资源已处于联机状态,并且所有数据库工作线程均已选取。
FAILED 可用性副本无法从 WSFC 群集读取和/或写入。

二 次: 当可用性副本正在执行辅助角色时,它当前是辅助副本。 可能的运行状态如下表所示。

操作状态 描述
ONLINE 本地次要副本连接到主要副本。
FAILED 本地辅助副本无法从 WSFC 群集读取和/或写入。
Null 在主副本上,当行与某一辅助副本相关时,将返回该值。

权限

要求具有服务器的 VIEW SERVER STATE 权限。

SQL Server 2022 及更高版本的权限

需要对服务器具有 VIEW SERVER PERFORMANCE STATE 权限。

另请参阅

AlwaysOn 可用性组概述 (SQL Server)
监视可用性组 (Transact-SQL)