DMV和系统目录视图
这里主要介绍AlwaysON的动态管理视图,可以用来监控和排查你的AG。
在AlwaysOn Dashboard,你可以简单的配置的GUI显示很多可用副本的DMV和可用数据库通过右击各自的表头并且选择你要加入和隐藏的DMV。
更多关于DMV信息查看: AlwaysOn Availability Groups Dynamic Management Views and Functions (Transact-SQL).查看更多AG目录视图查看:AlwaysOn Availability Groups Catalog Views (Transact-SQL).
1.检查WSFC集群节点配置
use master
go
select * from sys.dm_hadr_cluster_members
go
结果集报告了每个成员节点的状态。quorum定义为节点和文件共享大多数。你可以看到每个节点的状态,包括每个节点投票的权重( number_of_quorum_votes值)。
2.集群网络
以下查询获取WSFC集群的网络配置:
select * from sys.dm_hadr_cluster_networks
这个结果,WSFC集群中的每个网络配置返回一样。比如双节点集群每个节点包含2个网络适配器,那么就返回4行。
3.可用组
以下语句获取AG信息。
select primary_replica, primary_recovery_health_desc, synchronization_health_desc from sys.dm_hadr_availability_group_states
go
select * from sys.availability_groups
go
select * from sys.availability_groups_cluster
go
DMV sys.dm_hadr_availability_group_states (Transact-SQL), sys.availability_groups (Transact-SQL), 和sys.availability_groups_cluster 返回WSFC集群中关于AG的所有信息。实际上sys.availability_groups (Transact-SQL), 和sys.availability_groups_cluster会返回相同的信息。
实际上, sys.availability_groups_cluster 返回保存在WSFC集群中AG的元数据。而sys.availability_groups (Transact-SQL) 返回SQL Server过程空间缓存的AG元数据信息。sys.dm_hadr_availability_group_states (Transact-SQL) 返回了当前AG的健康状态。
4.可用副本
以下查询返回Ag中的可用副本:
select replica_id, role_desc,
connected_state_desc,
synchronization_health_desc from sys.dm_hadr_availability_replica_states
go
select replica_server_name, replica_id, availability_mode_desc, endpoint_url from sys.availability_replicas
go
select replica_server_name, join_state_desc from sys.dm_hadr_availability_replica_cluster_states
go
类似于AG的DMV,有3个关于可用副本的DMV。sys.dm_hadr_availability_replica_states返回可用副本的当前状态, sys.dm_hadr_availability_replica_cluster_states 从WFSC中返回可用副本的状态。 sys.availability_replicas返回可用副本的配置信息。
5.可用副本健康
通过以下查询获取当前可用副本健康信息
select replica_id, role_desc, recovery_health_desc, synchronization_health_desc from sys.dm_hadr_availability_replica_states
go
比较primary副本和secondary副本,注意secondary副本,健康信息只报告AG内的可用副本。
6.可用数据库
以下信息获取可用副本内的数据库信息。你可以观察中断数据移动前后的可用数据库变化:
select * from sys.availability_databases_cluster
go
select group_database_id, database_name, is_failover_ready from sys.dm_hadr_database_replica_cluster_states
go
select database_id, synchronization_state_desc, synchronization_health_desc, last_hardened_lsn, redo_queue_size, log_send_queue_size from sys.dm_hadr_database_replica_states
go
有3个关于可用数据库的DMV,sys.availability_databases_cluster返回在WSFC中的可用数据库的信息。sys.dm_hadr_database_replica_cluster_states返回数据库中数据库副本的状态信息。包含了一些重要的信息,比如是否准备好副本转移。 sys.dm_hadr_database_replica_states是最详细,返回了关于每个可用数据库的状态信息,比如LSN处理进程。
7.可用数据库健康
一下信息获取每个可用数据库的健康信息。
select dc.database_name, dr.database_id, dr.synchronization_state_desc,
dr.suspend_reason_desc, dr.synchronization_health_desc
from sys.dm_hadr_database_replica_states dr join sys.availability_databases_cluster dc
on dr.group_database_id=dc.group_database_id
where is_local=1
go
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
2014-11-21 [20141121]无法通过powershell读取sql server性能计数器问题