适用版本
OceanBase 数据库 V2.x 和 V3.x 版本。
问题现象
大事务引起 clog 回放占用空间较多,超过 clog 参数限制,导致 clog 盘满,日志报 ERROR 提示 clog 盘空间不足。
问题原因
大事务日志占用空间较多、且 clog 盘存储较小引起。
解决方法
结束大事务进程:
kill session或重启 observer 进程(clog 盘满后,重启时会有部分节点处于 clog 不同步状态,需要先转储,再对目标节点进行重启)。在杀进程或重启 observer 进程后,部分分布式事务由于进入提交回放阶段,即便 Session 不存在后,仍会进行 clog 回放,直到 Partition 上 clog 同步后结束事务,这种情况,需通过查询悬挂事务确认是否还存在悬挂事务,然后到爆盘节点上,尝试给爆盘节点增加 clog 存储,以便让 clog 完成回放,如没有更多空间,则需要考虑
mvclog 文件,建议联系技术支持人员协助处理。查询悬挂事务语句如下:
obclient> SELECT count(1) FROM __all_virtual_trans_stat WHERE part_trans_action > 2 AND ctx_create_time < date_sub(now(), INTERVAL 3600 SECOND) AND is_exiting != 1;