sys.availability_replicas(Transact-SQL)

适用范围:SQL Server

返回属于 Windows Server 故障转移群集(WSFC)中任何 AlwaysOn 可用性组的每个可用性副本的行。

如果本地服务器实例无法连接到 WSFC 故障转移群集,例如群集已关闭或仲裁丢失, sys.availability_replicas 则仅返回本地可用性副本的行。 这些行仅包含元数据中本地缓存的数据列。

列名称 数据类型 描述
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(256) 用户指定的数据库镜像端点的字符串表示形式,该数据库镜像端点由用于数据同步的主副本和辅助副本之间的连接使用。 有关终结点 URL 语法的信息,请参阅 “指定终结点 URL - 添加或修改可用性副本”。

NULL = 无法与 WSFC 故障转移群集通信。

若要更改此终结点,请使用 ENDPOINT_URLALTER AVAILABILITY GROUP Transact-SQL 语句的选项。
availability_mode tinyint 副本的可用性模式,可为下列值之一:

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

1 = 同步提交。 主副本等待提交给定的事务,直到辅助副本将事务写入磁盘。

4 = 仅配置。 主副本以同步方式将可用性组配置元数据发送到副本。 用户数据不会传输到副本。

有关详细信息,请参阅 Always On 可用性组的可用性模式之间的差异

适用于 SQL Server 2017 (14.x) CU 1 及更高版本。
availability_mode_desc nvarchar(60) availability_mode描述,其中之一:

ASYNCHRONOUS_COMMIT
SYNCHRONOUS_COMMIT
CONFIGURATION_ONLY

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

无法将副本的可用性模式更改为 CONFIGURATION_ONLY。 不能将 CONFIGURATION_ONLY 副本更改为辅助副本或主要副本。
failover_mode tinyint 可用性副本的故障转移模式,其中一种:

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

1 = 手动故障转移。 为手动故障转移配置辅助副本时,数据库管理员必须手动启动故障转移。 执行的故障转移类型取决于辅助副本是否同步,如下所示:

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

如果可用性模式设置为同步提交(availability_mode1),并且可用性副本当前已同步,则可能发生手动故障转移而不丢失数据。

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

注意: 若要查看给定可用性数据库的同步运行状况,请查询 synchronization_statesynchronization_healthsys.dm_hadr_database_replica_states 动态管理视图的列和列。
failover_mode_desc nvarchar(60) failover_mode描述,其中之一:

MANUAL
AUTOMATIC

若要更改故障转移模式,请使用 FAILOVER_MODEALTER AVAILABILITY GROUP Transact-SQL 语句的选项。
session_timeout int 超时期限(以秒为单位)。 超时期限是副本等待从另一个副本接收消息的最长时间,然后再考虑主副本和辅助副本之间的连接失败。 会话超时可检测辅助数据库是否连接到主副本。

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

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

若要更改此值,请使用 SESSION_TIMEOUTALTER AVAILABILITY GROUP Transact-SQL 语句的选项。
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 = 全部。 允许针对辅助副本中的数据库的所有连接进行只读访问。

有关详细信息,请参阅卸载对 Always On 可用性组的次要副本的只读工作负荷
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 中的整数。

有关详细信息,请参阅卸载可用性组次要副本的受支持备份
read_only_routing_url nvarchar(256) 只读可用性副本的连接端点 (URL)。 有关详细信息,请参阅为 Always On 可用性组配置只读路由
seeding_mode tinyint 下列其中一项:

0 = 自动
1 = 手动说明书
seeding_mode_desc nvarchar(60) 描述种子设定模式。

AUTOMATIC
MANUAL
read_write_routing_url nvarchar(256) 副本为主要副本时的连接终结点(URL)。 有关详细信息,请参阅次要副本到主要副本读/写连接重定向(AlwaysOn 可用性组)

适用于:SQL Server 2019 (15.x) 及更高版本。

权限

VIEW ANY DEFINITION需要对服务器实例具有权限。