ALM-5101811 Ops巡检-数据库最长事务执行时长超长
告警解释
此告警对应指标“数据库最长事务执行时间”超出配置阈值,此指标反映数据库中执行时间最长的事务执行时长。
告警属性
|
告警ID |
告警级别 |
告警类型 |
告警归属 |
业务类型 |
是否可自动清除 |
|---|---|---|---|---|---|
|
5101811 |
巡检配置 |
业务质量告警 |
租户面 |
云数据库 GaussDB 节点 |
是 |
告警参数
|
类别 |
参数名称 |
参数含义 |
|---|---|---|
|
定位信息 |
云服务 |
产生告警的云服务 |
|
实例ID |
产生告警的实例ID |
|
|
节点ID |
产生告警的节点ID |
|
|
巡检名称 |
产生告警的巡检名称 |
|
|
指标编码 |
产生告警的指标编码 |
|
|
附加信息 |
租户名称 |
产生告警的租户名称 |
|
实例名称 |
产生告警的实例名称 |
|
|
租户ID |
产生告警的租户ID |
|
|
云服务 |
产生告警的云服务 |
|
|
服务 |
产生告警的服务 |
|
|
微服务 |
产生告警的微服务 |
|
|
告警源IP |
告警源IP |
|
|
节点角色 |
产生告警节点的节点角色 |
|
|
指标编码 |
产生告警节点的指标编码 |
|
|
指标采集值 |
产生告警节点的指标采集值 |
|
|
指标阈值 |
产生告警节点的指标阈值 |
对系统的影响
- 长事务长时间持锁,阻塞业务语句或运维操作的语句执行。
- 事务不提交,影响存储层面的执行。
事务不提交部分场景如下:- 锁不释放,导致其他事务等待,线程池满,影响并发,性能劣化。
- 创建逻辑复制槽失败。
- 逻辑复制槽不推进或推进缓慢。
- 影响vacuum,导致表空间膨胀。
- 导致节点替换、节点修复、扩容等运维操作失败。
可能原因
- 业务正常逻辑,需要执行运行时间长的大事务。
- 存在慢SQL。
处理步骤
- 收到告警后,通过查看监控指标查看指标“数据库最长事务执行时间”,确认指标情况以及触发告警的组件。
- 通过如下方式处理:
- 方式一:通过查杀会话终止长事务。
- 方式二:登录实例数据库,执行如下命令,确认执行时间最长的事务,执行3。
SELECT usename, pid, sessionid, query, state, now() - xact_start as elp from pg_stat_activity where pid !=0 and elp IS NOT NULL and usename not in ('rdsAdmin', 'rdsMetric', 'rdsBackup', 'rdsRepl') and state != 'idle' order by elp desc limit 50;![]()
- pid:线程ID。
- sessionid:会话ID。
- elp:事务的执行时长。
- 如果已有其他告警或业务已经受到影响,且根据其他告警的分析手段已经确定是长事务导致,可以根据2中方式二查询的内容,确认是否能够终止长事务。
- 执行如下命令终止,其中pid和sessionid通过2获取。
SELECT pg_terminate_session($pid, $sessionid);
- 如果没有影响业务,可以执行4开始做分析。
- 执行如下命令终止,其中pid和sessionid通过2获取。
- 根据SQL查询出的数据,通过query值进行分析。
- 如果值对应的内容是业务上符合预期的长事务,对长事务SQL做优化。
- 如果值对应的内容不是业务上符合预期的长事务,首先执行如下命令,留存当前执行的堆栈信息,便于后续分析:
SELECT gs_stack($pid);参考《云数据库 GaussDB 24.1.30 维护指南(for 华为云Stack 8.3.1)》中的章节分析事务执行时间长的原因。
告警清除
此告警修复后,系统会自动清除此告警,无需手工清除。
参考信息
不涉及。

浙公网安备 33010602011771号