DTS-077100 向目标库同步数据时出错

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: DTS向目标库表同步DML/DDL数据操作时出错,一般是目标库的某些原因导致的.
    DTS向目标库表同步DML/DDL数据操作时出错,一般是目标库的某些原因导致的.
    首先,DTS不支持目标表上建有触发器的场景,在该种情况下,任何错误都有可能发生(包括数据不一致等数据质量问题).

一.错误列表


com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry '3205385' for key 'PRIMARY'.
    主键或唯一键冲突的错误.
    原因:该错误一般是由目标表'xxx'.'xxx'上的触发器引起的(DTS的操作对'xxx'.'xxx'表不会引起主键或唯一键冲突,而是这张表上的触发器内部sql引起的).参考 DTS迁移触发器的说明.
    解决方案: 删除目标表'xxx'.'xxx'上的触发器,点击 重新启动即可恢复.

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column '***' in 'field list'.
    列不存在的错误.
    原因:该错误一般是由于用户在目标表'xxx'.'xxx'上删除了'***'列导致的(如果用户真的不需要该列的话,可以在源表中删除该列,DTS会自动同步该删除列的DDL到目标表;如果用户想在源表上保留该列的话,就应该在创建任务时选择过滤该列).
    解决方案: 用户手动在目标表'xxx'.'xxx'上建上该列'***',点击 重新启动即可恢复.

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'xxx.xxx' doesn't exist.
    表不存在的错误.
    原因:该错误一般是用户在目标表'xxx'.'xxx'上删除了该表导致的(如果用户真的不需要该列的话,可以在源表中删除该列,DTS会自动同步该删除列的DDL到目标表;如果用户想在源表上保留该列的话,就应该在创建任务时选择过滤该列).
    解决方案: 用户手动在目标库上建上该不存在的表'xxx'.'xxx',点击 重新启动即可恢复.

com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Column '***' cannot be null.
    列不允许为null的错误.
    原因:该错误一般是由用户在目标表'xxx'.'xxx'上修改该列不允许为null导致的.
    解决方案: 用户手动在目标库表上将该列修改为允许为null,点击 重新启动即可恢复.

com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Cannot add or update a child row: a foreign key constraint fails (...).
    违反外键约束错误.
    原因:该错误一般是由用户目标库不支持session级别禁止外键检查导致的(用户自研的MySQL分支版本).
    解决方案: 用户手动在目标库表上删除响应的外键约束,点击 重新启动即可恢复.

java.sql.SQLException: The MySQL server is running with the --read-only option so it cannot execute this statement.
    目标库只允许读操作了(--read-only).
    原因:目标库被设置只读了,可能是用户操作或者是RDS实例过期(磁盘满/内部主备切换)等原因.
    解决方案: 用户可设置目标库可写或者续费RDS实例(升级RDS实例磁盘空间)之后,点击 重新启动即可恢复.

java.sql.SQLException: Lock wait timeout exceeded; try restarting transaction.
    在目标库执行写操作时获取锁超时(Lock wait timeout exceeded).
    原因:目标库可能存在与该表相关的长查询或者DDL.
    解决方案:等待目标库的相关长查询或者DDL执行完之后,点击 重新启动即可恢复.

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: INSERT(DELETE/UPDATE) command denied to user 'xxx'@'***' for table '*'.
    在目标库执行写操作时无权限错误(INSERT(DELETE/UPDATE) command denied to user).
    原因:目标RDS磁盘满或者过期锁定.
    解决方案:升级RDS磁盘空间或者续费之后,点击 重新启动即可恢复.

com.mysql.jdbc.PacketTooBigException: Packet for query is too large (12014078 > 4194304). You can change this value on the server by setting the max_allowed_packet' variable.
    在目标库执行写操作的sql超过max_allowed_packet限制(Packet for query is too large...).
    原因:目标库的max_allowed_packet设置太小.
    解决方案:在目标实例上用高权限调整max_allowed_packet的大小(SET global max_allowed_packet=***),点击 重新启动即可恢复.

redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool.
    在目标库执行写操作时获取连接失败.
    原因:无法连接目标Redis库.
    解决方案:确认目标Redis库可访问之后,点击 重新启动即可恢复.



相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
4月前
|
SQL 数据管理 关系型数据库
数据管理DMS使用问题之DTs同实例同库前的表数据同步,该如何操作
阿里云数据管理DMS提供了全面的数据管理、数据库运维、数据安全、数据迁移与同步等功能,助力企业高效、安全地进行数据库管理和运维工作。以下是DMS产品使用合集的详细介绍。
|
5月前
|
数据库 关系型数据库 MySQL
DTS库支持多种数据源类型
【6月更文挑战第2天】DTS库支持多种数据源类型
73 3
|
5月前
|
关系型数据库 MySQL 分布式数据库
PolarDB操作报错合集之当使用DTS(数据传输服务)同步的表在目标库中进行LEFT JOIN查询时遇到异常,是什么导致的
在使用阿里云的PolarDB(包括PolarDB-X)时,用户可能会遇到各种操作报错。下面汇总了一些常见的报错情况及其可能的原因和解决办法:1.安装PolarDB-X报错、2.PolarDB安装后无法连接、3.PolarDB-X 使用rpm安装启动卡顿、4.PolarDB执行UPDATE/INSERT报错、5.DDL操作提示“Lock conflict”、6.数据集成时联通PolarDB报错、7.编译DN报错(RockyLinux)、8.CheckStorage报错(源数据库实例被删除)、9.嵌套事务错误(TDDL-4604)。
|
6月前
|
容灾 NoSQL 关系型数据库
数据传输DTS同步问题之二分库到四分库如何解决
数据传输服务(DTS)是一项专注于数据迁移和同步的云服务,在使用过程中可能遇到多种问题,本合集精选常见的DTS数据传输问题及其答疑解惑,以助用户顺利实现数据流转。
|
6月前
|
NoSQL 数据库连接 数据处理
数据传输DTS迁移问题之全量加增量发到目标库如何解决
数据传输服务(DTS)是一项专注于数据迁移和同步的云服务,在使用过程中可能遇到多种问题,本合集精选常见的DTS数据传输问题及其答疑解惑,以助用户顺利实现数据流转。
|
6月前
|
关系型数据库 MySQL 数据库
dts在数据迁移过程中,如果出现“默认值超出目标数据库支持范围”的错误
dts在数据迁移过程中,如果出现“默认值超出目标数据库支持范围”的错误
73 1
|
弹性计算 关系型数据库 网络安全
CEN+私网NAT实现DTS(需求目标端没有100.64网段路由)-cen企业版
本文为您介绍如何通过企业版云企业网+私网NAT配置跨地域DTS访问需求,实现云服务内网访问其他地域数据库资源。该办法避免跨地域配置云服务网段打通,可以有效避免出现管控异常等问题。
|
数据库 SQL
DTS-071001 从目标库中获取表结构失败
DTS-071001: the Table xxx.xxx Information Loaded failed in Target DB, cause by [com.mysql.jdbc.exceptions.
5285 0
|
数据库 SQL
DTS-071007 表结构在源库和目标库中不一致
     原因: 表在目标库中不存在或列在目标表中不存在      解决方案: 在目标库中创建该表或者在目标表中添加该列
4376 0
|
6月前
|
关系型数据库 MySQL 数据挖掘
阿里云 SelectDB 携手 DTS ,一键实现 TP 数据实时入仓
DTS 作为阿里云核心的数据交互引擎,以其高效的实时数据流处理能力和广泛的数据源兼容性,为用户构建了一个安全可靠、可扩展、高可用的数据架构桥梁。阿里云数据库 SelectDB 通过与 DTS 联合,为用户提供了简单、实时、极速且低成本的事务数据分析方案。用户可以通过 DTS 数据传输服务,一键将自建 MySQL / RDS MySQL / PolarDB for MySQL 数据库,迁移或同步至阿里云数据库 SelectDB 的实例中,帮助企业在短时间内完成数据迁移或同步,并即时获得深度洞察。
阿里云 SelectDB 携手 DTS ,一键实现 TP 数据实时入仓