报错[TDDL-5003][ERR_TRANS_LOG] Failed to append batch of undo-logs table for group ORDERDB_15573897822

在使用阿里云DRDS进行分库分表操作时遇到TransactionSystemException,原因是Info字段数据过长导致的Data truncation错误。该问题可能由大SQL或长事务触发,解决方案是修改系统表结构或联系阿里云服务台提交工单寻求帮助。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用阿里云drds分库分表某一个节点完整报错

org.springframework.transaction.TransactionSystemException: Could not commit Hibernate transaction; nested exception is org.hibernate.TransactionException: commit failed
        at org.springframework.orm.hibernate4.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:588)
        at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:761)
        at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:730)
        at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:485)
        at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:291)
        at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
        at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
        at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:655)
        at com.ecare.order.services.work.mess.MessageMQWorkService$$EnhancerBySpringCGLIB$$f6b6fa10.deleteById(<generated>)
        at com.ecare.order.job.OrderSendMQJobService.execute(OrderSendMQJobService.java:45)
        at com.ecare.platform.quartz.core.thread.JobThread.run(JobThread.java:125)
Caused by: org.hibernate.TransactionException: commit failed
        at org.hibernate.engine.transaction.spi.AbstractTransactionImpl.commit(AbstractTransactionImpl.java:187)
        at org.springframework.orm.hibernate4.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:584)
        ... 12 more
Caused by: org.hibernate.TransactionException: unable to commit against JDBC connection
        at org.hibernate.engine.transaction.internal.jdbc.JdbcTransaction.doCommit(JdbcTransaction.java:116)
        at org.hibernate.engine.transaction.spi.AbstractTransactionImpl.commit(AbstractTransactionImpl.java:180)
        ... 13 more
Caused by: com.mysql.jdbc.MysqlDataTruncation: Data truncation: [1640981511adf000-12][172.*.*.*:3306][order]ERR-CODE: [TDDL-5003][ERR_TRANS_LOG] Failed to append batch of undo-logs table for group ORDERDB_1557389782208GBCY_ZST8_0006: Data truncation: Data too long for column 'INFO' at row 1 
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4230)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4164)
        at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2615)
        at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2776)
        at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2832)
        at com.mysql.jdbc.ConnectionImpl.commit(ConnectionImpl.java:1749)
        at com.alibaba.druid.filter.FilterChainImpl.connection_commit(FilterChainImpl.java:186)
        at com.alibaba.druid.filter.stat.StatFilter.connection_commit(StatFilter.java:266)
        at com.alibaba.druid.filter.FilterChainImpl.connection_commit(FilterChainImpl.java:182)
        at com.alibaba.druid.filter.FilterAdapter.connection_commit(FilterAdapter.java:781)
        at com.alibaba.druid.filter.FilterChainImpl.connection_commit(FilterChainImpl.java:182)
        at com.alibaba.druid.proxy.jdbc.ConnectionProxyImpl.commit(ConnectionProxyImpl.java:123)
        at com.alibaba.druid.pool.DruidPooledConnection.commit(DruidPooledConnection.java:750)
        at org.hibernate.engine.transaction.internal.jdbc.JdbcTransaction.doCommit(JdbcTransaction.java:112)
        ... 14 more

出现的原因:

drds某些旧版本,事务日志表的Info字段可能会写入超长的数据,导致报错,修改系统表结构可以解决 触发场景可能是一些大SQL,或者长事务。
研发 排查了 一遍 其它实例 不会出现此问题

解决方案:需要联系阿里云服务台,提交工单协助解决

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值