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
目录
相关文章
|
17天前
|
存储 数据采集 监控
阿里云DTS踩坑经验分享系列|SLS同步至ClickHouse集群
作为强大的日志服务引擎,SLS 积累了用户海量的数据。为了实现数据的自由流通,DTS 开发了以 SLS 为源的数据同步插件。目前,该插件已经支持将数据从 SLS 同步到 ClickHouse。通过这条高效的同步链路,客户不仅能够利用 SLS 卓越的数据采集和处理能力,还能够充分发挥 ClickHouse 在数据分析和查询性能方面的优势,帮助企业显著提高数据查询速度,同时有效降低存储成本,从而在数据驱动决策和资源优化配置上取得更大成效。
112 9
|
23天前
|
弹性计算 安全 容灾
阿里云DTS踩坑经验分享系列|使用VPC数据通道解决网络冲突问题
阿里云DTS作为数据世界高速传输通道的建造者,每周为您分享一个避坑技巧,助力数据之旅更加快捷、便利、安全。本文介绍如何使用VPC数据通道解决网络冲突问题。
77 0
|
3月前
|
NoSQL 安全 容灾
阿里云DTS踩坑经验分享系列|Redis迁移、同步
阿里云数据传输服务DTS在帮助用户迁移Redis数据、同步数据时,在某些复杂场景下会出现报错,或者源库与目标库数据不一致的问题,给用户带来困扰。本文介绍了DTS Redis到Redis迁移、同步过程中的典型问题,以帮助用户更好地使用DTS。
249 2
|
4月前
|
NoSQL MongoDB 数据库
DTS 的惊天挑战:迁移海量 MongoDB 数据时,捍卫数据准确完整的生死之战!
【8月更文挑战第7天】在数字化时代,大数据量的MongoDB迁移至关重要。DTS(数据传输服务)通过全面的数据评估、可靠的传输机制(如事务保证一致性)、异常处理(如回滚或重试),以及迁移后的数据校验来确保数据准确无损。DTS还处理数据转换与映射,即使面对不同数据库结构也能保持数据完整性,为企业提供可靠的数据迁移解决方案。
70 2
|
6月前
|
关系型数据库 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)。
|
7月前
|
关系型数据库 MySQL 数据挖掘
阿里云 SelectDB 携手 DTS ,一键实现 TP 数据实时入仓
DTS 作为阿里云核心的数据交互引擎,以其高效的实时数据流处理能力和广泛的数据源兼容性,为用户构建了一个安全可靠、可扩展、高可用的数据架构桥梁。阿里云数据库 SelectDB 通过与 DTS 联合,为用户提供了简单、实时、极速且低成本的事务数据分析方案。用户可以通过 DTS 数据传输服务,一键将自建 MySQL / RDS MySQL / PolarDB for MySQL 数据库,迁移或同步至阿里云数据库 SelectDB 的实例中,帮助企业在短时间内完成数据迁移或同步,并即时获得深度洞察。
阿里云 SelectDB 携手 DTS ,一键实现 TP 数据实时入仓
|
7月前
|
SQL 分布式计算 监控
在数据传输服务(DTS)中,要查看每个小时源端产生了多少条数据
【2月更文挑战第32天】在数据传输服务(DTS)中,要查看每个小时源端产生了多少条数据
73 6
|
7月前
DTS数据传输延迟可能有多种原因
【1月更文挑战第16天】【1月更文挑战第79篇】DTS数据传输延迟可能有多种原因
300 2
|
6月前
|
SQL 分布式计算 DataWorks
MaxCompute产品使用问题之dts是否支持传输数据到mc主键表2.0
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
6月前
|
存储 数据采集 NoSQL
DTS在迁移大数据量的MongoDB数据库时如何保证数据的准确性和完整性?
【6月更文挑战第4天】DTS在迁移大数据量的MongoDB数据库时如何保证数据的准确性和完整性?
150 1