首页 > 代码库 > Alwayson常用视图整理

Alwayson常用视图整理

 

sys.dm_hadr_auto_page_repair

为针对任何可用性数据库(位于服务器实例为任何可用性组承载的可用性副本上)

的每一个自动页修复尝试都返回一行

sys.dm_hadr_cluster_networks

为每个参与可用性组子网配置的 WSFC 群集成员都返回一行,

可以使用此动态管理视图来验证为每个可用性副本配置的网络虚拟 IP

sys.dm_hadr_availability_group_states

显示实例下可用性组的运行状况的状态

sys.dm_hadr_database_replica_cluster_states

Windows Server 故障转移群集 (WSFC) 群集上每个 AlwaysOn

可用性组中的可用性数据库的运行状况

sys.dm_hadr_availability_replica_cluster_nodes

sys.dm_hadr_database_replica_states

sys.dm_hadr_availability_replica_cluster_states

sys.dm_hadr_instance_node_map

sys.dm_hadr_availability_replica_states

sys.dm_hadr_name_id_map

sys.dm_hadr_cluster

sys.dm_tcp_listener_states

sys.dm_hadr_cluster_members

 

 

sys.dm_hadr_database_replica_cluster_states

列名称

数据类型

说明

replica_id

uniqueidentifier

可用性组内可用性副本的标识符。

group_database_id

uniqueidentifier

可用性组内数据库的标识符。 在此数据库联接到的每个副本上,该标识符都是相同的。

database_name

sysname

属于可用性组的数据库的名称。

is_failover_ready

bit

指示辅助数据库是否与相应的主数据库同步。 可为下列值之一:

0 = 该数据库在群集中未标记为已同步。 数据库尚未做好故障转移准备。

1 = 该数据库在群集中标记为已同步。 数据库已做好故障转移准备。

is_pending_secondary_suspend

bit

指示强制故障转移后,数据库是否正待挂起,可为下列值之一:

0 = HADR_SYNCHRONIZED_ SUSPENDED 之外的任何状态。

1 = HADR_SYNCHRONIZED_ SUSPENDED。 强制故障转移完成后,每个辅助数据库将设置为

ADR_SYNCHONIZED_SUSPENDED 并保持此状态,

直到新的主副本收到该辅助数据库关于 SUSPEND 消息的确认。

NULL = 未知(无仲裁)

is_database_joined

bit

指示此可用性副本上的数据库是否已联接到可用性组,可为下列值之一:

0 = 数据库未联接到此可用性副本上的可用性组。

1 = 数据库联接到此可用性副本上的可用性组。

NULL = 未知(可用性副本缺少仲裁。)

recovery_lsn

numeric(25,0)

在主副本上,在恢复或故障转移后、但在副本写入任何新日志记录前事务日志的结尾。 在主副本上,

某一给定辅助数据库的行将具有主副本需要辅助副本同步到(即,还原到且重新初始化到)的值。

在辅助副本上此值为 NULL。 请注意,每个辅助副本将具有 MAX 值或是主副本通知辅助副本返回到的较低值。

truncation_lsn

numeric(25,0)

AlwaysOn 可用性组 日志截断值,如果阻止本地日志截断(例如由备份操作阻止),该值可能高于本地截断 LSN。

 

sys.dm_hadr_database_replica_states

列名称

数据类型

说明(针对主副本)

database_id

int

数据库的标识符,在 SQL Server 的实例内是唯一的。 该值在与在 sys.databases 目录视图中显示的值相同。

group_id

uniqueidentifier

数据库所属的可用性组的标识符。

replica_id

uniqueidentifier

可用性组内可用性副本的标识符。

group_database_id

uniqueidentifier

可用性组内数据库的标识符。 在此数据库联接到的每个副本上,该标识符都是相同的。

is_local

bit

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

0 = 数据库对于 SQL Server 实例而言不是本地的。

1 = 数据库对于服务器实例而言是本地的。

synchronization_state

tinyint

数据移动状态,可以是下列值之一:

说明

0

未同步。

  • 对于某一主数据库,指示该数据库未做好将其事务日志与相应的辅助数据库同步的准备。
  • 对于辅助数据库,指示数据库由于连接问题而未开始日志同步,正被挂起,或者在启动或角色切换过程中正在转换状态。

1

正在同步。

  • 对于主数据库,指示此数据库已做好接受来自辅助数据库的扫描请求的准备。
  • 对于辅助数据库,指示对于该数据库正在发生活动数据移动。

2

已同步。

  • 主数据库显示 SYNCHRONIZED 来代替 SYNCHRONIZING。
  • 同步提交辅助数据库在以下情况下将显示已同步:本地缓存指示数据库副本可供故障转移并且数据库正在同步。

3

正在恢复。 指示撤消进程中辅助数据库主动从主数据库获取页时的阶段。

注意: 当辅助副本上的数据库处于 REVERTING 状态时,强制故障转移到辅助副本将使数据库处于该数据库不能作为

