sys.dm_hadr_cluster_members (Transact-SQL)

适用于:SQL Server Azure SQL 数据库

如果承载为 AlwaysOn 可用性组启用的 SQL Server 本地实例的 WSFC 节点具有 WSFC 仲裁,则为构成仲裁的每个成员及其状态返回一行。 这包括群集中的所有节点(按Clusterenum函数类型返回CLUSTER_ENUM_NODE)和磁盘或文件共享见证(如果有)。 为给定成员返回的行包含有关该成员状态的信息。 例如,对于具有多数节点仲裁的五个节点群集,其中一个节点处于关闭状态时 sys.dm_hadr_cluster_members ,从为驻留在具有仲裁的节点上的 AlwaysOn 可用性组启用的服务器实例进行查询时, sys.dm_hadr_cluster_members 将向下节点的状态反映为 NODE_DOWN

如果 WSFC 节点没有仲裁,则不会返回任何行。

使用此动态管理视图可以解答下列问题:

  • 哪些节点当前正在 WSFC 群集上运行?

  • WSFC 群集可以容忍多少次失败,之后才会在多数节点情况下失去仲裁?

提示

从 SQL Server 2014(12.x)开始,此动态管理视图除了可用性组(AG)外,还支持 AlwaysOn 故障转移群集实例(FCI)。

列名称 数据类型 描述
member_name nvarchar(128) 成员名称,可以是一个计算机名称、驱动器号或文件共享路径。
member_type tinyint 成员的类型,可为下列值之一:

0 = WSFC 节点

1 = 磁盘见证服务器
2 = 文件共享见证服务器
3 = 云见证
member_type_desc nvarchar(50) member_type描述,其中之一:

CLUSTER_NODE
DISK_WITNESS
FILE_SHARE_WITNESS
CLOUD_WITNESS
member_state tinyint 成员状态,可为下列值之一:

0 = 脱机
1 = 联机
member_state_desc nvarchar(60) member_state描述,其中之一:

UP
DOWN
number_of_quorum_votes tinyint 此仲裁成员拥有的仲裁票数。 对于“无大多数: 仅限磁盘”仲裁,此值默认为 0。 对于其他仲裁类型,此值默认为 1。

注解

在 Windows Server 故障转移群集(WSFC)中,群集列显示 Windows 群集详细信息。 如果没有 Windows 群集(例如 读取缩放可用性组Linux 上的可用性组),则与群集相关的列可能会显示有关内部默认群集的数据。 这些列仅供内部使用,可以忽略。

权限

对于 SQL Server 2019 (15.x) 和以前的版本,需要对服务器具有 VIEW SERVER STATE 权限。

对于 SQL Server 2022(16.x)及更高版本,需要对服务器具有 VIEW SERVER PERFORMANCE STATE 权限。