你的位置:首页 > 数据库

[数据库][AlwaysOn Availability Groups]DMV和系统目录视图


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 fromsys.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