sys.availability_replicas (Transact-SQL)

为属于 WSFC 故障转移群集中任何可用性组的每个可用性副本返回一行。

如果本地服务器实例无法与 WSFC 故障转移群集联系,例如由于群集关闭或丢失了仲裁,则仅返回本地可用性副本的行。 这些行将仅包含在元数据中本地缓存的数据列。

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

列名称

数据类型

说明

replica_id

uniqueidentifier

副本的唯一 ID。

group_id

uniqueidentifier

副本所属于的可用性组的唯一 ID。

replica_metadata_id

int

数据库引擎中可用性副本的本地元数据对象的 ID。

replica_server_name

nvarchar(256)

承载此副本的 SQL Server 实例的服务器名称;对于非默认实例,则为其实例名称。

owner_sid

varbinary(85)

为此可用性副本的外部所有者向此服务器实例注册的安全标识符 (SID)。

对于非本地可用性副本则为 NULL。

endpoint_url

nvarchar(128)

用户指定的数据库镜像端点的字符串表示形式,该数据库镜像端点由用于数据同步的主副本和辅助副本之间的连接使用。 有关端点 URL 的语法的信息,请参阅在添加或修改可用性副本时指定端点 URL (SQL Server)

NULL = 无法联系 WSFC 故障转移群集。

若要更改此端点,请使用 ALTER AVAILABILITY GROUP Transact-SQL 语句的 ENDPOINT_URL 选项。

availability_mode

tinyint

副本的可用性模式,其中:

含义

1

异步提交。 主副本可以不必等待辅助副本将日志写入磁盘,即可提交事务。

2

同步提交。 在辅助副本将事务写入磁盘之前,主副本等待提交给定的事务。

有关详细信息,请参阅可用性模式(AlwaysOn 可用性组)

availability_mode_desc

nvarchar(60)

availability_mode 的说明,可以是以下值之一:

ASYNCHRONOUS_COMMIT

SYNCHRONOUS_COMMIT

若要更改可用性副本的可用性模式,请使用 ALTER AVAILABILITY GROUP Transact-SQL 语句的 AVAILABILITY_MODE 选项。

failover_mode

tinyint

可用性副本的故障转移模式,可以是以下值之一:

含义

1

手动故障转移。 设置为手动故障转移的向辅助副本的故障转移必须由数据库管理员手动启动。 要执行的故障转移的类型将依赖于是否同步辅助副本,如下所示:

  • 如果可用性副本未同步或者仍在同步,则只能发生强制故障转移(可能会丢失数据)。

  • 如果可用性模式设置为同步提交 (availability_mode = 2) 并且可用性副本当前正在同步,则可能会发生没有数据丢失的手动故障转移。

2

自动故障转移。 副本是自动故障转移的潜在目标。 仅在可用性模式设置为同步提交 (availability_mode = 2) 并且可用性副本当前已同步时,才支持自动故障转移。

要查看可用性副本中每个可用性数据库的数据库同步状况汇总信息,请使用 sys.dm_hadr_availability_replica_states 动态管理视图的 synchronization_healthsynchronization_health_desc 列。 此汇总信息考虑每个可用性数据库的同步状态和其可用性副本的可用性模式。

提示

要查看指定可用性数据库的同步状况,请查询 sys.dm_hadr_database_replica_states 动态管理视图的 synchronization_statesynchronization_health 列。

failover_mode_desc

nvarchar(60)

failover_mode 的说明,可以是以下值之一:

MANUAL

AUTOMATIC

若要更改故障转移模式,请使用 ALTER AVAILABILITY GROUP Transact-SQL 语句的 FAILOVER_MODE 选项。

session_timeout

int

超时期限(秒)。 超时期限是指副本接收来自其他副本的消息而等待的最长时间,超过此时间,将主副本和辅助副本之间的连接视为已失败。 会话超时检测辅助副本是否与主副本相连接。

在检测到与辅助副本的连接失败时,主副本将辅助副本视为 NOT_SYNCHRONIZED。 在检测到与辅助副本的连接失败时,辅助副本只会尝试重新连接。

备注

会话超时不会导致自动故障转移。

若要更改此值,请使用 ALTER AVAILABILITY GROUP Transact-SQL 语句的 SESSION_TIMEOUT 选项。

primary_role_allow_connections

tinyint

可用性是允许所有连接还是仅允许读写连接,其中:

2 = 所有(默认值)

3 = 读写

primary_role_allow_connections_desc

nvarchar(60)

primary_role_allow_connections 的说明,可以是以下值之一:

ALL

READ_WRITE

secondary_role_allow_connections

tinyint

正在履行辅助角色的可用性副本(也就是辅助副本)是否可以接受来自客户端的连接,可为下列值之一:

0 = 否。 不允许连接到辅助副本中的数据库,且不支持读取这些数据库。 这是默认设置。

1 = 只读。 仅允许针对辅助副本中的数据库进行只读连接。 副本中的所有数据库都可用于读访问。

2 = 全部。 允许针对辅助副本中的数据库的所有连接进行只读访问。

有关详细信息,请参阅活动辅助副本:可读辅助副本(AlwaysOn 可用性组)

secondary_role_allow_connections_desc

nvarchar(60)

secondary_role_allow_connections 的说明,可以是以下值之一:

NO

READ_ONLY

ALL

create_date

datetime

副本的创建日期。

NULL = 副本不位于此服务器实例上。

modify_date

datetime

上次修改副本的日期。

NULL = 副本不位于此服务器实例上。

backup_priority

int

表示相对于同一可用性组中的其他副本,在此副本上执行备份的用户指定的优先级。 该值是范围 0..100 中的整数。

有关详细信息,请参阅活动辅助副本:辅助副本备份(AlwaysOn 可用性组)

read_only_routing_url

nvarchar(256)

只读可用性副本的连接端点 (URL)。 有关详细信息,请参阅为可用性组配置只读路由 (SQL Server)

安全性

权限

要求具有服务器实例的 VIEW ANY DEFINITION 权限。

请参阅

参考

sys.availability_groups (Transact-SQL)

概念

AlwaysOn 可用性组概述 (SQL Server)

AlwaysOn 可用性组 (SQL Server)

监视可用性组 (Transact-SQL)

监视可用性组 (Transact-SQL)