[AlwaysOn Availability Groups]AG排查和监控指南

AG排查和监控指南

1. 排查场景

如下表包含了常用排查的场景。根据被分为几个场景类型,比如Configuration,client connectivity,failover和performance。


Scenario


笔记


Scenario Type


Description


Troubleshoot AlwaysOn Availability Groups Configuration (SQL Server)


排查:AG配置


Configuration


提供了一些典型的配置AG实例发生问题的信息。比如AG被禁用,账号配置不正确,镜像endpoint不存在(SQL Server Error 1418)。网络访问不存在,join数据库失败(SQL Server Error 35250)。


Troubleshoot "Validating WSFC quorum vote configuration" warning


Configuration


当使用对话框创建AG时,收到一个警告: “The current WSFC cluster quorum vote configuration is not recommended for this availability group.”


Troubleshoot issues when creating availability group listeners


Configuration


在创建AG Listener的时候发生错误。


Troubleshoot a Failed Add-File Operation (AlwaysOn Availability Groups)


Configuration


添加文件导致secondary数据库挂起,状态变为NOT SYNCHORNIZING


Fix: Error 41009 when you try to create multiple availability groups


Configuration


创建多个AG时发生41009 错误


Cannot connect to availability group listener in a multi-subnet environment


Client Connectivity


创建了AG Listener之后,无法ping通和连接


Troubleshoot failed automatic failovers


Failover


自动故障转移不能成功完成


Troubleshoot: Availability Group Exceeded RTO


排查:AG超过RTO


Performance


自动故障转移或者计划内的手动转移之后,切换时间超过了RTO时间


Troubleshoot: Availability Group Exceeded RPO


排查:AG超过RPO


Performance


强制故障转移后,都是的数据超过了RPO。或者异步提交的replica能够承受的数据丢失超过了RPO。


Troubleshoot: Changes on the Primary Replica are not Reflected on the Secondary Replica


排查:Primary上的修改无法在Secondary体现


Performance


客户端程序可以成功的完成primary的修改,但是查询replia却没有反应。

2. 排查工具

以下工具可以用来排查,配置时或者运行时发生的问题


Tool


笔记


Description


Use the AlwaysOn Dashboard (SQL Server Management Studio)


在UI接口下,获取某个时间点的AG健康情况。


AlwaysOn Policies


被Alwayson Dashboard使用


SQL Server Error Log (AlwaysOn Availability Groups)


SQL Server错误日志(AG)


记录AG,副本,数据库,其他AG主键的状态变化,和AG的错误


CLUSTER.LOG (AlwaysOn Availability Groups)


CLUSTER.LOG(AG)


记录集群时间,包括AG资源的状态变化,SQL Server resource DDL的事件和错误。


AlwaysOn Health Diagnostics Log


AlwaysOn健康诊断日志


记录SQL Server健康诊断被报告到WSFC集群,由sp_server_diagnostics (Transact-SQL)产生


Dynamic Management Views and System Catalog Views (AlwaysOn Availability Groups)


DMV和系统目录视图


报告AG的信息,比如配置,健康状况,性能问题


AlwaysOn Extended Events


AG扩展事件


提供了详细AG信息用来诊断,分析起因


AlwaysOn Wait Types


AlwaysOn等待类型


提供了AG特定的等待信息,用来调整性能


AlwaysOn Performance Counters


监控AG的活动,反馈到系统监视器,用来调优,具体可以看 SQL Server, Availability Replica 和 SQL Server, Database Replica.


AlwaysOn Ring Buffers


AlwaysOn Ring Buffers


记录SQL Server系统内部争端的警告,用来debug和AG有关的问题。

3. 监控AG

理想的排查时间是在故障转移之前。这个可以通过监控性能值,在超过SLA之前发送告警。比如同步secnodary副本有性能问题,因为预计failover时间增加。AG是高可用和灾难恢复解决访问,最重要的性能指标是切换时间,会影响RTO,灾难导致的数据丢失会影响RPO。

以下表文章用来监控AG的健康状况:


Topic


笔记


Description


Monitor Performance for AlwaysOn Availability Groups


监控AG性能


描述AG数据同步,阀值控制,和一些有用的值用来监控AG,还有如何收集RTO,RPO的值。


Monitoring of Availability Groups (SQL Server)


提供一些AG监控工具


The AlwaysOn Health Model Part 1 -- Health Model Architecture


健康模型 Part 1——概述


提供一个Alwayson健康模型的概述


The AlwaysOn Health Model Part 2 -- Extending the Health Model


健康模型 Part 2 ——扩展


如何用户定制Alwayson监控模型和用户定义Alwayson Dashboard,来显示额外的信息。


Monitoring AlwaysOn Health with PowerShell - Part 1: Basic Cmdlet Overview


使用Powershell监控AlwayOn健康


提供一些基本的Alwayson Powershell命令。用来监控AG的健康状况。


Monitoring AlwaysOn Health with PowerShell - Part 2: Advanced Cmdlet Usage


使用Powershell监控AlwayOn健康


提供一些高级的Alwayson Powershell命令。用来监控AG的健康状况。


Monitoring AlwaysOn Health with PowerShell - Part 3 : A Simple Monitoring Application


