管理SQL Server AlwaysOn(5)——常规监控(1)——常规监控
本文属于管理SQL Server AlwaysOn 系列文章
前言:
AlwaysOn仪表板(Dashboard):
从第二个图看到,【同步状态】这一列,会有三种可能的内容:已同步(SYNCHRONIZED)、未同步(NOT SYNCHRONIZING)、正在同步(SYNCHRONIZING)。对于同步副本,应该为“已同步”状态,其他状态都意味着不正常。对于异步副本,却不应该显示“已同步”,而是应该为“正在同步”。但是不管哪种同步模式,“未同步”状态都意味着不正常。
对于同步状态,每个副本还可能有以下几种操作状态: PENDING_FAILOVER , PENDING , ONLINE , OFFLINE , FAILED , FAILED_NO_QUORUM和NULL(当副本未连接时)。详细内容可以从联机丛书中查看:sys.dm_hadr_availability_replica_states 和 角色和操作状态
上图的右上角,有三个超链接:【启动故障转移向导】、【查看AlwaysOn运行状态事件】、【查看群集仲裁信息】,其中第二个【查看AlwaysOn运行状态事件】是一些内置的扩展事件,下节会介绍。第三个包含了现有群集的配置信息,如下图:
接下来在右方的【添加/删除列】中:
点开之后可以看到下面的内容:
在这里,可以动态添加和移除需要显示在仪表板上的列。也可以在空白处右键,然后进行组的展开和折叠操作:
AlwaysOn健康跟踪(Health Trace):
监控内容参考:
- WSFC的健康情况、配置信息。
- SQL Server TCP侦听器信息。
- SQL Server文件所在盘的空间。(这部分专题形式展现,完成之后提供链接)
- AlwaysOn侦听器。
- Failover(或者SQL Server 可用性组、实例的状态变更)。
- AlwaysOn数据库的状态变更。
- 日志传输、重做速率。
AlwaysOn监控脚本演示:
1. T-SQL查找当前SQL实例是否主副本:
IF SERVERPROPERTY ('IsHadrEnabled') = 1
BEGINSELECTAGC.name -- 可用性组名, RCS.replica_server_name -- SQL群集节点名, ARS.role_desc -- 副本角色, AGL.dns_name -- 侦听器名FROM sys.availability_groups_cluster AS AGCINNER JOIN sys.dm_hadr_availability_replica_cluster_states AS RCSON RCS.group_id = AGC.group_idINNER JOIN sys.dm_hadr_availability_replica_states AS ARSON ARS.replica_id = RCS.replica_idINNER JOIN sys.availability_group_listeners AS AGLON AGL.group_id = ARS.group_idWHERE ARS.role_desc = 'PRIMARY' --限定主副本,如果不限定,则可以查看所有副本
END
下面两个图分别是有WHERE条件和没有WHERE条件的结果:
2. 从sys.messages中查看AlwaysOn的的错误:
SELECT message_id [error_number],
severity, --严重性,在1~25之间
text
FROM sys.messages
WHERE text LIKE ('%availability%')
AND is_event_logged = 1;--1=出现错误时将消息计入时间日志
3. AlwaysOn所用到的DMV:
select * from sys.dm_hadr_cluster
select * from sys.dm_hadr_cluster_members
select * from sys.dm_hadr_cluster_networks
select * from sys.availability_groups
select * from sys.availability_groups_cluster
select * from sys.dm_hadr_availability_group_states
select * from sys.availability_replicas
select * from sys.dm_hadr_availability_replica_cluster_nodes
select * from sys.dm_hadr_availability_replica_cluster_states
select * from sys.dm_hadr_availability_replica_states
select * from sys.dm_hadr_auto_page_repair
select * from sys.dm_hadr_database_replica_states
select * from sys.dm_hadr_database_replica_cluster_states
select * from sys.availability_group_listener_ip_addresses
select * from sys.availability_group_listeners
select * from sys.dm_tcp_listener_states
4. SQL Server TCP侦听器信息:
SELECT listener_id, ip_address, is_ipv4, port, type_desc, state_desc, start_time
FROM sys.dm_tcp_listener_states WITH (NOLOCK) OPTION (RECOMPILE);
5. AG状态:
-- AG Status
DECLARE @HADRName VARCHAR(25)SET @HADRName = @@SERVERNAMESELECT n.group_name,n.replica_server_name,n.node_name,rs.role_desc,db_name(drs.database_id) AS 'DBName',drs.synchronization_state_desc,drs.synchronization_health_desc
FROM sys.dm_hadr_availability_replica_cluster_nodes n
JOIN sys.dm_hadr_availability_replica_cluster_states cs ON n.replica_server_name = cs.replica_server_name
JOIN sys.dm_hadr_availability_replica_states rs ON rs.replica_id = cs.replica_id
JOIN sys.dm_hadr_database_replica_states drs ON rs.replica_id = drs.replica_id
WHERE n.replica_server_name <> @HADRName
6. SQL Server代理警报:
USE master
GOSELECT message_id AS ErrorNumber,TEXT
FROM sys.messages
WHERE TEXT LIKE ('%availability%')AND language_id = 1033
可以看到很多内容:
ErrorNumber | 警告名 | 原因 |
1480 | AG角色变更(Failover) | 暗示着可用性组发生了故障转移,需要检查转移原因并确定是否需要转移回去。 |
976 | 数据库不可访问(Database Not Accessible) | 数据库不可用于查询,可能数据挂起或次要副本不可用于读访问。 |
983 | 数据库不可访问(Database Not Accessible) | 副本角色正在解析(resolving),数据库不可访问,检查SQL 错误日志和网络、存储及其他相关的错误信息事件日志),可能因为启动、故障转移、通讯或者群集错误引起。 |
3402 | 数据库正在还原(Database Restoring) | 数据库正在还原或者其他不能进行恢复的状态,检查数据库是否损坏或者在挂起状态。 |
19406 | AG副本状态变更(AG Replica Changed States) | 副本状态因为启动、故障转移、通讯或者群集故障等问题导致变更。检查日志再细分处理手段。 |
35206 | 连接超时(Connection Timeout) | 检查网络及防火墙问题,或者是否有副本传输故障。 |
35250 | 联接数据库失败(The connection to the primary replica is not active) | 因为对主副本的连接失败导致命令无法处理,检查SQL错误日志是否真正侦听端口及所有IP。 |
35264 | 数据移动挂起(Data Movement Suspended) | 需要手动恢复数据移动,检查SQL日志找到原因。 |
35273 | 数据库不可访问(Database Inaccessible) | 因为与主副本的会话中断导致恢复失败。可能由于WSFC仲裁、链接、端点配置或者权限问题导致。 |
35274 | 数据库恢复挂起(Database Recovery Pending) | 次要副本在等待接收来自于主副本的事务日志才能恢复联机,确保主副本所在的实例为联机状态。 |
35275 | 数据库挂起(Database in Suspect State) | 数据库处于潜在损坏的状态,不能连接到可用性组。还原数据库并重连可用性组。 |
35276 | 数据库不同步(Database Out of Sync) | 需要手工干预以便恢复同步。 |
41091 | 副本脱机(Replica Going Offline) | 如果重复出现需要检查原因。副本脱机可能因为租用过期或更新失败。或者网络问题,或者sp_server_diagnostic查询超时。 |
41131 | AG联机失败(Failed to Bring AG Online) | 确认WSFC节点是否联机,并且在WSFC群集中存在AG资源 |
41142 | 副本不能成为主要角色(Replica Cannot Become Primary) | 1个或多个数据库不同步或者不能连接到可用性组,或者群集以强制仲裁模式启动。 |
41406 | AG未为自动故障转移做好准备(AG Not Ready for Auto Failover) | 主次副本以自动故障转移模式配置,但是次要副本未准备成功。副本可能处于不可用状态。检查次要副本的其他信息。 |
41414 | 次要副本未连接(Secondary Not Connected) | 最少一个次要副本不能连接到主副本。检查SQL错误日志是否端口和IP侦听正常。 |
EXEC msdb.dbo.sp_add_alert@name = N'[Name of Alert]’,@message_id = 1480,@severity = 0,@enabled = 1,@delay_between_responses = 0,@include_event_description_in = 1;GOEXEC msdb.dbo.sp_add_notification@alert_name = N'[Name of Alert]’,@operator_name = N'[Operator]’,@notification_method = 1;GO
其他部分的监控将在后续逐步完善。
7. 相关性能计数器:
- SQLServer:Availability Replica:监控粒度为可用性组级别。
- SQLServer:Database Replica:监控粒度为可用性组中的数据库级别。
计数器名 | 主副本 | 次要副本/辅助副本 |
Availability Replica:Sends to Replica / Sec | √ | √ |
Availability Replica:Receives from Replica / Sec | √ | √ |
Availability Replica:Bytes Sent to Replica / Sec | √ | √ |
Availability Replica:Bytes Received from Replica / Sec | √ | √ |
Availability Replica:Sends to Transport / Sec | √ | √ |
Availability Replica:Bytes Sent to Transport / Sec | √ | √ |
Availability Replica:Resent Messages / Sec | √ | √ |
Availability Replica:Flow Control Time | √ | |
Availability Replica:Flow Control / Sec | √ | |
Database Replica:Redo Bytes Remaining | √ | |
Database Replica:Log Bytes Received / Sec | √ | |
Database Replica:File Bytes Received / Sec | √ | |
Database Replica:Log Remaining to Undo | √ | |
Database Replica:Total Log Requiring Undo | √ | |
Database Replica:Redone Bytes / Sec | √ | |
Database Replica:Recovery Queue | √ | |
Database Replica:Log Send Queue | √ | |
Database Replica:Transaction Delay | √ | |
Database Replica:Mirrored Write Transactions / Sec | √ |
select object_name,counter_name,instance_name,cntr_value
from sys.dm_os_performance_counterswhere object_name like '%replica%'
总结:
管理SQL Server AlwaysOn(5)——常规监控(1)——常规监控相关推荐
- 管理SQL Server AlwaysOn(1)——基础维护
本文属于管理SQL Server AlwaysOn 系列文章 前言: 前面系列已经介绍了SQL Server AlwaysOn的知识点.安装演示及注意事项等.但是这并不是终点,更多的反而是起点.就像不 ...
- SQL Server Alwayson架构下 服务器 各虚拟IP漂移监控告警的功能实现 -1(服务器视角)...
1.需求概括 我们知道,在SQL Server Alwayson 架构中,有多种虚拟IP,例如 WindowsCluster IP,ListenIP,角色高可用性IP(类似于侦听IP).在某些条件下, ...
- SQL Server AlwaysON从入门到进阶(3)——基础架构
本文属于SQL Server AlwaysON从入门到进阶系列文章 前言: 本文将更加深入地讲解WSFC所需的核心组件.由于AlwaysOn和FCI都需要基于WSFC之上,因此我们首先要了解在Wind ...
- 阿里云重磅发布RDS for SQL Server AlwaysOn集群版
2018年双十一刚过,阿里云数据库发布RDS for SQL Server AlwaysOn集群版,这是业界除微软云SQL Database外,首家云计算公司基于SQL Server最新AlwaysO ...
- Microsoft SQL Server 2005 提供了一些工具来监控数据库
--WL 09-07-03 /*Microsoft SQL Server 2005 提供了一些工具来监控数据库.方法之一是动态管理视图.动态管理视图 (DMV) 和动态管理函数 (DMF) 返回的服务 ...
- SQL Server AlwaysON从入门到进阶(1)——何为AlwaysON?
本文属于SQL Server AlwaysON从入门到进阶系列文章 本文原文出自Stairway to AlwaysOn系列文章.根据工作需要在学习过程中顺带翻译以供参考.系列文章包含: SQL Se ...
- SQL Server AlwaysON从入门到进阶(6)——分析和部署AlwaysOn Availability Group
本文属于SQL Server AlwaysON从入门到进阶系列文章 前言: 本节是整个系列的重点文章,到现在,读者应该已经对整个高可用架构有一定的了解,知道独立的SQL Server实例和基于群集的S ...
- 从0开始搭建SQL Server AlwaysOn 第四篇(配置异地机房节点)
从0开始搭建SQL Server AlwaysOn 第四篇(配置异地机房节点) 第一篇 http://www.cnblogs.com/lyhabc/p/4678330.html 第二篇 http:// ...
- 配置SQL Server AlwaysOn高可用性组
In this article, we will learn the step by step configuration of SQL Server AlwaysOn High availabili ...
最新文章
- Python3.5模块‘OS’‘sys’
- 最大似然估计的一个示例
- Python多版本共存配置
- Spring MVC——ConverterltString, Dategt DEMO
- 如何求解两个数的最大公约数
- vue github开源项目_2018 年最好的 45 个 Vue 开源项目汇总
- post .php程序,php程序内部post数据的方法
- 18muduo_base库源码分析(九)
- 步步为营-92-空格变成问号的怪问题
- 金蝶14.0系统服务器安装教程,大神面对win7系统安装金蝶kis14.0的方式
- 人物肖像速写_骄傲家庭:肖像项目
- eclipse tomcat lomboz的安装配置说明
- 畅购第9天项目总结(Spring Security Oauth2 JWT)
- mike21 matlab tools,MIKE21学习软件
- 痞子衡嵌入式:记录i.MXRT1060驱动LCD屏显示横向渐变色有亮点问题解决全过程(提问篇)...
- 程序员为什么不单干、接私活、自己开公司
- 网络技术-路由器配置
- Passper for PDF v3.6.1.1
- 给Div添加边框颜色
- 在CAS Server上增加OAuth2.0协议