首页 > 代码库 > Alwayson 常用视图总结
Alwayson 常用视图总结
最常用视图
sys.dm_hadr_database_replica_cluster_states
Windows Server 故障转移群集 (WSFC) 群集上每个 AlwaysOn 可用性组中的可用性数据库的运行状况
sys.dm_hadr_database_replica_states
此动态管理视图显示主副本和辅助副本有关的状态信息。?在辅助副本上,此视图为服务器实例上的每个辅助数据库都返回一行。?在主副本上,此视图为每个主数据库都返回一行,并且为相应的辅助数据库另外返回一行
?
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 | 数据移动状态,可以是下列值之一:
| ||||||||||||||||
synchronization_state_desc | nvarchar(60) | 数据移动状态的说明,可以是下列值之一: NOT SYNCHRONIZING SYNCHRONIZING SYNCHRONIZED REVERTING INITIALIZING | ||||||||||||||||
is_commit_participant | bit | 0 = 就此数据库而言,事务提交未同步。 1 = 就此数据库而言,事务提交同步。 对于异步提交可用性副本上的数据库,该值始终为 0。 对于同步提交可用性副本上的数据库,该值仅在主数据库上是准确的。 | ||||||||||||||||
synchronization_health | tinyint | 反映加入到可用性副本上可用性组的数据库的同步状态与可用性副本的可用性模式(同步提交或异步提交模式)之间的交集,其中:
| ||||||||||||||||
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,重新同步将没有必要且不会发生。 recovery_lsn?反映了用零填充的日志块 ID。?它不是实际的日志序列号 (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。?它不是实际的日志序列号。?有关详细信息,请参阅本主题稍后部分中的了解 LSN 列值。 | ||||||||||||||||
last_commit_lsn | Numeric(25,0) | 与事务日志中的最后提交的记录相对应的实际日志序列号。 主数据库上,这对应于上次处理的提交记录。?辅助数据库的行显示辅助副本已发送到主副本的日志序列号。 在辅助副本上,这是已重做的最后一个提交记录。 | ||||||||||||||||
last_commit_time | datetime | 与最后一个提交记录对应的时间。 在辅助数据库上,此时间与主数据库上的时间相同。 在主副本上,每个辅助数据库行都显示承载该辅助数据库的辅助副本报告回主副本的时间。?主数据库行和给定辅助数据库行之间的时间差异大体上表示还原时间目标 (RPO),并且假定跟随进行重做进程并且进度已由辅助副本报告回主副本。 | ||||||||||||||||
low_water_mark_for_ghosts | bigint | 针对数据库的单调递增的数字,指示主数据库上虚影清除使用的低水印。?如果这个数字没有随着时间的推移而增加,则意味着虚影清除可能未发生。?为了确定要清除的虚影行,主副本会在所有可用性副本(包括主副本)上将该列的最小值用于此数据库。 |
Alwayson 常用视图总结