使用Powershell监控AlwayOn健康


显示如何使用城区监控AG。


Monitoring AlwaysOn Health with PowerShell - Part 4 : Integration with SQL Server Agent


使用Powershell监控AlwayOn健康


如何使用SQL Server Agent集成监控AG,并且在出问题的时候通知。

时间: 2024-10-14 23:16:27

[AlwaysOn Availability Groups]AG排查和监控指南的相关文章

[AlwaysOn Availability Groups]AG扩展事件

AG扩展事件 SQL Server 2012定义了一些关于AlwaysOn的扩展事件.你可以监控这些扩展事件来帮助诊断AG的根本问题.你也可以使用以下语句查看扩展事件: SELECT * FROM sys.dm_xe_objects WHERE name LIKE '%hadr%' 1.AlwaysOn健康(AlwaysOn_health)会话 AlwaysOn_health扩展会话当你在创建AG并捕获AlwaysOn相关事件的子集.这个会话被配置为有用的,方便的工具来帮助你开启调试AG.创建A

[AlwaysOn Availability Groups]排查AG配置

排查AG配置 本文主要用来帮助排查在AG配置时出现的问题,包括,AG功能被禁用,账号配置不正确,数据库镜像endpoint不存在,endpoint不能访问. Section Description AlwaysOn Availability Groups Is Not Enabled 如果实例没有启动AG特性,实例就不支持任何AG相关的功能 Accounts 在SQL Server在运行的情况下,正确的账号配置 Endpoints 诊断关于实例的镜像endpoint问题. System name

[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 Availabi

[AlwaysOn Availability Groups]AlwaysOn等待类型

AlwaysOn等待类型 当排查AlwaysOn延迟,等待统计信息可以在DMV中查看累计的AlwaysOn等待类型. 查看AlwaysOn等待类型 SELECT * FROM sys.dm_os_wait_stats WHERE wait_type LIKE '%hadr%' ORDER BY wait_time_ms DESC 使用一下语句,获取捕获扩展事件,等待类型. CREATE EVENT SESSION [alwayson] ON SERVER ADD EVENT sqlos.wait

[AlwaysOn Availability Groups]排查:AG超过RPO

排查:AG超过RPO 在异步提交的secondary上执行了切换,你可能会发现数据的丢失大于RPO,或者在计算可以忍受的数据都是超过了RPO. 1.通常原因 1.网络延迟太高,网络吞吐量太低,导致Primary的日志堆积 2.磁盘IO瓶颈导致LOG固化速度降低 2. 网络延迟太高,网络吞吐量太低,导致Primary的日志堆积 很多超过RPO的原因是日志发送到secondary副本不够快. 原因: Primary副本在日志发送启动了流量控制,因为日志发送超过了最大运行的非通知信息的量.直到这些信息

[AlwaysOn Availability Groups]排查:AG超过RTO

排查:AG超过RTO 自动故障转移或者手动转移之后,没有数据都是,你可能会发现切换时间超过了你的RTO.或者当你评估切换时间同步提交secondary副本,发现超过了你的RTO. 1. 通常原因 通常引起故障转移超过RTO的原因: 1.报表负荷堵塞了Redo线程. 2.因为资源争用,Redo线程被落下. 2. 报表负荷堵塞了Redo线程 Redo线程在secondary副本被一个只读长运行语句堵塞. 原因: 在secondary副本,只读查询获得Sch-s锁,这些sch-s锁会堵塞redo线程获

[AlwaysOn Availability Groups]使用Powershell监控AlwayOn健康

使用Powershell监控AlwayOn健康 1.基本命令概述 AlwayOn Dashboard是很有用的查看整体AG健康状况的工具.但是这个工具不是用于7*24监控的.如果应用程序夜间发送严重的问题,Dashboard并不会有任何提示.那么可以使用Powershell命令来获取并通过SQL Agent调用创建告警. 1.1 Dashboard 首先创建一个AG.这个AG被配置为自动故障转移.查看这个AG的dashboard 通过查看AG的状态发现,AG状态不对.而且问题是来自于WSNAVE

[AlwaysOn Availability Groups]SQL Server错误日志(AG)

SQL Server错误日志(AG) SQL Server错误日志会记录影响AG的时间,比如: 1.和Windows故障转移集群交互 2.可用副本的状态 3.可用数据的状态 4.AG endpoint的状态 5.AG Listener的状态 6.SQL Server resource DLL和SQL Server实例的租用状态 7.AG的错误事件 出现以下状态就需要检查错误日志: 1.无法连接到可用性数据库 2.非预料的AG故障转移 3.AG的Resolving状态不可预期 4.AG在不其确定的

[AlwaysOn Availability Groups]AlwaysOn健康诊断日志

AlwaysOn健康诊断日志 为了监控primary可用副本的健康状况,SQL Server资源DLL使用SQL Server2012的过程sp_server_diagnostics. SQL Server resource DLL维护了一个专用的连接到SQL Server实例,通过这个SQL Server实例定期的发送健康诊断信息到SQL Server resource DLL.健康诊断信息与集群中的AG中的failover policy耦合,被用来确定集群是否重启或者故障转移.这个过程是新S