主数据库启动的状态。

该数据库将需要作为辅助数据库重新连接,或者您需要应用来自日志备份的新日志记录。

4

正在初始化。 指示在正在辅助副本上传送和强制写入辅助数据库跟上撤消 LSN 所需的事务日志时的撤消阶段。

注意 :当辅助副本上的数据库处于 INITIALIZING 状态时,强制故障转移到辅助副本将使数据库处于该数据库可作

为主数据库启动的状态。

该数据库将需要作为辅助数据库重新连接,或者您需要应用来自日志备份的新日志记录。

synchronization_state_desc

nvarchar(60)

数据移动状态的说明,可以是下列值之一:

NOT SYNCHRONIZING 、SYNCHRONIZING 、SYNCHRONIZED 、REVERTING 、INITIALIZING

is_commit_participant

bit

0 = 就此数据库而言,事务提交未同步。

1 = 就此数据库而言,事务提交同步。

对于异步提交可用性副本上的数据库,该值始终为 0。

对于同步提交可用性副本上的数据库,该值仅在主数据库上是准确的。

synchronization_health

tinyint

反映加入到可用性副本上可用性组的数据库的同步状态与可用性副本的可用性模式(同步提交或异步提交模式)之间的交集,其中:

说明

0

不正常。 数据库的 synchronization_state 为 0 (NOT SYNCHRONIZING)。

1

部分正常。 如果 synchronization_state 为 1 (SYNCHRONIZING),则认为同步提交可用性副本上的数据库是不完全正常的。

2

正常。 如果 synchronization_state 为 2 (SYNCHRONIZED),则认为同步提交可用性副本上的数据库是正常的;

如果 synchronization_state 为 1 (SYNCHRONIZING),则认为异步提交可用性副本上的数据库是正常的。

synchronization_health_desc

nvarchar(60)

可用性数据库的 synchronization_health 的说明。

NOT_HEALTHY 、PARTIALLY_HEALTHY 、HEALTHY

database_state

tinyint

0 = 联机 、1 = 正在还原 、2 = 正在恢复 、3 = 恢复挂起 、4 = 可疑 、5 = 紧急 、6 = 脱机

database_state_desc

nvarchar(60)

可用性副本的 database_state 的说明。

ONLINE 、RESTORING 、RECOVERING 、RECOVERY_PENDING 、SUSPECT 、EMERGENCY 、OFFLINE

is_suspended

bit

数据库状态,可以是下列值之一:

0 = 已恢复 、1 = 已挂起

suspend_reason

tinyint

如果数据库处于已挂起状态,则为已挂起状态的原因,可以是下列值之一:

0 = 用户操作 、1 = 挂起来自伙伴、 2 = 重做 、3 = 应用、 4 = 捕获、 5 = 重新启动 、6 = 撤消

7、 = 重新验证 、8 = 计算辅助副本同步点时出错

suspend_reason_desc

nvarchar(60)

数据库挂起状态的原因的说明,可以是下列值之一:

SUSPEND_FROM_USER = 用户手动挂起的收据移动 、SUSPEND_FROM_PARTNER = 在强制故障转移后挂起数据库副本

SUSPEND_FROM_REDO = 在重做阶段中出错 、SUSPEND_FROM_APPLY = 在将日志写入文件时出错(请参阅错误日志)

SUSPEND_FROM_CAPTURE = 在捕获主副本上的日志时出错 、

SUSPEND_FROM_RESTART = 在重新启动数据库前挂起数据库副本(请参阅错误日志)

SUSPEND_FROM_UNDO = 在撤消阶段中出错(请参阅错误日志) 、

SUSPEND_FROM_REVALIDATION = 在重新连接时检测到了日志更改不匹配(请参阅错误日志)

SUSPEND_FROM_XRF_UPDATE = 找不到公共日志点(请参阅错误日志)

recovery_lsn

numeric(25,0)

在主副本上,在恢复或故障转移之后、在主数据库写入任何新日志记录之前事务日志的结尾。 对于给定的辅助数据库,

如果该值小于当前硬化的 LSN (last_hardened_lsn),则 recovery_lsn 是此辅助数据库需要重新同步的值

(即要恢复到和重新初始化的值)。 如果该值大于或等于当前硬化 LSN,重新同步将没有必要且不会发生。

truncation_lsn

numeric(25,0)

在主副本上,对于主数据库,反映了所有相应辅助数据库中的最小日志截断 LSN。 如果阻止本地日志截断(例如由备份操作阻止),

则该 LSN 可能高于本地截断 LSN。

对于给定的辅助数据库,反映了该数据库的截断点。 truncation_lsn 反映了用零填充的日志块 ID。 它不是实际的日志序列号。

last_sent_lsn

numeric(25,0)

指示一个点(在该点前的所有日志块都已由主数据库发送)的日志块标识符。 该标识符是将发送的下一日志块的 ID,

