sys.dm_hadr_availability_replica_states (Transact-SQL)

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

重要说明重要提示

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

适用范围:SQL Server(SQL Server 2012 到当前版本)。

列名称

数据类型

说明

replica_id

uniqueidentifier

可用性副本的唯一标识符。

group_id

uniqueidentifier

可用性组的唯一标识符。

is_local

bit

可用性副本是否是本地的,可以是下列值之一:

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

1 = 指示本地可用性副本。 在辅助副本上,这是副本所属的可用性组的唯一可用值。

角色

tinyint

本地可用性副本或连接的远程可用性副本的当前 AlwaysOn 可用性组 角色,可以是下列值之一:

0 = 正在解析

1 = 主

2 = 辅助

有关 AlwaysOn 可用性组 角色的信息,请参阅 AlwaysOn 可用性组概述 (SQL Server)

role_desc

nvarchar(60)

role 的说明,可为下列值之一:

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

In progress。 至少一个联接的数据库具有并非 ONLINE 的数据库状态(database_state 不是 0)。

1

Online。 所有联接的数据库都具有 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 状态的响应取决于它的角色,如下所示:

  • 在主副本上,如果辅助副本已断开连接,则其辅助数据库将在主副本上标记为 NOT SYNCHRONIZED,并且等待辅助副本重新连接。

  • 在辅助副本上,一旦检测到其未连接,辅助副本会尝试重新连接主副本。

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 错误的日期和时间的时间戳。

角色和操作状态

角色 role 反映某一给定可用性副本的状态,而操作状态 operational_state 则描述副本是否已准备好处理该可用性副本的所有数据库的客户端请求。 下表汇总了对于每个角色的可能的操作状态:RESOLVING、PRIMARY 和 SECONDARY。

角色

每个角色的操作状态的含义

RESOLVING

在某一可用性副本处于 RESOLVING 角色时,可能的操作状态如下:

操作状态

说明

PENDING_FAILOVER

正在为可用性组处理故障转移命令。

OFFLINE

可用性副本的所有配置数据都已在 WSFC 群集上更新,并且也在本地元数据中更新,但可用性组目前缺少主副本。

FAILED

在试图从 WSFC 群集中检索信息时发生了读取失败。

FAILED_NO_QUORUM

本地 WSFC 节点没有仲裁。 这是一种推断状态。

PRIMARY

当某一可用性副本履行 PRIMARY 角色时,它目前就是主副本。 可能的操作状态如下:

操作状态

说明

PENDING

这是一个临时状态,但是,如果工作线程无法处理请求,主副本可能会处于此状态。

ONLINE

可用性组资源已处于联机状态,并且所有数据库工作线程均已选取。

FAILED

可用性副本无法从 WSFC 群集读取和/或写入。

SECONDARY

当某一可用性副本履行 SECONDARY 角色时,它目前就是辅助副本。 可能的操作状态如下:

操作状态

说明

ONLINE

本地辅助副本连接到主副本。

FAILED

本地辅助副本无法从 WSFC 群集读取和/或写入。

NULL

在主副本上,当行与某一辅助副本相关时,将返回该值。

安全性

权限

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

请参阅

概念

AlwaysOn 可用性组概述 (SQL Server)

监视可用性组 (Transact-SQL)