【 使用环境 】生产环境
【 OB or 其他组件 】OceanBase 4.3.4
【 使用版本 】社区版
【问题描述】datax同步数据至OB,在四点半左右出现Transaction is killed 现象,报以下错误
该时间点OCP监控上没有显示异常,租户资源使用率也没有达到瓶颈。查看oceanbase.DBA_OB_SERVER_EVENT_HISTORY 在4点31出现 process hang 的现象,目前怀疑是这个现象 导致 DATAX同步数据失败。
【复现路径】问题出现前后相关操作
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):
【SOP系列 22 】——故障诊断第一步(自助诊断和诊断信息收集)
【备注】基于 LLM 和开源文档 RAG 的论坛小助手已开放测试,在发帖时输入 [@论坛小助手] 即可召唤小助手,欢迎试用!
论坛小助手
#3
用户问题: 在使用 DataX 同步数据到 OceanBase 4.3.4 社区版时遇到 ‘Transaction is killed’ 错误,该问题发生在 4 点半左右,OCP 监控未显示异常,租户资源使用率也未达到瓶颈。从 DBA_OB_SERVER_EVENT_HISTORY 表中发现 4 点 31 分出现了 process hang 的记录,怀疑该现象导致 DataX 同步数据失败,如何解决?
推荐使用 obdiag 工具进行根因分析和日志采集,以便确认问题的具体原因。
根因分析场景: 事务被杀死
根因分析命令: obdiag rca run --scene=transaction_rollback
日志采集场景: 悬挂事务
日志采集命令: obdiag gather scene run --scene=observer.suspend_transaction
为了更好地帮助您定位和解决问题,请您提供以下信息:
- 当前租户的配置情况,例如内存大小、CPU 核数等。
- 发生 ‘Transaction is killed’ 错误的具体 SQL 语句。
- 在 DataX 配置中,关于 OceanBase 数据库连接的部分配置详情。
- 4 点半前后是否有进行过维护操作或变更操作,如添加数据、修改索引等。
- OCP 监控中的详细信息,特别是与租户资源使用率相关的图表。
- 是否还有其他异常日志信息可以提供,例如从 OBServer 的日志文件中发现的异常信息。
附上敏捷诊断工具 obdiag 使用帮助链接
淇铭
#4
看着好像是异常切主了呀 你在查一下 这个信息
select * from DBA_OB_SERVER_EVENT_HISTORY where module like “%FAILURE_DETECTOR%” limit 10;
1 个赞
从筠
#5
使用 datax 同步的吗?从报错的截图上没有看到 datax 相关的包名
冉雨
#7
看起来是dolphinscheduler调用的sql任务,发现事务被kill了,这个错误主要是由于事务被数据库系统强制终止导致的,是不是数据库有事务超时的设置?或者是当前的dolphinscheduler执行的sql类型不被当前数据库的事务允许
1 个赞
是的,标题打错了,我看DBA_OB_SERVER_EVENT_HISTORY里有 clog disk / process is hang 的记录
淇铭
#9
看着是clog disk hang导致的 切主了 切主的影响
这种操作可能会对正在执行的长事务或未提交的事务产生以下影响:
-
长事务:
- 长事务可能会被中断,特别是在 Leader 切换期间,如果事务正在等待某些资源或锁,可能会导致超时。
- 事务的执行时间可能会延长,因为新的 Leader 需要重新获取资源和锁。
-
未提交的事务:
- 未提交的事务可能会回滚。如果在 Leader 切换期间,事务还没有提交,那么新的 Leader 可能会认为这些事务是未完成的,并进行回滚。
- 事务的可见性可能会受到影响,因为在 Leader 切换期间,某些数据可能暂时不可见。
datax同步数据到ob连接的是obproxy么?还是直连呀
是2883连接。dolphinscheduler同步数据至OB,标题刚才写错了
淇铭
#11
使用obdiag收集一下截图时间前后半个小时的日志信息

obdiag gather log --from “2022-06-30 16:25:00” --to “2022-06-30 18:30:00”
好,我收集一下。问题时间点出现了PROCESS HANG
这个是20号hang住的,这个时间点是NFS的问题
淇铭
#14
时间放大一点 03:00-05:00这个时间段的日志
淇铭
#15
这个是哪个节点上的问题 我刚才让你查看信息 好像没有查到呀
select * from DBA_OB_SERVER_EVENT_HISTORY where module like “%FAILURE_DETECTOR%” order by TIMESTAMP desc limit 10;
是有这个记录,但是是20号的,那天是因为NFS的问题导致。帖子这个问题时间点是23早上四点半,四点半出现了PROCESS HANG
淇铭
#17
在查一下信息
select * from DBA_OB_SERVER_EVENT_HISTORY where module like “%FAILURE_DETECTOR%” order by TIMESTAMP desc limit 10;
今天出现了PRCOESS HANG,会不会是这个影响了数据同步,我看时间点很近
淇铭
#20
上面的没有时间排序 查的是之前的数据 我把语句改了 你在查一下