sys.dm_hadr_cluster WSFC集群名称
sys.dm_hadr_cluster_members 存放WSFC所有成员以及成员属性,如:WSFC节点、仲裁资源、见证服务器;是否拥有投票权。
sys.dm_hadr_cluster_networks 每个可用性副本的虚拟网络ip表
sys.dm_hadr_database_replica_cluster_states Windows Server 故障转移群集 (WSFC) 群集上每个 AlwaysOn 可用性组中的可用性数据库的运行状况
sys.dm_tcp_listener_states 可用性组侦听器以及侦听的端口
sys.dm_hadr_instance_node_map WSFC节点ID和名称
sys.dm_hadr_name_id_map 可用性组 ID、WSFC 资源 ID 和 WSFC 组 ID 三个ID的关系表。
sys.dm_hadr_availability_replica_cluster_nodes、sys.dm_hadr_availability_replica_cluster_states
Alwayson集群每个可用组的可用副本,每个副本一行。
sys.dm_hadr_availability_group_states 当前实例下,Alwayson 每个可用性组运行的状况
primary_recovery_health 主副本的回复状况, 0 = 正在进行、1 = 联机、NULL;在辅助副本上,primary_recovery_health 列为 NULL。
secondary_recovery_health 指示辅助副本的恢复状况,0 = 正在进行、1 = 联机、NULL;在主副本上,secondary_recovery_health 列为 NULL。
值 | 说明 |
0 | 不正常。 没有任何可用性副本具有正常的 synchronization_health (2 = HEALTHY)。 |
1 | 部分正常。 某些(但并非全部)可用性副本的同步运行状况是正常的。 |
2 | 正常。 每个可用性副本的同步运行状况都是正常的。 |
sys.dm_hadr_availability_replica_states 当前实例中,可用性组下,每个可用数据库的状态
role 角色, 0 = 正在解析、1 = 主、2 = 辅助
role_desc 角色说明, 可为后面三个值之一 RESOLVING、PRIMARY、SECONDARY
operational_state 角色的操作状态, 0 = 挂起故障转移、1 = 等待批准、2 = 联机、3 = 脱机、4 = 失败、5 = 失败,无仲裁、NULL = 副本不在本地
operational_state_desc 角色操作状态说明 ,PENDING_FAILOVER、PENDING、ONLINE、OFFLINE、FAILED、FAILED_NO_QUORUM、NULL
角色和操作状态对应的表
角色 | 每个角色的操作状态的含义 | |
RESOLVING | 在某一可用性副本处于 RESOLVING 角色时,可能的操作状态如下: | |
操作状态 | 说明 | |
PENDING_FAILOVER | 正在为可用性组处理故障转移命令。 | |
OFFLINE | 可用性副本的所有配置数据都已在 WSFC 群集上更新, 并且也在本地元数据中更新,但可用性组目前缺少主副本。 | |
FAILED | 在试图从 WSFC 群集中检索信息时发生了读取失败。 | |
FAILED_NO_QUORUM | 本地 WSFC 节点没有仲裁。 这是一种推断状态。 | |
PRIMARY | 当某一可用性副本履行 PRIMARY 角色时,它目前就是主副本。 可能的操作状态如下: | |
操作状态 | 说明 | |
PENDING | 这是一个临时状态,但是,如果工作线程无法处理请求,主副本可能会处于此状态。 | |
ONLINE | 可用性组资源已处于联机状态,并且所有数据库工作线程均已选取。 | |
FAILED | 可用性副本无法从 WSFC 群集读取和/或写入。 | |
SECONDARY | 当某一可用性副本履行 SECONDARY 角色时,它目前就是辅助副本。 可能的操作状态如下: | |
操作状态 | 说明 | |
ONLINE | 本地辅助副本连接到主副本。 | |
FAILED | 本地辅助副本无法从 WSFC 群集读取和/或写入。 | |
NULL | 在主副本上,当行与某一辅助副本相关时,将返回该值。 |
synchronization_health 数据库副本同步状态,0=不正常、1=部分正常、2=正常
synchronization_health_desc 数据库副本同步状态说明,NOT_HEALTHY、PARTIALLY_HEALTHY、HEALTHY
sys.dm_hadr_database_replica_states 当前实例下所有可用性数据库的状态信息表
synchronization_state 数据同步状态,0=未同步、1=正在同步、2=已同步、3=正在恢复、4=正在初始化
synchronization_state_desc 数据同步状态说明,NOT SYNCHRONIZING、SYNCHRONIZING、SYNCHRONIZED、REVERTING、INITIALIZING
database_state 数据库状态,0 = 联机、1 = 正在还原、2 = 正在恢复、3 = 恢复挂起、4 = 可疑、5 = 紧急、6 = 脱机
database_state_desc 数据库状态说明,ONLINE、RESTORING、RECOVERING、RECOVERY_PENDING、SUSPECT、EMERGENCY、OFFLINE
is_suspended 是否挂起,0=已恢复、1=已挂起
suspend_reason 挂起原因,0 = 用户操作、1 = 挂起来自伙伴、2 = 重做、3 = 应用、4 = 捕获、5 = 重新启动、6 = 撤消、7 = 重新验证、8 = 计算辅助副本同步点时出错
suspend_reason_desc 挂起原因说明,SUSPEND_FROM_USER = 用户手动挂起的收据移动、SUSPEND_FROM_PARTNER = 在强制故障转移后挂起数据库副本、
SUSPEND_FROM_REDO = 在重做阶段中出错、SUSPEND_FROM_APPLY = 在将日志写入文件时出错、SUSPEND_FROM_CAPTURE = 在捕获主副本上的日志时出错、 USPEND_FROM_RESTART = 在重新启动数据库前挂起数据库副本、SUSPEND_FROM_UNDO = 在撤消阶段中出错、SUSPEND_FROM_REVALIDATION = 在重新连接时检测到了日志更改不匹配
SUSPEND_FROM_XRF_UPDATE = 找不到公共日志点
其他字段:
recovery_lsn | 在主副本上,在恢复或故障转移之后、在主数据库写入任何新日志记录之前事务日志的结尾。 对于给定的辅助数据库,如果该值小于当前硬化的 LSN (last_hardened_lsn),则 recovery_lsn 是此辅助数据库需要重新同步的值(即要恢复到和重新初始化的值)。 如果该值大于或等于当前硬化 LSN,重新同步将没有必要且不会发生。 | |
truncation_lsn | 在主副本上,对于主数据库,反映了所有相应辅助数据库中的最小日志截断 LSN。 如果阻止本地日志截断(例如由备份操作阻止),则该 LSN 可能高于本地截断 LSN。 | |
对于给定的辅助数据库,反映了该数据库的截断点。 | ||
反映了用零填充的日志块 ID。 它不是实际的日志序列号。 | ||
last_sent_lsn | 指示一个点(在该点前的所有日志块都已由主数据库发送)的日志块标识符。 该标识符是将发送的下一日志块的 ID,而非最近发送的日志块的 ID。 | |
反映了用零填充的日志块 ID,它不是实际的日志序列号。 | ||
last_sent_time | 发送最后一个日志块的时间。 | |
last_received_lsn | 标识一个点的日志块 ID,在该点之前,所有日志块都已由承载此辅助数据库的辅助副本接收。 | |
反映了用零填充的日志块 ID。 它不是实际的日志序列号。 | ||
last_received_time | 在辅助副本上读取最后接收的消息中的日志块 ID 的时间。 | |
last_hardened_lsn | 包含辅助数据库上最后强制写入的 LSN 的日志记录的日志块开头。 | |
在异步提交主数据库上或其当前策略为“延迟”的同步提交数据库上,该值为 NULL。 对于其他同步提交主数据库,last_hardened_lsn 指示所有辅助数据库中强制写入的 LSN 的最小值。 | ||
last_hardened_time |
| |
last_redone_lsn | 在辅助数据库上重做的上一个日志记录的实际日志序列号。 last_redone_lsn 始终小于last_hardened_lsn。 | |
last_redone_time | 在辅助数据库上重做最后一个日志记录的时间。 | |
log_send_queue_size | 主数据库中尚未发送到辅助数据库的日志记录量 (KB)。 | |
log_send_rate | 日志记录发送到辅助数据库的速率(KB/秒)。 | |
redo_queue_size | 辅助副本的日志文件中尚未重做的日志记录量 (KB)。 | |
redo_rate | 日志记录在给定辅助数据库上重做的速率(KB/秒)。 | |
filestream_send_rate | FILESTREAM 文件传送到辅助副本的速率(KB/秒)。 | |
end_of_log_lsn | 日志 LSN 的本地结尾。 与主数据库和辅助数据库上日志缓存中的最后一个日志记录相对应的实际 LSN。在主副本上,辅助行反映了辅助副本已发送到主副本的最新进度消息中日志 LSN 的结尾。 | |
last_commit_lsn | 与事务日志中的最后提交的记录相对应的实际日志序列号。 | |
主数据库上,这对应于上次处理的提交记录。 辅助数据库的行显示辅助副本已发送到主副本的日志序列号。 | ||
在辅助副本上,这是已重做的最后一个提交记录。 | ||
last_commit_time | 与最后一个提交记录对应的时间。 | |
在辅助数据库上,此时间与主数据库上的时间相同。 | ||
在主副本上,每个辅助数据库行都显示承载该辅助数据库的辅助副本报告回主副本的时间。 主数据库行和给定辅助数据库行之间的时间差异大体上表示还原时间目标 (RPO),并且假定跟随进行重做进程并且进度已由辅助副本报告回主副本。 | ||
low_water_mark_for_ghosts | 针对数据库的单调递增的数字,指示主数据库上虚影清除使用的低水印。 如果这个数字没有随着时间的推移而增加,则意味着虚影清除可能未发生。 为了确定要清除的虚影行,主副本会在所有可用性副本(包括主副本)上将该列的最小值用于此数据库。 |
sys.availability_group_listener_ip_addresses
sys.availability_read_only_routing_lists
sys.availability_group_listeners
sys.availability_groups 可用性组转移设置
sys.availability_groups_cluster 可用性组内可用数据库设置 ,触发自动故障转移的用户定义的失败条件级别
failure_condition_level
值 | 失败条件 |
1 | 指定在发生以下任何情况时应启动自动故障转移: |
SQL Server 服务停止。 | |
2 | 指定在发生以下任何情况时应启动自动故障转移: |
SQL Server 的实例未连接到群集,并且超出了可用性组的用户指定的health_check_timeout 阈值。 | |
可用性副本处于失败状态。 | |
3 | 指定在发生了严重的 SQL Server 内部错误(例如孤立的自旋锁、严重的写访问冲突或过多的转储)时应启动自动故障转移。 |
此为默认值。 | |
4 | 指定在发生了中等程度的 SQL Server 内部错误(例如在 SQL Server 内部资源池中出现持久的内存不足情况)时应启动自动故障转移。 |
5 | 指定在出现任何符合的失败条件时应启动自动故障转移,这些失败条件包括: |
SQL 引擎的工作线程耗尽。 | |
检测到无法解决的死锁。 |
列名称 | 说明 | |||
replica_id | 副本的唯一 ID。 | |||
group_id | 副本所属于的可用性组的唯一 ID。 | |||
endpoint_url | NULL = 无法联系 WSFC 故障转移群集。 | |||
availability_mode | 副本的可用性模式,其中: | |||
值 | 含义 | |||
1 | 异步提交。 主副本可以不必等待辅助副本将日志写入磁盘,即可提交事务。 | |||
2 | 同步提交。 在辅助副本将事务写入磁盘之前,主副本等待提交给定的事务。 | |||
availability_mode_desc | availability_mode的说明,可以是以下值之一: | |||
ASYNCHRONOUS_COMMIT | ||||
SYNCHRONOUS_COMMIT | ||||
若要更改可用性副本的可用性模式,请使用 ALTER AVAILABILITY GROUP Transact-SQL 语句的 AVAILABILITY_MODE 选项 | ||||
failover_mode | 可用性副本的故障转移模式,可以是以下值之一: | |||
值 | 含义 | |||
1 | 手动故障转移。 设置为手动故障转移的向辅助副本的故障转移必须由数据库管理员手动启动。 要执行的故障转移的类型将依赖于是否同步辅助副本,如下所示: | |||
如果可用性副本未同步或者仍在同步,则只能发生强制故障转移(可能会丢失数据)。 | ||||
如果可用性模式设置为同步提交 (availability_mode = 2) 并且可用性副本当前正在同步,则可能会发生没有数据丢失的手动故障转移。 | ||||
2 | 自动故障转移。 副本是自动故障转移的潜在目标。 仅在可用性模式设置为同步提交 (availability_mode = 2) 并且可用性副本当前已同步时,才支持自动故障转移。 | |||
failover_mode_desc |
| |||
MANUAL | ||||
AUTOMATIC | ||||
session_timeout | 超时期限(秒)。 超时期限是指副本接收来自其他副本的消息而等待的最长时间,超过此时间,将主副本和辅助副本之间的连接视为已失败。 会话超时检测辅助副本是否与主副本相连接。 | |||
在检测到与辅助副本的连接失败时,主副本将辅助副本视为 NOT_SYNCHRONIZED。 在检测到与辅助副本的连接失败时,辅助副本只会尝试重新连接。 | ||||
| ||||
secondary_role_allow_connections | 正在履行辅助角色的可用性副本(也就是辅助副本)是否可以接受来自客户端的连接,可为下列值之一: | |||
0 = 否。 不允许连接到辅助副本中的数据库,且不支持读取这些数据库。 这是默认设置。 | ||||
1 = 只读。 仅允许针对辅助副本中的数据库进行只读连接。 副本中的所有数据库都可用于读访问。 | ||||
2 = 全部。 允许针对辅助副本中的数据库的所有连接进行只读访问。 | ||||
secondary_role_allow_connections_desc | secondary_role_allow_connections 的说明,可以是以下值之一: | |||
NO | ||||
READ_ONLY | ||||
ALL | ||||
create_date | 副本的创建日期。 | |||
NULL = 副本不位于此服务器实例上。 | ||||
modify_date | 上次修改副本的日期。 | |||
NULL = 副本不位于此服务器实例上。 | ||||
backup_priority | 表示相对于同一可用性组中的其他副本,在此副本上执行备份的用户指定的优先级。 该值是范围 0..100 中的整数。 |