DMS同步报错了,一直在重试怎么解决?-[阿里云_云淘科技]

同步报错了,一直在重试【UID】:1974894787907993
【实例ID】:dtsjfh124u014mo3pi
【Job ID】:w3q12nh814ah1ia
【任务名称】:g3s-正式-rds-迁移-2023
【所有报错信息】:
CODE:DTS-RETRY-ERR-0042
错误概述:连接数据库遇到问题。
解决方案:请检查数据库是否可以正常连接。
帮助文档:https://help.aliyun.com/document_detail/462133.html#DTS-RETRY-ERR-0042
详细报错信息:将数据写入目标库异常,正在重试,重试了435次,重试了4348s,异常重试原因:
database-framework: DTS-61001: disperse error for column:id BIGINT not nullable unique as id of table:g_a128_db.send_bi, value=49101813, valueType=IntegerNumeric, disperser=com.alibaba.amp.any.mysql.disperse.impl.IntegerValue2MySQLNumericDisperser@4c2d7007, source schema=g_a128_db.send_bi{isWidthTable:false,tableEngine:InnoDB}
cause:
SQLException: No operations allowed after statement closed.
【URL】:https://dtsnew.console.aliyun.com/sync/cn-zhangjiakou
【当前时间】:2023-12-14 17:14:17
【Region】:cn-zhangjiakou

以下为热心网友提供的参考意见

问题出在连接数据库时,具体原因是SQLException: No operations allowed after statement closed。这个错误表示在关闭语句后,不允许进行其他操作。这可能是因为在执行插入操作时,发生了异常,导致插入操作被关闭,但重试机制仍在尝试执行插入操作。
要解决这个问题,你可以尝试以下方法:

  1. 检查目标数据库是否可以正常连接。你可以通过其他方式(如使用MySQL客户端)尝试连接到目标数据库,确认是否可以正常连接。
  2. 检查源数据和目标表结构是否一致。这个问题可能是由于源数据和目标表结构不匹配导致的。请检查源数据和目标表的字段类型、约束等是否一致。
  3. 检查插入操作的逻辑。这个问题可能是由于插入操作的逻辑有问题导致的。例如,可能存在循环插入操作,导致在某个时刻插入操作被关闭。请检查插入操作的逻辑,确保插入操作在正确的位置执行。
  4. 调整重试策略。如果以上方法都无法解决问题,你可以尝试调整重试策略,例如增加重试次数或者重试间隔。但是这可能会增加同步时间。
  Connection conn = null;
        PreparedStatement stmt = null;
        ResultSet rs = null;
        try {
            conn = ConnectionUtil.getInstance().getConnection();

            ...
        } finally {
            if (rs != null) {
                rs.close();
            }
            if (stmt != null) {
                stmt.close();
            }
            if (conn != null) {
                ConnectionUtil.getInstance().close(conn);
            }
        }

以下为热心网友提供的参考意见

您好,原因为目标库性能原因导致批量写入数据量过大时目标库连接断开,目前适当降低了全量速率,已正常写入,但写入较慢,建议您检查下目标库性能和负载情况,看下是否有异常的指标 —该回答整理自钉群“阿里云DMS数据管理用户交流群”

以下为热心网友提供的参考意见

从提供的报错信息来看,存在以下问题:

  1. 连接数据库遇到问题:这可能是因为数据库服务器不可达、网络问题、数据库服务未运行或者访问权限问题等。你需要检查源数据库和目标数据库的网络连接、服务状态和访问权限设置。

  2. 数据写入目标库异常:具体错误为在插入数据到目标表g_a128_db.send_biid列时出现问题。id列被定义为BIGINT类型,且不允许为空和重复。但在插入值49101813时出现了分散错误(disperse error)。

  3. SQL异常:报错信息中提到”No operations allowed after statement closed.”,这意味着在尝试执行SQL操作时,该语句已经被关闭,可能是由于之前的操作导致了语句关闭,或者在处理过程中存在资源释放不当的问题。

解决这个问题的步骤可能包括:

  1. 检查源数据库和目标数据库的网络连接、服务状态和访问权限设置,确保DTS服务能够正常连接和访问这两个数据库。

  2. 对于数据写入异常,需要检查源数据中的id值是否合法,是否存在重复或者不符合目标表定义的情况。如果源数据有问题,需要修复源数据;如果目标表定义过于严格,可能需要适当调整目标表的约束条件。

  3. 对于SQL异常,需要查看相关的代码或者日志,找出导致语句关闭的原因。可能需要优化代码以确保资源正确管理和释放。

本文来自投稿,不代表新手站长_郑州云淘科技有限公司立场,如若转载,请注明出处:https://www.cnzhanzhang.com/11360.html

(0)
匿名
上一篇 2023年12月18日 下午7:10
下一篇 2023年12月19日 上午12:04

相关推荐

新手站长从“心”出发,感谢16年您始终不离不弃。