使用oceanbase执行删除或者update操作时,要点提交,否则执行完的sql操作并没有作为一个事务提交。如后续再有对该数据进行删除操作,会执行不成功。

原因是A事务未提交,B事务对同一数据执行操作,会因为A事务未提交而阻塞。

解决方法:

先找出所有事务:

-- 查看当前活动会话和事务
SELECT * FROM GV$OB_PROCESSLIST WHERE COMMAND != 'Sleep';
SELECT * FROM GV$OB_TRANSACTION_PARTICIPANTS;

 

查询OB_TRANSACTION_PARTICIPANTS表中会有个字段是session_id

执行kill session_id;即可杀死未提交的事务

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