而非最近发送的日志块的 ID。

last_sent_lsn 反映了用零填充的日志块 ID,它不是实际的日志序列号。

last_sent_time

datetime

发送最后一个日志块的时间。

last_received_lsn

numeric(25,0)

标识一个点的日志块 ID,在该点之前,所有日志块都已由承载此辅助数据库的辅助副本接收。

last_received_lsn 反映了用零填充的日志块 ID。 它不是实际的日志序列号。

last_received_time

datetime

在辅助副本上读取最后接收的消息中的日志块 ID 的时间。

last_hardened_lsn

numeric(25,0)

包含辅助数据库上最后强制写入的 LSN 的日志记录的日志块开头。

在异步提交主数据库上或其当前策略为"延迟"的同步提交数据库上,该值为 NULL。 对于其他同步提交主数据库,

last_hardened_lsn 指示所有辅助数据库中强制写入的 LSN 的最小值。

last_hardened_time

datetime

在辅助数据库上,上次强制写入的 LSN (last_hardened_lsn) 的日志块标识符的时间。 在主数据库上,

反映了与最小强制写入的 LSN 相对应的时间。

last_redone_lsn

numeric(25,0)

在辅助数据库上重做的上一个日志记录的实际日志序列号。 last_redone_lsn 始终小于last_hardened_lsn

last_redone_time

datetime

在辅助数据库上重做最后一个日志记录的时间。

log_send_queue_size

bigint

主数据库中尚未发送到辅助数据库的日志记录量 (KB)。

log_send_rate

bigint

日志记录发送到辅助数据库的速率(KB/秒)。

redo_queue_size

bigint

辅助副本的日志文件中尚未重做的日志记录量 (KB)。

redo_rate

bigint

日志记录在给定辅助数据库上重做的速率(KB/秒)。

filestream_send_rate

bigint

FILESTREAM 文件传送到辅助副本的速率(KB/秒)。

end_of_log_lsn

numeric(25,0)

日志 LSN 的本地结尾。 与主数据库和辅助数据库上日志缓存中的最后一个日志记录相对应的实际 LSN。在主副本上

,辅助行反映了辅助副本已发送到主副本的最新进度消息中日志 LSN 的结尾。

end_of_log_lsn 反映了用零填充的日志块 ID。 它不是实际的日志序列号。

last_commit_lsn

Numeric(25,0)

与事务日志中的最后提交的记录相对应的实际日志序列号。

主数据库上,这对应于上次处理的提交记录。 辅助数据库的行显示辅助副本已发送到主副本的日志序列号。

在辅助副本上,这是已重做的最后一个提交记录。

last_commit_time

datetime

与最后一个提交记录对应的时间。

在辅助数据库上,此时间与主数据库上的时间相同。

在主副本上,每个辅助数据库行都显示承载该辅助数据库的辅助副本报告回主副本的时间。

主数据库行和给定辅助数据库行之间的时间差异大体上表示还原时间目标 (RPO),

并且假定跟随进行重做进程并且进度已由辅助副本报告回主副本。

low_water_mark_for_ghosts

bigint

针对数据库的单调递增的数字,指示主数据库上虚影清除使用的低水印。 如果这个数字没有随着时间的推移而增加,

则意味着虚影清除可能未发生。 为了确定要清除的虚影行,

主副本会在所有可用性副本(包括主副本)上将该列的最小值用于此数据库。

sys.dm_hadr_availability_group_states

列名称

数据类型

说明

group_id

uniqueidentifier

可用性组的唯一标识符。

primary_replica

varchar(128)

正在承载当前主副本的服务器实例的名称。

NULL = 不是主副本或无法与 WSFC 故障转移群集通信。

primary_recovery_health

tinyint

指示主副本的恢复状况,可为下列值之一:

0 = 正在进行 、1 = 联机、 NULL

在辅助副本上,primary_recovery_health 列为 NULL。

primary_recovery_health_desc

nvarchar(60)

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

ONLINE_IN_PROGRESS、 ONLINE、 NULL

secondary_recovery_health

tinyint

指示辅助副本的恢复状况,可为下列值之一:

0 = 正在进行、 1 = 联机 、NULL

在主副本上,secondary_recovery_health 列为 NULL。

secondary_recovery_health_desc

nvarchar(60)

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

ONLINE_IN_PROGRESS 、ONLINE 、NULL

synchronization_health

tinyint

返回可用性组中所有可用性副本的 synchronization_health 的汇总,其中:

说明

0

不正常。 没有任何可用性副本具有正常的 synchronization_health (2 = HEALTHY)。

1

部分正常。 某些(但并非全部)可用性副本的同步运行状况是正常的。

2

正常。 每个可用性副本的同步运行状况都是正常的。

synchronization_health_desc

nvarchar(60)

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

NOT_HEALTHY 、PARTIALLY_HEALTHY、 HEALTHY

Alwayson常用视图整理