你的位置:首页 > 数据库

[数据库][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。创建AG窗口在每个特定可用性副本配置窗口中自动启动会话。

如果你没有使用新建AG对话框,AlwaysOn_health会话可能不会自动启动,如果会话没有启动,不能再问题发生的时候捕获每个数据。你应该手动启动会话并且配置会话来自动会话。

通过查看AlwaysOn_health会话的定义:
1.SSMS,展开扩展事件,会话
2.右击AlwaysOn_health,然后创建脚本

更多关于ALwaysOn_health的信息查看:AlwaysOnExtended Events Reference.

2.调试扩展事务

如果要有额外的事件覆盖AlwaysOn_health会话,SQL Server定义了一大集合的调试事件。需要作一下步骤:
1.在SSMS,展开扩展事件,会话
2.右击创建时间,或者右击AlwaysOn_health,选择属性
3.选择事件页面
4.在library,目录列,选择alwayson并且清除所有目录
5.在Channel列,选择调试,所有相关事件,没有被选择的都会显示在event library
6.event library选中一个,然后点击”>”按钮
7.当完成会话,点击OK关闭。保证会话已经启动了。

3.AlwaysOn扩展事件引用

AlwaysOn扩展事件被用来跟踪AG

3.1 availability_replica_state_change

当AG的状态发生变化。AG的创建或者加入一个可用副本。可以用来诊断错误自动故障转移。可以用来跟踪转移步骤。

3.2 availability_gruop_lease_expired

当集群和可用组出现连接问题和租用过期。这个事件说明AG和WSFC集群连接断开。如果连接问题发生在primary副本。事件可能会自动转移或者导致AG offline。

3.3 availability_replica_automatic_failover_validation

当自动故障转移验证AG作为primary副本的必要性,显示是否目标可用副本已经做好了成为新primary副本的准备。比如,当并不是所有数据库都是被同步的,或者不是已被加入的,故障转移验证返回错误。这个事件被设计用来提供在故障转移的时候提供错误点。可以根据这个信息检查为什么自动故障转移发生。

3.4 error_reported:对于传输或链接问题

每个过滤事件说明一个连接问题发生,数据库镜像endpoint发生错误

3.5 data_movement_suspend_resume

当数据库副本movement挂起或者恢复的时候触发事件。

3.6 alwayson_ddl_executed

当发生AlwasOn DDL语句,包括Create,Alter,Drop语句。事件的主要目的说明AG中用户的行为,或者说明用户操作行为的开始点。事件可以跟踪手动故障转移,强制故障转移,中断和恢复数据移动。

3.7 alwayson_replica_manager_stat

当可用性副本管理状态修改触发。这个事件说明可用性副本管理的心跳。当可用性副本管理没有心跳状态,SQL Server实例中的所有可用性副本都会下线。

3.8 error_reported,数据库副本角色修改

这个过滤的,AG角色变化的时候,error_reported事件被异步触发。这个说明哪个可用性数据库在修改故障转移时修改角色失败。