全部产品
Search
文档中心

数据传输服务 DTS:常见报错

更新时间:Sep 09, 2024

本文介绍配置任务和任务运行时系统返回的报错信息(如重试信息或错误码)以及解决方法。

说明

本文以正则表达式((.*)?)的形式表示报错信息中的变量。

报错概览

数据传输服务DTS(Data Transmission Service)常见报错的类型有如下种:

配置任务时常见的报错

DTS.Msg.LXCreateOrderError

报错场景:购买DTS实例时创建订单不成功。

可能原因:未将UID添加至白名单,无法购买跨境同步实例。

解决方法:开通跨境同步权限后重新购买,详情请参见申请跨境数据同步权限

DTS.Msg.InvalidParameter.KafkaHostInvalid

报错场景:配置目标库实例的接入方式为专线/VPN网关/智能网关的Kafka同步或迁移任务。

可能原因:IP地址一栏输入为域名形式。

解决方法:IP地址一栏目前仅支持IP地址形式,请重新输入正确的内网IP地址。

DTS.Msg.InvalidParameter.KafkaBrokerInvalid

报错场景:配置目标库为ECS自建的Kafka任务。

可能原因:不支持Kafka节点配置为域名形式。

解决方法:请正确配置Kafka节点。配置形式如下:

listeners= 协议://内网IP:端口
advertised_listeners= 协议://内网IP:端口

DTS.Msg.OperationDenied.JobStatusModifying

报错场景:使用API调用ModifyDtsJob接口修改同步任务。

可能原因:当前任务所属实例处于修改同步对象阶段。

解决方法:等待同步对象修改完成,且该任务所属实例的状态为运行中后再重试。

DTS.Msg.InvalidParameter.AliyunUidFormat

报错场景:跨账号同步时,单击展示数据库实例。

可能原因:源数据库实例所属的阿里云用户ID填写不规范。

解决方法:填写规范的阿里云账号。

DTS.Msg.DuplicateAccount.RDSSqlServer

报错场景:配置源或目标库为SQL Server数据库的任务时。

可能原因:实例已配置过DTS任务或为克隆实例。

解决方法:请联系阿里云技术支持人员处理。

DTS.Msg.SrcLink.InternetAddressNotFound

报错场景:配置跨地域迁移任务。

可能原因:源数据库实例未开通公网地址。

解决方法:请为源数据库实例开通公网地址或使用同步任务。

DTS.Msg.UpdateJob.OperationDenied.InitStatus

报错场景:重复配置任务。

可能原因:重复配置已启动的同步任务。

解决方法:请重置任务或修改同步对象。

警告

重置任务会导致已配置的任务数据被清除,请谨慎操作。

DTS.Msg.Throttling.User

报错场景:使用任何功能都可能报此错误。

可能原因:当前接口请求次数已经达到阈值。

解决方法:请在15s~30s后重新发起请求。

DTS.Msg.LXCreateOrder.NotFoundPricePlan

报错场景:购买DTS实例时,创建订单不成功。

可能原因:调用API时填写的购买参数错误或暂不支持购买此类型实例。

解决方法:请检查填写的参数信息是否正确,然后重试。

DTS.Msg.LXPayOrder.InsufficientBalance

报错场景:购买DTS实例时,支付订单不成功。

可能原因:账户余额不足,无法完成支付。

解决方法:请充值后重试。

DTS.Msg.CheckStatus.InvalidInitStatus

报错场景:使用修改同步对象功能。

可能原因:同步任务尚未配置。

解决方法:请在修改任务前完成配置任务。

DTS.Msg.DRDSInvokeFail.DatabaseAuthorizationFailed

报错场景:配置PolarDB-X云原生分布式数据库(原DRDS)的同步任务时报错。报错信息类似于以下形式:

can not getTableTopology (drds****,ib_ibos****)
Could not connect to address=(host=100.100.XX.XX)(port=****)(type=master) : (conn=****) [10.0.1.1:3306]
Access denied for user 'ib_ibos****'@'100.104.XX.XX' to database 'ib_ibos****')

可能原因:输入的数据库账号缺少某个库的权限。

解决方法:手动添加或修改库权限。步骤如下:

  1. 登录PolarDB-X控制台

  2. 选择左侧导航栏中的实例列表,单击您所创建实例的实例名称

  3. 进入实例管理页面,选择配置与管理 > 账号管理

  4. 选择创建的数据库账号,单击操作列的修改权限,在弹框中添加或修改库权限。

  5. 单击确定1

DTS.Msg.DescribeColumns.TimeOut

报错场景:获取源数据库列信息失败,常见于目标库为云原生数据仓库 AnalyticDB MySQL 版的任务。

可能原因:源库列过多或源库读取速度过慢,导致获取源库Schema超时。

解决方法:

  • 使用API进行配置。

  • 检验源库的读取速度。

DTS.Msg.DescribeStruct.TimeOut

报错场景:测试链接通过后获取源库库表。

可能原因:源库过多、源库表过多或者源库读取速度过慢,导致获取源库Schema超时。

解决方法:

  • 配置源库对象时以库为粒度,不获取详细的表信息。

  • 使用API进行配置。

  • 检验源库的读取速度。

DTS.Msg.DRDSErrExecuteOnMySQL.ClientVersionTooLow

报错场景:配置源库为PolarDB-X云原生分布式数据库(原DRDS)的任务。

可能原因:PolarDB-X云原生分布式数据库客户端版本过低。

解决方法:升级PolarDB-X云原生分布式数据库客户端。

DTS.Msg.DbTypeNotSupport.OnlyReadRDS

报错场景:配置源库为PolarDB-X云原生分布式数据库(原DRDS)的任务。

可能原因:源数据库实例为实例类型只读实例的PolarDB-X实例,暂不支持该PolarDB-X实例。

解决方法:源数据库更换为实例类型主实例的PolarDB-X实例。

DTS.Msg.DbTypeNotSupport.PolarDBRDS

报错场景:配置源库为PolarDB-X云原生分布式数据库(原DRDS)的任务。

可能原因:源数据库实例为存储类型POLARDB的PolarDB-X实例,暂不支持该PolarDB-X实例。

解决方法:源数据库更换为存储类型RDS MySQL的PolarDB-X实例。

DTS.Msg.OperationDenied.NotPurchased

报错场景:调用API接口启动任务失败。

可能原因:启动尚未购买的任务。

解决方法:购买任务后再启动。

DTS.Msg.CheckJobFailed.ServerUnAvailable

报错场景:配置任务过程中。

可能原因:由于系统无法连接任务运行的服务器节点,导致无法检测服务器节点到源或目标库的网络是否通畅。

解决方法:请联系阿里云技术支持人员处理。

DTS.Msg.StopJobFailed.ServerUnAvailable

报错场景:配置任务过程中。

可能原因:逻辑上需要暂停任务时,系统无法连接任务运行的服务器节点。

解决方法:请联系阿里云技术支持人员处理。

DTS.Msg.SQLExecuteError.JDBC4CommunicationsException

报错场景:测试链接通过后获取源库库表。

可能原因:通讯链路故障,JDBC驱动程序数据包成功发送到源数据库服务器,但未收到来自源数据库的数据包。

解决方法:

DTS.Msg.SQLExecuteError.ConnectionRefused

报错场景:测试链接通过后获取源库库表。

可能原因:获取源数据库链接被拒绝。

解决方法:

  • 检查监听器(Listener Process)是正常运行,配置否正确。

  • 检查负载是否过高。

DTS.Msg.GetKafkaMetaInfo.NoAvailableBroker

报错场景:配置目标库Kafka实例的版本为1.0及以上。

可能原因1:数据库账号或密码错误。

解决方法1:请正确填写数据库账号和密码信息。若Kafka实例未开启验证,则无需填写数据库账号和密码。

可能原因2:无法从Kafka服务端获取MetaInfo。

解决方法2:

  • 检查服务端bootstrap.servers参数是否设置正确。

  • 检查目标库信息的Kafka版本是否选择正确。

  • 检查网络是否通畅。

DTS.Msg.GetMongoDbShardInfo.EmptyInstances

报错场景:配置源库或目标库为分片副本集的MongoDb数据库的任务。

可能原因:无法获取分片信息。

解决方法:检查配置参数,确认数据库确实为分片MongoDb。

DTS.Msg.GetMongoDbShardInfo.NoShardAddress

报错场景:配置源库或目标库为分片副本集的MongoDb数据库的任务。

可能原因:无法获取分片信息。

解决方法:检查配置参数,确认数据库确实为分片MongoDb,并且已参考申请Shard或ConfigServer节点连接地址开通Shard地址。

DTS.Msg.SuspendDenied.JobStatusModifying

报错场景:暂停任务或者批量暂停任务。

可能原因:为避免数据不一致,当任务处于修改同步对象中时,无法暂停任务。

解决方法:

  • 单个暂停任务:等待修改同步对象状态结束。

  • 批量暂停任务:将处于修改同步对象状态中的任务去掉,或等待修改同步对象状态结束。

DTS.Msg.ModifyDenied.JobStatusNotRunning

报错场景:修改暂停中任务的同步对象。

可能原因:为避免数据不一致,当任务的运行状态运行中时,才可以修改同步对象。

解决方法:启动任务,等待任务正常运行再修改同步对象。

说明

若任务延迟大于10分钟,请勿进行修改同步对象操作。

DTS.Msg.LXPayOrder.AmountLimitExceeded

报错场景:配置任务后支付订单失败。

可能原因:有POC标签的账号的订单支付金额只能是0,订单的金额大于0时无法支付。

解决方法:

  • 支付时使用代金券,使支付金额为0。

  • 使用其他账号支付。

说明

支付失败的订单不可以继续支付,需要在费用与成本取消。

DTS.Msg.LXPayOrder.AccountBookNotExists

报错场景:配置任务后支付订单失败。

可能原因:未开通阿里云资金账户或者账户余额不足。

解决方法:给账户充值以开通阿里云资金账户,并确认余额充足,然后重新购买。

说明

支付失败的订单不可以继续支付,需要在费用与成本取消。

DTS.Msg.ConfigJob.NoneSelectedStep

报错场景:使用API配置任务时。

可能原因:未配置任务类型,即传入字段StructureInitializationDataInitializationDataSynchronization的值均为false

解决方法:传入正确的参数值以配置任务类型。

DTS.Msg.ConfigJob.InvalidDbListFormat

报错场景:使用API配置任务时。

可能原因:传入的DbList字段不是标准的JSON字符串。

解决方法:传入正确形式的字符串参数。

DTS.Msg.ConfigJob.InvalidReserveFormat

报错场景:使用API配置任务时。

可能原因:传入的Reserve字段不是标准的JSON字符串。

解决方法:传入正确形式的字符串参数。

DTS.Msg.DistributedDatabaseNodesError

报错场景:以先购买再配置的方式,购买源库为分布式数据库的同步实例时。

可能原因:购买实例的源数据库参数分布式数据库节点数量与实际数量不符。

解决方法:购买实例时选择与实际相符的分布式数据库节点数量

DTS.Msg.LXQueryOrder.NotFoundNormalOrder

报错场景:对实例进行升降配或者转换支付方式时。

说明

目前实例降配功能正在灰度内测中,仅部分用户可以使用。

可能原因1:操作的实例为已完成但未释放短期实例。

解决方法1:释放已完成的短期实例。

可能原因2:操作的实例已经释放但仍然在控制台上显示。

解决方法2:请联系阿里云技术支持人员处理。

DTS.Msg.GetSSLInfo.NoSSLConn

报错场景:配置任务时勾选了SSL安全连接

可能原因:当前数据库实例未开通SSL连接,无SSL地址。

解决方法:给数据库实例开通SSL或者选择非加密连接

DTS.Msg.ModifyDynamicConfig.InvalidStatus

报错场景:修改已购买的同步或迁移实例的性能时。

可能原因:当前任务状态不是运行中

解决方法:请确保任务在运行中再进行操作。

DTS.Msg.TransferInstanceClass.NoPermission

报错场景:用户对实例进行降配操作时。

说明

目前实例降配功能正在灰度内测中,仅部分用户可以使用。

可能原因:执行降配操作的账号权限不足。

解决方法:需添加降配操作的权限,执行操作的账号及所属主账号均需要添加权限。请联系阿里云技术支持人员处理。

DTS.Msg.OperationDenied.ConsumerGroupOutOfUsage

报错场景:为订阅实例创建消费组时。

可能原因:当前订阅实例的消费组已经超过20个。

解决方法:请根据业务需求删除不使用的消费组后重试。

DTS.Msg.GrantAccessAlreadyExists

报错场景:配置DTS任务过程中。

可能原因:偶发性错误。

解决方法:请重试。若异常无法解决,请联系阿里云技术支持人员处理。

DTS.Msg.DbListIsEmpty

报错场景:使用API配置任务时。

可能原因:传入的DbList字段为null或传入的内容等效于null。

解决方法:参考迁移、同步或订阅对象说明传入正确的DbList字段。

DTS.Msg.GetRedisNodes.NotCluster

报错场景:配置源或目标实例为Redis的任务时。

可能原因:选择的实例模式与实例不符。

解决方法:选择与实例相符的实例模式

DTS.Msg.InvalidDestinationEndPointRegion

报错场景:使用API配置任务时。

可能原因:传入的目标实例地域错误或不支持。

解决方法:参考支持的地域列表Region ID列传入正确的地域信息。

DTS.Msg.InvalidSourceEndPointRegion

报错场景:使用API配置任务时。

可能原因:传入的源实例地域错误或不支持。

解决方法:参考支持的地域列表

DTS.Msg.AdminAccountExists

报错场景:配置DTS任务过程中。

可能原因:DTS会在部分类型的源端数据库中创建一个固定的高权限账号,若您的数据库已经存在了同名的账号则会报错。

解决方法:请联系阿里云技术支持人员处理。

DTS.Msg.NotSupportModify

报错场景:使用ModifyDtsJob接口修改任务时。

可能原因:传入的DtsInstanceId参数为迁移实例的ID。

解决方法:当前迁移任务仅支持在控制台修改ETL配置,若您需要修改迁移任务的其他配置,您可以创建新任务。

DTS.Msg.PrePayNotAllowDelete

报错场景:使用API释放DTS任务时。

可能原因:包年包月(预付费)任务不支持直接释放。

解决方法:包年包月(预付费)任务暂不支持释放

DTS.Msg.Forbidden.AliyunUIDNotFound

报错场景:使用DTS控制台配置任务时,常见于配置跨账号任务或者使用RAM用户(子账号)登录。

可能原因:登录DTS控制台的阿里云账号(主账号)信息未初始化。

  • 配置跨账号任务时,源端数据库所属的阿里云账号(主账号)从未登录过DTS控制台。

  • 使用子账号登录时,RAM用户(子账号)所属的阿里云账号(主账号)从未登录过DTS控制台。

解决方法:查看弹窗报错信息中的UID,使用主账号登录DTS控制台后重试。

DTS.Msg.RamPermissionDenied

报错场景:使用RAM用户(子账号)登录DTS控制台进行操作时。

可能原因:RAM用户(子账号)权限不足。

解决方法:请参考通过系统策略授权子账号管理DTS数据传输自定义权限策略参考,为RAM用户(子账号)授权后重试。

说明

创建自定义策略填入具体权限策略信息时,需要使用错误提示信息中的Action(接口操作名称)和ResourcedId(DTS实例ID)。

错误提示

DTS.Msg.EcsJoinSecurityGroupLimitExceeded

报错场景:配置数据源为ECS自建数据库的任务时。

可能原因:ECS实例的安全组超过五个。

解决方法:请根据业务需求并参考移出安全组,移出ECS实例中多余的安全组后重试。

说明

若由于业务需求安全组均无法移出,请整合ECS实例的安全组,使安全组数量不超过五个。

DTS.Msg.UpgradeTrialTimesLimit

报错场景:体验RPS上限升级功能时。

可能原因:当前账号体验RPS上限升级功能的次数已经超过了限制。每个账号有3次体验机会,每次体验持续24小时。

解决方法:无。

DTS.Msg.HasRunningTrial

报错场景:体验RPS上限升级功能时。

可能原因:DTS实例已在体验RPS上限升级功能中,不能重复体验。

解决方法:无。

DTS.Msg.DtsInstanceHasNoLimit

报错场景:体验RPS上限升级功能时。

可能原因:DTS实例没有RPS限制,不能体验RPS上限升级功能。

解决方法:无。

DTS.Msg.UpgradeTrialInvalidJobStatus

报错场景:体验RPS上限升级功能时。

可能原因:DTS实例状态不能体验RPS上限升级功能,仅运行中已暂停或失败状态时支持体验此功能。

解决方法:无。

DTS.Msg.InvalidMigrationJobId

报错场景:使用API配置任务时。

可能原因:传入的任务ID不正确或者任务已经被删除。

解决方法:传入正确的参数后重试。

DTS.Msg.InvalidIpAddress

报错场景:配置接入方式公网IP专线/VPN网关/智能网关云企业网CEN的数据库实例的DTS任务时。

可能原因:输入的IP地址格式错误,导致无法解析。

解决方法:输入正确的IP地址后重试。

DTS.Msg.PauseDenied.JobStatusNotRunning

报错场景:暂停任务时。

可能原因:需要暂停的任务状态不是运行中(如失败、已暂停或者初始化中)。

解决方法:修复或等待任务状态为运行中时,再暂停任务。

DTS.Msg.CheckpointOutOfAdjustableRange

报错场景:修改实例增量写入阶段的位点时。

可能原因:指定的位点不在可修改范围内。

解决方法:在可修改的范围内修改位点。

DTS.Msg.MaxRetryTime.Invalid

报错场景:修改源库、目标库无法连接后的重试时间时。

可能原因:修改的值不在取值范围内(10~1440分钟)。

解决方法:在取值范围内修改源库、目标库无法连接后的重试时间,建议设置为30分钟以上。

DTS.Msg.CrossRegionJobTransferToCluster

报错场景:DTS公共集群(共享集群)实例迁移到专属集群时。

可能原因:公共集群(共享集群)实例的源库和目标库地域不一致,暂不支持跨地域任务迁移到专属集群。

解决方法:无。

DTS.Msg.JobNotInClusterRegion

报错场景:DTS公共集群(共享集群)实例迁移到专属集群时。

可能原因:公共集群(共享集群)实例所属地域与专属集群的地域不一致,目前仅支持将公共集群(共享集群)任务迁移至同一地域的专属集群。

解决方法:无。

DTS.Msg.CallCloudProductApiError

报错场景:配置DTS任务时。

可能原因:调用其他云产品的OpenAPI时遇到问题。

解决方法:请根据报错中的CloudProduct、ErrCode和ErrMsg等信息,查看原因和解决方法。

DTS.Msg.MongoCommandError

报错场景:配置源库为MongoDB的任务时。

可能原因:执行MongoDB命令时遇到问题。

解决方法:请根据执行的命令和具体报错信息,在MongoDB官方文档中查询解决方案。

DTS.Msg.RedisCluster.NotSupportClassicNetworkEcs

报错场景:使用API配置源或目标库为Redis的任务时。

可能原因:DTS不支持经典网络的ECS自建的集群版Redis实例。

解决方法:无。

DTS.Msg.NotSupportRedisMinorVersion

报错场景:使用API配置源或目标库为Redis的任务时。

可能原因:DTS不支持当前小版本的Redis实例。

解决方法:请升级Redis实例小版本后重新配置任务。升级操作,请参见升级小版本

DTS.Msg.DtsInstanceNotExists

报错场景:使用API查询DTS实例详情时。

可能原因:当前DTS实例不存在。

解决方法:无。

DTS.Msg.NotPurchaseDtsInstance

报错场景:使用API修改DTS全量或增量速率时。

可能原因:当前DTS任务对应的实例没有购买,无法调整速率。

解决方法:请购买DTS实例后再进行修改。

DTS.Msg.NotSupportJobType

报错场景:使用API查询性能监控数据时。

可能原因:当前类型的任务不支持查询性能监控的数据。

解决方法:无。

DTS.Msg.MysqlCommandError

报错场景:在源或目标库执行MySQL命令时。

可能原因:执行MySQL命令时遇到问题。

解决方法:请根据执行的命令和具体报错信息,在MySQL官方文档中查询解决方案。

DTS.Msg.DynamicConfigError

报错场景:调整任务速率时。

可能原因:网络波动导致调整任务速率失败。

解决方法:请重新调整任务速率。

DTS.Msg.GetVpcError

报错场景:配置任务过程中。

可能原因:DTS获取VPC实例时遇到问题。

解决方法:请根据具体报错信息,在专有网络VPC官方文档中查询解决方案。

DTS.Msg.ListResourceGroupsError

报错场景:查询任务详情时。

可能原因:查询资源组遇到问题。

解决方法:请重新查询。

DTS.Msg.SearchDtsJobLogError

报错场景:查询任务日志信息时。

可能原因:查询的时间范围过大。

解决方法:请缩小查询的时间范围,然后重新进行查询。

DTS.Msg.GetDgInstanceError

报错场景:配置任务过程中。

可能原因:DTS获取DG实例时遇到问题。

解决方法:请根据具体报错信息,在数据库网关DG官方文档中查询解决方案。

DTS.Msg.JobProgressNotExists

报错场景:跳过全量迁移模块的表时。

可能原因:跳过表时遇到问题。

解决方法:请重新操作。

DTS.Msg.GetCenError

报错场景:配置任务过程中。

可能原因:DTS获取CEN实例时遇到问题。

解决方法:请根据具体报错信息,在云企业网CEN官方文档中查询解决方案。

DTS.Msg.GetDgDatabaseError

报错场景:配置源或目标端为数据库网关DG接入的实例时。

可能原因:DTS查询数据库网关DG实例时遇到未知错误。

解决方法:请联系阿里云技术支持人员处理。

DTS.Msg.SQLServerError

报错场景:配置源或目标库为SQL Server数据库的任务时。

可能原因:执行SQL命令时遇到问题。

解决方法:请根据执行的命令和具体报错信息,在SQL Server官方文档中查询解决方案。

DTS.Msg.InvalidDbList

报错场景:修改同步任务的同步对象时。

可能原因:传入同步对象参数的格式不正确。

解决方法:请确保同步对象的参数正确,然后重新操作。

DTS.Msg.GetRdsNetInfoError

报错场景:配置源或目标端为云数据库RDS实例时。

可能原因:DTS查询RDS实例网络信息时遇到未知错误。

解决方法:请联系阿里云技术支持人员处理。

DTS.Msg.PolarDB.DBDescribeDBClusterAttribute

报错场景:配置源或目标端为PolarDB实例(PolarDB MySQL引擎、PolarDB O引擎、PolarDB PostgreSQL引擎、PolarDB-X)时。

可能原因:DTS查询PolarDB实例信息时遇到未知错误。

解决方法:请联系阿里云技术支持人员处理。

DTS.Msg.DgInstanceNotExists

报错场景:配置源或目标端为数据库网关DG接入的实例时。

可能原因:数据库网关DG实例不存在。

解决方法:无。

DTS.Msg.MongoDB.DescribeDBInstanceAttribute

报错场景:配置源或目标端为MongoDB实例时。

可能原因:DTS查询MongoDB实例信息时遇到未知错误。

解决方法:请联系阿里云技术支持人员处理。

DTS.Msg.ClearConfigureContextError

报错场景:修改同步任务的同步对象时。

可能原因:修改同步对象过程中遇到未知错误。

解决方法:请联系阿里云技术支持人员处理。

DTS.Msg.ModifyCheckpoint.CurrentCheckpointIsEmpty

报错场景:修改任务的位点时。

可能原因:传入的新位点为空。

解决方法:请检查新位点的参数值,并在可修改的范围内修改位点。

DTS.Msg.DbInstanceNotExists

报错场景:配置DTS任务时。

可能原因:数据库实例不存在。

解决方法:无。

DTS.Msg.NotSupportEsInstance

报错场景:配置DTS任务时。

可能原因:由于DTS不支持当前Elasticsearch实例,导致查询Elasticsearch实例网络信息遇到未知错误。

解决方法:使用DTS支持的Elasticsearch实例配置任务。支持的版本,请参见同步方案概览迁移方案概览

DTS.Msg.AliyunDbsError

报错场景:配置SQL Server物理协议迁移任务时。

可能原因:调用DBS接口遇到错误。

解决方法:请根据DBS接口错误信息排查。

DTS.Msg.ScheduleJobError

报错场景:启动、暂停、停止任务时。

可能原因:系统暂时不可用。

解决方法:请稍后重试。

DTS.Msg.InvalidPort

报错场景:配置DTS任务时。

可能原因:端口参数无效。

解决方法:请填入正确的端口参数值。

DTS.Msg.ModifyDtsJob.NoIncrementalWriteModule

报错场景:修改同步对象时。

可能原因:当前任务不是同步任务。

解决方法:请检查当前任务是否为同步任务,仅同步任务支持修改同步对象。

DTS.Msg.ModifyDtsJob.HasCanNotRestartIncrementalWriteModule

报错场景:修改同步对象时。

可能原因:当前任务存在不能重启的增量写入模块。

解决方法:确保任务的增量写入模块处于运行中、暂停或失败状态时,再修改同步对象。

DTS.Msg.ModifyDtsJob.HasNotSyncedIncrementalWriteModule

报错场景:修改同步对象时。

可能原因:当前任务存在未运行的增量写入模块。

解决方法:等待任务的增量写入模块运行后,再修改同步对象。

Abnormal.RamCheckUserRole

报错场景:创建任务时。

可能原因:当前阿里云账号(主账号)没有为DTS默认角色(AliyunDTSDefaultRole)授权。

解决方法:请为DTS默认角色授权后重试,授权方法请参见授予DTS访问云资源的权限

Forbidden.InstanceNotFound

报错场景:配置DTS任务时。

可能原因:实例不存在。

解决方法:请确保实例ID正确,然后重试。

InvalidJobId

报错场景:配置DTS任务时。

可能原因:DTS任务不存在。

解决方法:请确保DTS任务ID正确,然后重试。

InternalError

报错场景:配置DTS任务过程中。

可能原因:DTS遇到内部错误。

解决方法:请联系阿里云技术支持人员处理。

RdsGetInstanceAttr.InvokeFail

报错场景:配置DTS任务过程中。

可能原因:DTS查询RDS实例信息时遇到问题。

解决方法:请根据具体报错信息排查处理。若异常无法解决,请联系阿里云技术支持人员处理。

LXCreateOrder.InvokeFail

报错场景:购买DTS实例时。

可能原因:偶发性错误。

解决方法:请联系阿里云技术支持人员处理。

DbProductInvokeFail

报错场景:配置DTS任务过程中。

可能原因:调用其他阿里云产品的OpenAPI时遇到问题。

解决方法:请根据其他阿里云产品OpenAPI返回信息排查处理。若异常无法解决,请联系阿里云技术支持人员处理。

InvalidParameter

报错场景:使用API配置任务时。

可能原因:传入的参数不符合要求。

解决方法:请传入正确的参数值。

DTS.Msg.CreateSubDistriubtedJobError

报错场景:配置DTS任务过程中。

可能原因:创建分布式任务遇到问题。

解决方法:请联系阿里云技术支持人员处理。

NotFound.UserDBInstanceList

报错场景:配置DTS任务过程中。

可能原因:查询数据库实例遇到问题。

解决方法:请根据具体报错信息排查处理。若异常无法解决,请联系阿里云技术支持人员处理。

AssumeRoleFail

报错场景:配置跨阿里云账号的任务时。

可能原因:任务配置的跨阿里云账号角色名(即RAM角色名称)有误。

解决方法:请检查跨阿里云账号角色名是否填写正确。更多信息,请参见常见问题

OperationDenied.JobStatus

报错场景:配置DTS任务过程中。

可能原因:当前任务状态不允许执行该操作。

解决方法:请确保当前任务状态符合操作的要求,然后重新操作。

NetWorkItemNotFound

报错场景:配置DTS任务过程中。

可能原因:数据库实例不存在指定的网络类型。

解决方法:请确保配置的数据库网络类型,与数据库实例的网络类型相符。

EcsJoinSecurityGroup.InvokeFail

报错场景:配置DTS任务时。

可能原因:ECS实例加入安全组遇到问题。

解决方法:请根据具体报错信息进行排查。更多信息,请参见添加安全组规则中的《常见问题》

SQLExecuteError

报错场景:配置DTS任务时。

可能原因:SQL执行异常。

解决方法:请根据具体报错信息排查处理。若异常无法解决,请联系阿里云技术支持人员处理。

NoPermission

报错场景:使用RAM用户(子账号)配置任务时。

可能原因:RAM用户(子账号)权限不足。

解决方法:请参考通过系统策略授权子账号管理DTS数据传输自定义权限策略参考,为RAM用户(子账号)授权后重试。

PolarDbGetNetworkItems.InvokeFail

报错场景:配置源或目标端为PolarDB实例(PolarDB MySQL引擎、PolarDB O引擎、PolarDB PostgreSQL引擎、PolarDB-X)时。

可能原因:DTS查询PolarDB实例信息时遇到未知错误。

解决方法:请根据具体报错信息排查处理。若异常无法解决,请联系阿里云技术支持人员处理。

InvalidRpsValue

报错场景:调整任务速率时。

可能原因:配置的RPS值不符合要求。

解决方法:请根据报错信息的提示,使用正确的RPS值重试。

RdsInvokeFail

报错场景:配置DTS任务过程中。

可能原因:调用RDS的OpenAPI时遇到问题。

解决方法:请根据具体报错信息排查处理。若异常无法解决,请联系阿里云技术支持人员处理。

InvalidTaskStatus

报错场景:修改同步对象时。

可能原因:当前任务存在未运行的增量写入模块。

解决方法:等待任务的增量写入模块运行后,再修改同步对象。

PolarDbGetWhiteNames.InvokeFail

报错场景:配置源或目标端为PolarDB实例(PolarDB MySQL引擎、PolarDB O引擎、PolarDB PostgreSQL引擎、PolarDB-X)时。

可能原因:获取PolarDB实例白名单信息时遇到未知错误。

解决方法:请根据具体报错信息排查处理。若异常无法解决,请联系阿里云技术支持人员处理。

ADB30GetNetworkItems.InvokeFail

报错场景:配置目标端为云原生数据仓库 AnalyticDB MySQL 版 3.0实例的任务时。

可能原因:获取云原生数据仓库 AnalyticDB MySQL 版 3.0实例网络信息时遇到未知错误。

解决方法:请根据具体报错信息排查处理。若异常无法解决,请联系阿里云技术支持人员处理。

QueryInstanceConnection

报错场景:配置DTS任务时。

可能原因:获取数据库实例网络信息失败。

解决方法:请根据具体报错信息排查处理。若异常无法解决,请联系阿里云技术支持人员处理。

RdsGetInstanceList.InvokeFail

报错场景:配置DTS任务时。

可能原因:获取RDS实例列表时遇到问题。

解决方法:请根据具体报错信息排查处理。若异常无法解决,请联系阿里云技术支持人员处理。

RdsGetWhiteNames.InvokeFail

报错场景:配置DTS任务时。

可能原因:获取RDS实例白名单时遇到问题。

解决方法:请根据具体报错信息排查处理。若异常无法解决,请联系阿里云技术支持人员处理。

InvalidParameter.TagValue

报错场景:创建标签时。

可能原因:标签的值不符合要求。

解决方法:请正确设置标签的值,然后重新操作。

RamPermissionCheckFailed

报错场景:配置DTS任务时。

可能原因:DTS检查RAM用户(子账号)权限遇到问题。

解决方法:请重试。若异常无法解决,请联系阿里云技术支持人员处理。

RdsModifyWhiteName.InvokeFail

报错场景:配置DTS任务时。

可能原因:修改RDS实例白名单时遇到问题。

解决方法:请根据具体报错信息排查处理。若异常无法解决,请联系阿里云技术支持人员处理。

DmsInvokeFail

报错场景:配置DTS任务时。

可能原因:调用DMS的OpenAPI时遇到问题。

解决方法:请根据具体报错信息排查处理。若异常无法解决,请联系阿里云技术支持人员处理。

InvalidParameter.DStoreDataRange

报错场景:修改任务的位点时。

可能原因:指定的位点不在可修改范围内。

解决方法:请根据具体报错信息,在可修改的范围内修改位点。

InvalidStepId

报错场景:配置DTS任务时。

可能原因:任务配置的步骤不存在。

解决方法:请确保配置的步骤ID正确,然后重试。

IllegalJdbcUrl

报错场景:配置DTS任务时。

可能原因:数据库实例的JDBC连接地址信息无效。

解决方法:使用正确且有效的JDBC连接地址配置任务。

InvalidRegion.NotFound

报错场景:配置DTS任务时。

可能原因:配置的地域不存在。

解决方法:请使用正确的地域信息配置任务。

MissingParameter

报错场景:配置DTS任务时。

可能原因:请求信息中缺少参数。

解决方法:请确保请求参数完整且正确,然后重试。

AliyunProductInvokeFail

报错场景:配置DTS任务时。

可能原因:调用其他云产品的OpenAPI时遇到问题。

解决方法:请根据报错中的CloudProduct、ErrCode和ErrMsg等信息,查看原因和解决方法。

DTS.Msg.OperationDenied.JobStatus

报错场景:配置DTS任务时。

可能原因:当前任务状态不允许执行该操作。

解决方法:请在当前任务状态符合要求时重试。

OperationDenied.DBInstanceStatus

报错场景:配置DTS任务时。

可能原因:任务配置的RDS实例,当前的运行状态不是运行中

解决方法:请确保该RDS实例的运行状态运行中,然后重试。

InvalidInstanceId

报错场景:配置DTS任务时。

可能原因:任务配置的数据库实例不存在。

解决方法:请确保传入正确的数据库实例ID,然后重试。

InvalidStepCode.NotAllowed

报错场景:暂停增量数据采集模块时。

可能原因:增量数据采集模块不支持暂停。

解决方法:无。

InvalidJobType.NotToWay

报错场景:调转双向同步任务方向时。

可能原因:当前类型的任务不支持调转任务方向。

解决方法:无。

InvalidJobType.NotSupport

报错场景:调转双向同步任务方向时。

可能原因:当前类型的任务不支持调转任务方向。

解决方法:无。

InvalidJobStatus

报错场景:调转双向同步任务方向时。

可能原因:当前状态的任务不支持调转任务方向。

解决方法:请确保正向和反向同步任务的运行状态运行中已暂停,然后重试。

HbaseueNetWorkItemNotFound

报错场景:配置DTS任务时。

可能原因:数据库实例不存在指定的网络类型。

解决方法:请确保配置的数据库网络类型,与数据库实例的网络类型相符。

InvalidSslConfig

报错场景:配置DTS任务时。

可能原因:保存SSL TrustStore失败。

解决方法:请重试。若异常无法解决,请联系阿里云技术支持人员处理。

VpcInvokeFail

报错场景:配置DTS任务时。

可能原因:DTS连接数据库实例时遇到问题。

解决方法:请重试。若异常无法解决,请联系阿里云技术支持人员处理。

QueryInstanceAttr

报错场景:配置DTS任务时。

可能原因:获取数据库实例信息失败。

解决方法:请根据具体报错信息排查处理。若异常无法解决,请联系阿里云技术支持人员处理。

QueryInstanceWhiteList

报错场景:配置DTS任务时。

可能原因:查询数据库实例白名单失败。

解决方法:请根据具体报错信息排查处理。若异常无法解决,请联系阿里云技术支持人员处理。

HbaseueModifyInstanceWhiteList

报错场景:配置DTS任务时。

可能原因:查询数据库实例白名单失败。

解决方法:请根据具体报错信息排查处理。若异常无法解决,请联系阿里云技术支持人员处理。

CreateAccountFail

报错场景:配置DTS任务时。

可能原因:DTS创建数据库账号失败。

解决方法:请根据具体报错信息排查处理。若异常无法解决,请联系阿里云技术支持人员处理。

ModifyAccountFail

报错场景:配置DTS任务时。

可能原因:数据库账号授权失败。

解决方法:请根据具体报错信息排查处理。若异常无法解决,请联系阿里云技术支持人员处理。

DTS.Msg.ModifyDbListFail

报错场景:修改同步任务的同步对象时。

可能原因:修改同步对象时遇到问题。

解决方法:请重试。若异常无法解决,请联系阿里云技术支持人员处理。

DropAccountFail

报错场景:配置DTS任务时。

可能原因:删除数据库账号失败。

解决方法:请根据具体报错信息排查处理。若异常无法解决,请联系阿里云技术支持人员处理。

QueryAccountFail

报错场景:配置DTS任务时。

可能原因:查询数据库账号失败。

解决方法:请根据具体报错信息排查处理。若异常无法解决,请联系阿里云技术支持人员处理。

AccountExists

报错场景:配置DTS任务时。

可能原因:数据库账号已经存在。

解决方法:请根据具体报错信息排查处理。若异常无法解决,请联系阿里云技术支持人员处理。

RedisInvokeFail

报错场景:配置DTS任务时。

可能原因:调用Redis的OpenAPI时遇到问题。

解决方法:请根据具体报错信息排查处理。若异常无法解决,请联系阿里云技术支持人员处理。

RedisError

报错场景:配置DTS任务时。

可能原因:连接Redis实例过程中遇到问题。

解决方法:请根据具体报错信息排查处理。若异常无法解决,请联系阿里云技术支持人员处理。

DRDSInvokeFail

报错场景:配置DTS任务时。

可能原因:连接PolarDB-X 1.0(原DRDS)数据库实例过程中遇到问题。

解决方法:请根据具体报错信息排查处理。若异常无法解决,请联系阿里云技术支持人员处理。

DTS.Msg.InvalidDrdsTable

报错场景:配置DTS任务时。

可能原因:获取PolarDB-X 1.0(原DRDS)表拓扑信息遇到问题。

解决方法:请确保报错信息中的表拓扑信息正确,然后重试。若异常无法解决,请联系阿里云技术支持人员处理。

DTS.Msg.MissingUserName

报错场景:配置DTS任务时。

可能原因:校验MaxCompute(原ODPS)实例的主账号AccessKeyId遇到问题。

解决方法:请确保主账号AccessKeyId正确,然后重试。

DTS.Msg.MissingPassword

报错场景:配置DTS任务时。

可能原因:校验MaxCompute(原ODPS)实例的主账号AccessKeySecret遇到问题。

解决方法:请确保主账号AccessKeySecret正确,然后重试。

PolarDbInvokeFail

报错场景:配置DTS任务时。

可能原因:获取数据库实例信息时遇到问题。

解决方法:请根据具体报错信息排查处理。若异常无法解决,请联系阿里云技术支持人员处理。

GpdbInvokeFail

报错场景:配置DTS任务时。

可能原因:获取数据库实例信息时遇到问题。

解决方法:请根据具体报错信息排查处理。若异常无法解决,请联系阿里云技术支持人员处理。

EcsInvokeFail

报错场景:配置DTS任务时。

可能原因:获取数据库实例信息时遇到问题。

解决方法:请根据具体报错信息排查处理。若异常无法解决,请联系阿里云技术支持人员处理。

AdsV3InvokeFail

报错场景:配置DTS任务时。

可能原因:获取数据库实例信息时遇到问题。

解决方法:请根据具体报错信息排查处理。若异常无法解决,请联系阿里云技术支持人员处理。

DTS.Msg.InvalidDbListError

报错场景:配置DTS任务时。

可能原因:校验同步对象时遇到问题。

解决方法:请确保同步对象配置正确,然后重试。

ADB30GetWhiteNames.InvokeFail

报错场景:配置DTS任务时。

可能原因:获取云原生数据仓库 AnalyticDB MySQL 版 3.0实例的白名单信息遇到问题。

解决方法:请根据具体报错信息排查处理。若异常无法解决,请联系阿里云技术支持人员处理。

ADB30ModifyWhiteName.InvokeFail

报错场景:配置DTS任务时。

可能原因:修改云原生数据仓库 AnalyticDB MySQL 版 3.0实例的白名单遇到问题。

解决方法:请根据具体报错信息排查处理。若异常无法解决,请联系阿里云技术支持人员处理。

ADB30GetInstanceList.InvokeFail

报错场景:配置DTS任务时。

可能原因:获取云原生数据仓库 AnalyticDB MySQL 版 3.0实例列表遇到问题。

解决方法:请根据具体报错信息排查处理。若异常无法解决,请联系阿里云技术支持人员处理。

ADB30GetDbClusterAttr.InvokeFail

报错场景:配置DTS任务时。

可能原因:获取云原生数据仓库 AnalyticDB MySQL 版 3.0实例的集群信息遇到问题。

解决方法:请根据具体报错信息排查处理。若异常无法解决,请联系阿里云技术支持人员处理。

DescribeResourceUsage.InvokeFail

报错场景:配置DTS任务时。

可能原因:查询RDS实例资源使用信息遇到问题。

解决方法:请根据具体报错信息排查处理。若异常无法解决,请联系阿里云技术支持人员处理。

DescribeDatabases.InvokeFail

报错场景:配置DTS任务时。

可能原因:查询RDS实例信息遇到问题。

解决方法:请根据具体报错信息排查处理。若异常无法解决,请联系阿里云技术支持人员处理。

RdsGetInstanceConnection.InvokeFail

报错场景:配置DTS任务时。

可能原因:查询RDS实例数据库连接信息遇到问题。

解决方法:请根据具体报错信息排查处理。若异常无法解决,请联系阿里云技术支持人员处理。

RdsCreateUserAccount.InvokeFail

报错场景:配置DTS任务时。

可能原因:创建RDS实例账号遇到问题。

解决方法:请根据具体报错信息排查处理。若异常无法解决,请联系阿里云技术支持人员处理。

RdsGetNetworkItems.InvokeFail

报错场景:配置DTS任务时。

可能原因:查询RDS实例数据库连接信息遇到问题。

解决方法:请根据具体报错信息排查处理。若异常无法解决,请联系阿里云技术支持人员处理。

HbaseueGetNetworkItems.InvokeFail

报错场景:配置DTS任务时。

可能原因:查询HBase实例数据库连接信息遇到问题。

解决方法:请根据具体报错信息排查处理。若异常无法解决,请联系阿里云技术支持人员处理。

GetNetworkItems.InvokeFail

报错场景:配置DTS任务时。

可能原因:获取数据库连接信息遇到问题。

解决方法:请根据具体报错信息排查处理。若异常无法解决,请联系阿里云技术支持人员处理。

RdsGetRegions.InvokeFail

报错场景:配置DTS任务时。

可能原因:获取RDS实例地域信息遇到问题。

解决方法:请根据具体报错信息排查处理。若异常无法解决,请联系阿里云技术支持人员处理。

RdsCreateMigrateTask.InvokeFail

报错场景:配置DTS任务时。

可能原因:创建源或目标为RDS实例的迁移任务遇到问题。

解决方法:请根据具体报错信息排查处理。若异常无法解决,请联系阿里云技术支持人员处理。

RdsDescribeMigrateTaskById.InvokeFail

报错场景:配置DTS任务时。

可能原因:查询源或目标为RDS实例的迁移任务遇到问题。

解决方法:请根据具体报错信息排查处理。若异常无法解决,请联系阿里云技术支持人员处理。

MongoDbGetWhiteNames.InvokeFail

报错场景:配置DTS任务时。

可能原因:获取MongoDB实例白名单信息遇到问题。

解决方法:请根据具体报错信息排查处理。若异常无法解决,请联系阿里云技术支持人员处理。

MongoDbGetInstanceList.InvokeFail

报错场景:配置DTS任务时。

可能原因:获取MongoDB实例列表遇到问题。

解决方法:请根据具体报错信息排查处理。若异常无法解决,请联系阿里云技术支持人员处理。

MongoDbGetInstanceConnection.InvokeFail

报错场景:配置DTS任务时。

可能原因:获取MongoDB实例数据库连接信息遇到问题。

解决方法:请根据具体报错信息排查处理。若异常无法解决,请联系阿里云技术支持人员处理。

MongoDbGetShardingMongoConnection.InvokeFail

报错场景:配置DTS任务时。

可能原因:获取MongoDB实例Sharding节点连接信息遇到问题。

解决方法:请根据具体报错信息排查处理。若异常无法解决,请联系阿里云技术支持人员处理。

MongoDbModifyWhiteNames.InvokeFail

报错场景:配置DTS任务时。

可能原因:修改MongoDB实例白名单信息遇到问题。

解决方法:请根据具体报错信息排查处理。若异常无法解决,请联系阿里云技术支持人员处理。

MongoDbGetInstanceAttr.InvokeFail

报错场景:配置DTS任务时。

可能原因:获取MongoDB实例信息遇到问题。

解决方法:请根据具体报错信息排查处理。若异常无法解决,请联系阿里云技术支持人员处理。

MongoDbGetShardingMongoGidInvokeFail.InvokeFail

报错场景:配置DTS任务时。

可能原因:获取MongoDB实例Sharding节点GID信息遇到问题。

解决方法:请根据具体报错信息排查处理。若异常无法解决,请联系阿里云技术支持人员处理。

PolarDbGetInstanceList.InvokeFail

报错场景:配置DTS任务时。

可能原因:获取PolarDB实例列表遇到问题。

解决方法:请根据具体报错信息排查处理。若异常无法解决,请联系阿里云技术支持人员处理。

PolarDbGetInstanceConnection.InvokeFail

报错场景:配置DTS任务时。

可能原因:获取PolarDB实例连接信息遇到问题。

解决方法:请根据具体报错信息排查处理。若异常无法解决,请联系阿里云技术支持人员处理。

PolarDbModifyWhiteNames.InvokeFail

报错场景:配置DTS任务时。

可能原因:修改PolarDB实例集群白名单遇到问题。

解决方法:请根据具体报错信息排查处理。若异常无法解决,请联系阿里云技术支持人员处理。

PolarDbGetInstanceAttr.InvokeFail

报错场景:配置DTS任务时。

可能原因:获取PolarDB实例信息遇到问题。

解决方法:请根据具体报错信息排查处理。若异常无法解决,请联系阿里云技术支持人员处理。

RedisGetWhiteNames.InvokeFail

报错场景:配置DTS任务时。

可能原因:获取Redis实例白名单信息遇到问题。

解决方法:请根据具体报错信息排查处理。若异常无法解决,请联系阿里云技术支持人员处理。

RedisGetInstanceList.InvokeFail

报错场景:配置DTS任务时。

可能原因:获取Redis实例列表遇到问题。

解决方法:请根据具体报错信息排查处理。若异常无法解决,请联系阿里云技术支持人员处理。

RedisGetInstanceConnection.InvokeFail

报错场景:配置DTS任务时。

可能原因:获取Redis实例连接地址遇到问题。

解决方法:请根据具体报错信息排查处理。若异常无法解决,请联系阿里云技术支持人员处理。

RedisModifyWhiteNames.InvokeFail

报错场景:配置DTS任务时。

可能原因:修改Redis实例白名单遇到问题。

解决方法:请根据具体报错信息排查处理。若异常无法解决,请联系阿里云技术支持人员处理。

RedisGetInstanceAttr.InvokeFail

报错场景:配置DTS任务时。

可能原因:获取Redis实例信息遇到问题。

解决方法:请根据具体报错信息排查处理。若异常无法解决,请联系阿里云技术支持人员处理。

RedisGetNetworkItems.InvokeFail

报错场景:配置DTS任务时。

可能原因:获取Redis实例连接地址遇到问题。

解决方法:请根据具体报错信息排查处理。若异常无法解决,请联系阿里云技术支持人员处理。

RedisCreateAccount.InvokeFail

报错场景:配置DTS任务时。

可能原因:创建Redis实例账号遇到问题。

解决方法:请根据具体报错信息排查处理。若异常无法解决,请联系阿里云技术支持人员处理。

RedisGetComputingType.InvokeFail

报错场景:配置DTS任务时。

可能原因:获取Redis实例架构类型遇到问题。

解决方法:请根据具体报错信息排查处理。若异常无法解决,请联系阿里云技术支持人员处理。

EcsGetWhiteNames.InvokeFail

报错场景:配置DTS任务时。

可能原因:获取ECS实例白名单遇到问题。

解决方法:请根据具体报错信息排查处理。若异常无法解决,请联系阿里云技术支持人员处理。

EcsGetInstanceList.InvokeFail

报错场景:配置DTS任务时。

可能原因:获取ECS实例列表遇到问题。

解决方法:请根据具体报错信息排查处理。若异常无法解决,请联系阿里云技术支持人员处理。

EcsGetMetricList.InvokeFail

报错场景:配置DTS任务时。

可能原因:获取ECS实例Metric列表遇到问题。

解决方法:请根据具体报错信息排查处理。若异常无法解决,请联系阿里云技术支持人员处理。

EcsGetInstanceConnection.InvokeFail

报错场景:配置DTS任务时。

可能原因:获取ECS实例网络信息遇到问题。

解决方法:请根据具体报错信息排查处理。若异常无法解决,请联系阿里云技术支持人员处理。

EcsModifySecurityGroup.InvokeFail

报错场景:配置DTS任务时。

可能原因:修改ECS实例安全组遇到问题。

解决方法:请根据具体报错信息排查处理。若异常无法解决,请联系阿里云技术支持人员处理。

EcsAuthSecurityGroup.InvokeFail

报错场景:配置DTS任务时。

可能原因:调用ECS安全组遇到问题。

解决方法:请根据具体报错信息排查处理。若异常无法解决,请联系阿里云技术支持人员处理。

EcsLeaveSecurityGroup.InvokeFail

报错场景:配置DTS任务时。

可能原因:移除ECS实例安全组遇到问题。

解决方法:请根据具体报错信息排查处理。若异常无法解决,请联系阿里云技术支持人员处理。

EcsGetInstanceAttr.InvokeFail

报错场景:配置DTS任务时。

可能原因:获取ECS实例信息遇到问题。

解决方法:请根据具体报错信息排查处理。若异常无法解决,请联系阿里云技术支持人员处理。

EcsGetSecurityGroupAttr.InvokeFail

报错场景:配置DTS任务时。

可能原因:获取ECS实例安全组遇到问题。

解决方法:请根据具体报错信息排查处理。若异常无法解决,请联系阿里云技术支持人员处理。

EcsDelSecurityGroup.InvokeFail

报错场景:配置DTS任务时。

可能原因:删除ECS安全组遇到问题。

解决方法:请根据具体报错信息排查处理。若异常无法解决,请联系阿里云技术支持人员处理。

EcsRevokeSecurityGroup.InvokeFail

报错场景:配置DTS任务时。

可能原因:删除ECS安全组遇到问题。

解决方法:请根据具体报错信息排查处理。若异常无法解决,请联系阿里云技术支持人员处理。

EcsGetNetworkItems.InvokeFail

报错场景:配置DTS任务时。

可能原因:获取ECS实例安全组规则遇到问题。

解决方法:请根据具体报错信息排查处理。若异常无法解决,请联系阿里云技术支持人员处理。

EcsCreateAccount.InvokeFail

报错场景:配置DTS任务时。

可能原因:创建ECS账号遇到问题。

解决方法:请根据具体报错信息排查处理。若异常无法解决,请联系阿里云技术支持人员处理。

LindormGetNetworkItems.InvokeFail

报错场景:配置DTS任务时。

可能原因:获取Lindorm实例数据库连接信息遇到问题。

解决方法:请根据具体报错信息排查处理。若异常无法解决,请联系阿里云技术支持人员处理。

LindormGetVpcAddress.InvokeFail

报错场景:配置DTS任务时。

可能原因:获取Lindorm实例数据库连接信息遇到问题。

解决方法:请根据具体报错信息排查处理。若异常无法解决,请联系阿里云技术支持人员处理。

LindormGetInstanceAttr.InvokeFail

报错场景:配置DTS任务时。

可能原因:获取Lindorm实例信息遇到问题。

解决方法:请根据具体报错信息排查处理。若异常无法解决,请联系阿里云技术支持人员处理。

InvalidOperation.AdvanceAction

报错场景:修改任务的位点时。

可能原因:当前任务没有增量数据采集模块,不支持修改位点。

解决方法:无。

TablestoreInvokeFail

报错场景:配置DTS任务时。

可能原因:获取数据库实例信息时遇到问题。

解决方法:请根据具体报错信息排查处理。若异常无法解决,请联系阿里云技术支持人员处理。

UnSupported

报错场景:配置DTS任务时。

可能原因:当前任务不支持该操作。

解决方法:请根据具体报错信息排查处理。若异常无法解决,请联系阿里云技术支持人员处理。

UnSupportedTaskType

报错场景:配置DTS任务时。

可能原因:当前类型的任务不支持该操作。

解决方法:请根据具体报错信息排查处理。若异常无法解决,请联系阿里云技术支持人员处理。

CheckJobCreateFail

报错场景:配置DTS任务时。

可能原因:创建校验任务失败。

解决方法:请重试。若异常无法解决,请联系阿里云技术支持人员处理。

ConfigurationDtsJobFail

报错场景:配置DTS任务时。

可能原因:创建源或目标数据库实例为Db2 for i(AS/400)的任务失败。

解决方法:请根据具体报错信息排查处理。若异常无法解决,请联系阿里云技术支持人员处理。

AllSiteInnerApiSupportFail

报错场景:配置DTS任务时。

可能原因:创建数据库账号遇到问题。

解决方法:请根据具体报错信息排查处理。若异常无法解决,请联系阿里云技术支持人员处理。

Missing.TagKey

报错场景:为DTS实例添加标签时。

可能原因:标签没有设置标签键。

解决方法:请正确设置标签的键,然后重新操作。

MissingParameter.TagOrResourceId

报错场景:使用API为DTS实例添加标签时。

可能原因:传入的参数中缺少实例ID、标签的键或标签的值。

解决方法:请确保传入的参数完整且正确,然后重试。

InvalidParameter.ResourceType

报错场景:使用API查询或添加标签时。

可能原因:资源类型(ResourceType)的参数值不正确。

解决方法:请将ResourceType的参数值修改为ALIYUN::DTS::INSTANCE,然后重试。

InvalidParameter.TagKey

报错场景:使用API查询或添加标签时。

可能原因:标签的键不符合要求。

解决方法:请正确设置标签的键,然后重试。

InvalidResourceId.NotFound

报错场景:使用API查询或添加标签时。

可能原因:DTS实例不存在。

解决方法:请确保DTS实例ID(ResourceId)正确,然后重试。

InvalidParameter.Tags

报错场景:使用API查询或添加标签时。

可能原因:标签的键或值不符合要求。

解决方法:请正确设置标签的键和值,然后重试。

InvalidParameter.NextToken

报错场景:使用API查询或添加标签时。

可能原因:解析标签时遇到问题。

解决方法:请重试。若异常无法解决,请联系阿里云技术支持人员处理。

InvalidParameter.Category

报错场景:使用API查询所有标签时。

可能原因:标签类型(Category)的参数值不正确。

解决方法:请将Category的参数值修改为Custom(用户添加的标签键)或System(系统创建的标签),然后重试。

NumberExceed.Tags

报错场景:为DTS实例添加标签时。

可能原因:批量添加的标签的数量超过20。

说明

每个实例最多可以绑定20个标签。

解决方法:请减少标签的数量,然后重试。

NumberExceed.ResourceIds

报错场景:为DTS实例添加标签时。

可能原因:DTS实例的数量超过50。

说明

最多支持同时为50个实例绑定标签。

解决方法:请减少实例个数,然后重试。

Duplicate.TagKey

报错场景:为DTS实例添加标签时。

可能原因:存在重复的标签。

解决方法:

  • 方法一:修改标签的键,然后重试。

  • 方法二:在业务允许的前提条件下,移除重复的标签,然后重试。

QuotaExceed.TagsPerResource

报错场景:为DTS实例添加标签时。

可能原因:标签的数量累计超过20。

说明

每个实例最多可以绑定20个标签。

解决方法:请在业务允许的前提条件下,删除不再使用的标签,然后重试。

NoPermission.SystemTag

报错场景:为DTS实例添加标签时。

可能原因:查询标签时遇到问题。

解决方法:请联系阿里云技术支持人员处理。

NoPermission.Operator

报错场景:为DTS实例添加标签时。

可能原因:查询标签时遇到问题。

解决方法:请联系阿里云技术支持人员处理。

UnsupportedTaskRegion

报错场景:配置专属集群任务时。

可能原因:专属集群不支持跨地域的任务。

解决方法:无。

UnsupportedDtsJob

报错场景:配置专属集群任务时。

可能原因:当前任务不支持该操作。

解决方法:无。

UnsupportedDtsInstance

报错场景:配置专属集群任务时。

可能原因:当前DTS实例不支持专属集群。

解决方法:无。

UnsupportedTransferType

报错场景:配置专属集群任务时。

可能原因:DTS不支持跨专属集群的迁移任务。

解决方法:无。

DedicatedClusterReleased

报错场景:配置专属集群任务时。

可能原因:当前专属集群已经释放。

解决方法:无。

DedicatedClusterReleasing

报错场景:配置专属集群任务时。

可能原因:当前专属集群正在释放中。

解决方法:无。

OperationDenied.DedicatedClusterStatus

报错场景:配置专属集群任务时。

可能原因:当前专属集群状态不是运行中。

解决方法:无。

OperationDenied.DedicatedClusterUsedDu

报错场景:配置专属集群任务时。

可能原因1:当前专属集群剩余可用DU数不足。

解决方法1:调大专属集群超配比,然后重试。更多信息,请参见设置DTS专属集群超配比

说明

超配比最大支持200%。

可能原因2:指定的专属集群不存在。

解决方法2:新购专属集群,然后重试。更多信息,请参见创建DTS专属集群

DedicatedClusterAllocateDuFail

报错场景:配置专属集群任务时。

可能原因:专属集群分配DU时遇到问题。

解决方法:请重试。若异常无法解决,请联系阿里云技术支持人员处理。

JobProgressNotFound

报错场景:在全量迁移阶段跳过表时。

可能原因:包含该表的全量迁移任务不存在。

解决方法:无。

LXBuyError

报错场景:购买DTS实例时。

可能原因:购买实例遇到问题。

解决方法:请重试。若异常无法解决,请联系阿里云技术支持人员处理。

SourceIpIsNotAllowedToConnect

报错场景:配置DTS任务时。

可能原因:校验源端公网IP遇到问题。

解决方法:请重试。若异常无法解决,请联系阿里云技术支持人员处理。

DestIpIsNotAllowedToConnect

报错场景:配置DTS任务时。

可能原因:校验目标端公网IP遇到问题。

解决方法:请重试。若异常无法解决,请联系阿里云技术支持人员处理。

MissingDtsInstanceId

报错场景:配置DTS任务时。

可能原因:请求参数缺少DTS实例ID。

解决方法:请检查请求入参是否正确

RgPreCheckFailed

报错场景:配置DTS任务时。

可能原因:检查资源组遇到问题。

解决方法:请联系阿里云技术支持人员处理。

RgOperationFailed

报错场景:配置DTS任务时。

可能原因:检查资源组遇到问题。

解决方法:请重试。若异常无法解决,请联系阿里云技术支持人员处理。

RgRegionNotSupport

报错场景:配置DTS任务时。

可能原因:检查资源组遇到问题。

解决方法:请重试。若异常无法解决,请联系阿里云技术支持人员处理。

MissingDestinationEndpointPort

报错场景:配置DTS任务时。

可能原因:请求信息中缺少目标实例的端口。

解决方法:请确保请求参数完整且正确,然后重试。

MissingSourceEndpointPort

报错场景:配置DTS任务时。

可能原因:请求信息中缺少源实例的端口。

解决方法:请确保请求参数完整且正确,然后重试。

DTS.Msg.NotSupportSubscribeJob

报错场景:在新版控制台修改订阅任务时。

可能原因:该任务为旧版订阅任务,而新版控制台不支持修改旧版订阅任务。

解决方法:进入数据管理DMS控制台的数据订阅页签,在右下角的jiqiren中单击返回旧版,返回至旧版数据传输控制台修改旧版订阅任务。

DTS.Msg.VpcSubnetIpExhaust

报错场景:创建订阅任务消费组时。

可能原因:任务配置的虚拟交换机的可用IP数不足。

解决方法:请确保任务配置的虚拟交换机的可用IP数充足,然后重试。若异常无法解决,请联系阿里云技术支持人员处理。

DTS.Msg.GetCenVpcError

报错场景:配置源或目标实例的接入方式为云企业网CEN的任务时。

可能原因:获取CEN下的VPC列表遇到问题。

解决方法:请确保云企业网实例ID正确,然后重试。若异常无法解决,请联系阿里云技术支持人员处理。

DTS.Msg.InvalidMongoDBStatus

报错场景:配置源或目标实例为MongoDB的任务时。

可能原因:当前MongoDB实例处于无效状态。

解决方法:请检查MongoDB实例的状态,等待MongoDB实例正常运行后重试。

SQLException: Misconfigured master - master server_id is 0

报错场景:配置任务时。

可能原因:源数据库server_id检查失败。

解决方法:请将server_id修改为大于1,且与其他数据库的server_id不重复的整数,然后重试。更多信息,请参见源库server_id检查

任务运行中常见的报错

DTS-RETRY-ERR-0001:get table (.*)? detail info failed (.*)? Table (.*)? doesn't exist

可能原因:在配置迁移或者同步的配置过程中未选择结构迁移或结构同步,且未在目标库中创建相应结构的表,导致目标库中不存在相应的表。

解决方法:

  • 方法一:如果是同步任务,可以使用修改同步对象功能将报错的表从同步对象中移除,详情请参见移除同步对象

  • 方法二:手动在目标库创建与源库相同结构的表,然后重新启动任务。

报错示例:如下报错信息,表示目标库中dts_order表不存在。您可以在目标库根据源库中的表信息创建dts_order表,然后重新启动任务。

replicate-mysql: DTS-70002: get table [dts_order] detail info failed.\ncause:\n\tMySQLSyntaxErrorException: 
Table 'dts_order' doesn't exist

DTS-RETRY-ERR-0002:get table (.*)? detail info failed (.*)? Table (.*)? does not exist

可能原因:源库或目标库部分表不存在。

解决办法:请根据具体报错任务类型、任务模块选择解决方案。

  • 数据同步任务:

    • 增量写入模块报错,检查目标库中对应的表是否存在且表结构是否一致。若表不存在:

      1. 通过修改同步对象功能,将报错信息中的表从同步对象中移除。

      2. 将目标库中报错信息表清空。

      3. 使用修改同步对象功能,将报错信息中的表加入到同步对象中。

      4. 恢复任务。

    • 全量迁移模块报错,检查源库和目标库中对应的表是否存在且表结构是否一致,若表不存在,需要重新配置任务。

  • 数据迁移任务:确保源库和目标库待迁移的表结构一致,然后重新配置任务。

报错示例:

replicate-mysql: DTS-70002: get table [ars_uat.immc_mc_cs_clue_order] detail info failed.\ncause:\n\tMySQLSyntaxErrorException: Table 'ars_uat.immc_mc_cs_clue_order' doesn't exist

DTS-RETRY-ERR-0003:get table (.*)? detail info failed (.*)? connect target failed (.*)? Access denied for user

可能原因:任务使用的目标库数据库账号信息,在任务运行中被修改,导致无法连接目标库。例如在任务运行中修改账号密码、修改账号权限、删除账号等。

解决方法:

  • 方法一:在目标库恢复任务使用账号信息。若账号信息恢复后任务已失败,请重新启动任务。

  • 方法二:使用权限符合要求且密码正确的账号,重新配置任务。

报错示例:如下报错信息,表示root账号无法连接目标库。

replicate-mysql: DTS-70002: get table [db_yfq.czb_oil_station] detail info failed.\ncause:\n\tDBCommonException: 
replicate-mysql: DTS-71016: connect target failed (url: jdbc:mysql://121.36.XX.XX:XXXX?useSSL=false&useUnicode=true
&characterEncoding=utf8&rewriteBatchedStatements=true&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull&
autoReconnect=false&failOverReadOnly=false&useLocalSessionState=true&transformedBitIsBoolean=FALSE&tinyInt1isBit=
FALSE&sessionVariables=sql_mode=''&allowLoadLocalInfile=true&allowPublicKeyRetrieval=true&socketTimeout=3600000&
connectTimeout=3600000)\n\tSQLException: Access denied for user 'root'@'8.131.XX.XX' (using password: YES)

DTS-RETRY-ERR-0004:get table (.*)? detail info failed (.*)? No worker nodes available in resource group

可能原因:DTS获取表结构时,云原生数据仓库 AnalyticDB MySQL 版没有可用的worker节点。

解决方法:排查云原生数据仓库 AnalyticDB MySQL 版数据库是否可用。

报错示例:

id=34284****, jobId=cvft576n24l9****, value={"errMsg":"replicate-adb30: DTS-70002: get table [mgdevsys.mytable] 
detail info failed.\ncause:\n\tSQLException: [31003, 2022110109452317201617024803453049329] : No worker nodes 
available in resource group ","jobId":"cfal5qfd243d834","maxRetryTime":7200,"module":"writer","retryCount":2,
"retryTarget":"destDB","retryTime":132,"retrying":true}

DTS-RETRY-ERR-0006:Can not find column (.*)? in destination table

可能原因:目标端的表缺少列。

解决方法:
  • 方法一(推荐):在目标端的表增加缺失的列,然后启动任务。
  • 方法二:
    重要 双向同步任务、目标表有除DTS以外的数据写入、目标端的表为多对一单向同步架构的目标表(包括一个任务的多张表映射到同一张表和多个任务的表映射到同一张表的场景)时不能使用此方法。
    1. 将报错的表从同步对象移除,然后启动任务。移除同步对象的方法,请参见移除同步对象
    2. 分情况采取操作:
      • 如果同步任务有勾选结构同步,在目标端删除表。
      • 如果同步任务没有勾选结构同步,在目标端删除表,然后在目标端重新创建与源端结构一致的表。
    3. 重新把表加入到同步对象。添加同步对象的方法,请参见新增同步对象

报错示例:如下报错信息,表示目标库的dts_user_authorization表中不存在wx_state列。

framework: DTS-30019: Can not find column \"wx_state\" in destination table \"dts_user_authorization\". 
Please add the column in the destination table.

后续建议:导致目标端缺少列有多种原因,其中一种原因是:同步链路不支持同步DDL,但在源端增加列。对于这种需求,请先在目标端增加列,然后在源端增加列,就不会导致同步任务失败。

DTS-RETRY-ERR-0007:Failed to get offsets by times in (.*)? ms

可能原因1:网络波动等原因,导致当前数据写入模块连接缓存模块超时。

解决方法1:重新启动任务,并查看任务是否恢复正常。

可能原因2:任务延迟时间过久。

解决方法2:任务已无法恢复,您可以在任务所在实例的操作列选择... > 重新配置任务,重新配置该任务。

报错示例:

Failed to get offsets by times in 60000 ms

DTS-RETRY-ERR-0008:Failed to seek oracle position

可能原因:日志找不到,源端日志可能被清理。

解决办法:请重新配置任务。

报错示例:

dts-k-src: DTS-52110: OracleRecordExtractor Init Error: oracle-reader: DTS-52061: Failed to seek oracle position

DTS-RETRY-ERR-0010:execute statement failed (.*)? modify precision is not supported

可能原因:链路不支持该类型的DDL操作,从而导致DDL执行失败。

解决办法:

  • 非整库同步:建议重新同步这张表(即先从同步对象中去掉,然后删除目标库的表,再把这张表加入到同步对象中)。DTS会重新进行包括Schema拉取的全量同步,这样会跳过此类型的DDL操作。

  • 整库同步:在云原生数据仓库 AnalyticDB MySQL 版中新建一张表,表名要不同于报错的表,表结构需要和源表的表结构一致。通过INSERT INTO SELECT将源表中的数据写入新建表中,删除报错的表,然后通过RENAME、将新表更名为报错的表名,重新启动任务即可。

报错示例:

transaction-replicate: DTS-70004: execute statement failed: /* dts_id=dtsit911vn1255**** */alter table `billing`.`store_payroll_detail` modify column `epidemic_subsidy` DECIMAL(20, 5) comment '****'
cause:
    SQLException: [15018, 202210211956001921681171220345323****] modify precision is not supported, col=epidemic_subsidy, type decimal, old=21, new=20

DTS-RETRY-ERR-0011:seek timestamp for topic (.*)? with position (.*)? failed

可能原因1:任务暂停过久,重新启动后DTS缓存模块中已没有相应位点的数据。

解决方法1:请先尝试修改实例的位点,若异常无法解决,请根据实际情况选择如下两种解决方法中的一种。修改位点的方法,请参见修改同步或迁移实例的当前位点

  1. 查看源库中用于增量数据解析的日志(如Binlog或Redolog等)时间范围是否包含该时间点。若包含,请尝试在后台重新读取数据;若不包含,请重新创建任务。

  2. 重新创建任务。

    重要

    请勿长时间暂停任务,移除同步对象;若源库的数据写入量较大,此期限将缩短。

可能原因2:任务失败过久,修复后DTS缓存模块中已没有相应位点的数据。

解决方法2:重新创建任务。

重要

任务失败报错时,请尽快修复问题并恢复任务,避免任务因失败过久而无法恢复。

可能原因3:全量迁移或全量同步持续时间较长,DTS可能已经清除全量任务启动后缓存的数据日志,导致用于增量解析的数据日志不完整。

说明

全量迁移或全量同步期间,DTS本地会循环存储源库近24小时或者50 GB的数据日志,用于增量数据解析。

解决方法3:需重新创建任务。创建任务前,请评估迁移或同步数据量,如数据量较大,建议拆分成多个迁移或同步任务。

报错示例:如下报错信息,表示DTS缓存模块中已没有相应位点(2021-5-20 21:17:51)的数据。

说明

报错中1660802171的时间格式为Unix时间戳,单位为秒(s)。您可以使用Unix时间戳转换工具,将Unix时间戳转换为UTC时间。

capture-dstore: DTS-50019: seek timestamp for topic [cn_hangzhou_vpc_rm_XXXX_version2-0] 
with position [{"timestamp":1660802171, "offset":-1}] failed

DTS-RETRY-ERR-0012:execute statement failed (.*)? modify column type is not supported

可能原因:链路不支持该类型的DDL操作,从而导致DDL执行失败。

解决办法:

  • 非整库同步:建议重新同步这张表(即先从同步对象中去掉,然后删除目标库的表,再把这张表加入到同步对象中)。DTS会重新进行包括Schema拉取的全量同步,这样会跳过此类型的DDL操作。

  • 整库同步:在云原生数据仓库 AnalyticDB MySQL 版中新建一张表,表名要不同于报错的表,表结构需要和源表的表结构一致。通过INSERT INTO SELECT将源表中的数据写入新建表中,删除报错的表,然后通过RENAME、将新表更名为报错的表名,重新启动任务即可。

报错示例:

transaction-replicate: DTS-70004: execute statement failed: /* dts_id=dtsit911vn1255**** */alter table `billing`.`store_payroll_detail` modify column `epidemic_subsidy` DECIMAL(20, 5) comment '****'
cause:
    SQLException: [15018, 202210211956001921681171220345323****] modify precision is not supported, col=epidemic_subsidy, type decimal, old=21, new=20

DTS-RETRY-ERR-0013:execute statement failed (.*)? command denied to user

可能原因:目标端数据库账号权限不足。

解决方法:提高DTS用户的权限,检查目标端数据库账号权限,授予报错信息中命令权限。

报错示例:

id=34286****, jobId=g5lw9b3121v****, value={"errMsg":"transaction-replicate: DTS-70004: execute statement failed: 
null\ncause:\n\tMySQLSyntaxErrorException: INSERT, UPDATE command denied to user 'dts_customerczd'@'172.17.XX.XX' 
for table 'dts_trx4unit_mark_18'","jobId":"bh2u9v80213****","maxRetryTime":7200,"module":"writer","retryCount":35,
"retryTarget":"destDB","retryTime":372,"retrying":true}

DTS-RETRY-ERR-0015:execute statement failed (.*)? Invalid object name

可能原因:目标库中不存在报错信息中的表。

解决方法:检查目标端是否存在报错信息中的表,若不存在:

  • 方法一:如果是同步任务,可以使用修改同步对象功能将报错的表从同步对象中移除,详情请参见移除同步对象

  • 方法二:手动在目标库创建与源库相同结构的表,然后重新启动任务。

报错示例:

id=344846732, jobId=ymp1082920y****, value={"errMsg":"replicate-sqlserver: DTS-70002: get table [[test].[dbo].[task]] 
detail info failed.\ncause:\n\tSQLServerException: Invalid object name 'test.dbo.task'.","jobId":"anv103sx20od235",
"maxRetryTime":86400,"module":"writer","retryCount":345,"retryTarget":"destDB","retryTime":3458,"retrying":true}

DTS-RETRY-ERR-0016:execute statement failed (.*)? elasticsearch (.*)? ResponseException (.*)? SERVICE_UNAVAILABLE

可能原因:目标端的检索分析服务Elasticsearch不可用。

解决方法:检查目标端的Elasticsearch服务是否正常可用。

报错示例:

{"errMsg":"transaction-replicate: DTS-70004: execute statement failed: null\ncause:\n\tSQLException: 3: meet error, 
updateSQL **** error detail message:org.elasticsearch.client.ResponseException: **** 503\n}\n\n\tSQLException: org.
elasticsearch.client.ResponseException: ****}

DTS-RETRY-ERR-0018:read source data error (.*)? Error retrieving record (.*)? Can not read response from server

可能原因:数据库连接异常。

解决方法:检查数据库连接是否正常,然后重新启动任务。更多信息,请参见源库连接性检查目标数据库连接性检查

报错示例:

id=34281****, jobId=n9f10m6i28s3601, value={"errMsg":"framework: DTS-31009: read source data error\ncause:\n\
tSQLException: Error retrieving record: Unexpected Exception: java.io.EOFException message given: Can not read 
response from server. Expected to read 987 bytes, ****}

DTS-RETRY-ERR-0019:read source data error (.*)? Error retrieving record (.*)? Connection reset

可能原因:连接被重置。

解决方法:检查网络状况,测试到数据库的连接是否正常。

报错示例:

id=34289****, jobId=n9f10m6i28s****, value={"errMsg":"framework: DTS-31009: read source data error\ncause:
\n\tSQLException: Error retrieving record: Unexpected Exception: java.net.SocketException message given: 
Connection reset\n\nNested Stack Trace:\n\n\n** BEGIN NESTED EXCEPTION ** \n\njava.net.SocketException\nMESSAGE: 
Connection reset\n\nSTACKTRACE:\n\njava.net.SocketException: Connection reset\n\tat java.net.SocketInputStream.
read(SocketInputStream.java:210)\n\tat java.net.SocketInputStream.read(SocketInputStream.java:141)\n\tat com.mysql.
cj.protocol.ReadAheadInputStream.fill(ReadAheadInputStream.java:107)\n\tat com.mysql.cj.protocol.ReadAheadInputStream.
readFromUnderlyingStreamIfNecessary(ReadAheadInputStream.java:150)\n\tat com.mysql.cj.protocol.ReadAheadInputStream.
read(ReadAheadInputStream.java:180)\n\tat java.io.FilterInputStream.read(FilterInputStream.java:133)\n\tat com.mysql.
jdbc.MySQLInputNetIoStream.read(MySQLInputNetIoStream.java:29)\n\tat java.io.FilterInputStream.read(FilterInputStream.
java:133)\n\tat com.mysql.cj.protocol.FullReadInputStream.readFully(...","jobId":"ga310k47281****","maxRetryTime":
7200,"module":"full","retryCount":3,"retryTarget":"srcDB","retryTime":15445,"retrying":true}

DTS-RETRY-ERR-0020:read source data error (.*)? Table (.*)? is marked as crashed and should be repaired

可能原因:源库中某张表的索引被损坏,导致无法读取数据。

解决方法:根据报错信息修复相应表的索引。

报错示例:如下报错信息,表示mytable表的索引损坏。

framework: DTS-31009: read source data error\ncause:\n\tSQLException: 
Table 'mytable' is marked as crashed and should be repaired

您可以使用如下命令进行修复:

use my_database;
repair table mytable;

DTS-RETRY-ERR-0021:BatchUpdateException (.*)? no this column (.*)? in this table

可能原因:目标端的表缺少列。

解决办法:在目标端的表增加缺失的列,然后重新启动任务。

报错示例:

id=34293****, jobId=zjj11te2w1i****, value={"errMsg":"java.sql.BatchUpdateException: [13000, 202211011449191921681280300345301****] 
syntax error :no this column => __dts_data_source, in this table LY.C1","jobId":"gqy11x78c19****","maxRetryTime":7200,"module":"full",
"retryCount":485,"retryTarget":"destDB","retryTime":4848,"retrying":true}

DTS-RETRY-ERR-0024:disk usage exceeded flood-stage watermark

可能原因:

  • 原因1:磁盘空间已满。

  • 原因2:表的大小已达上限。

解决办法:

  • 方法1:扩容磁盘后重新启动任务。

  • 方法2:在数据库层面解决表的上限值问题。解决后重新启动任务。

    说明

    针对MySQL数据库,表的上限值设置,请参见官方文档

报错示例:

common: DTS-11005: es: DTS-10035: index [tp_adlist_day_report_11] blocked by: [TOO_MANY_REQUESTS/12/disk usage 
exceeded flood-stage watermark, index has read-only-allow-delete block];\ncause:\n\tIOException: es: DTS-10035: 
index [tp_adlist_day_report_11] blocked by: [TOO_MANY_REQUESTS/12/disk usage exceeded flood-stage watermark, index 
has read-only-allow-delete block];\n\tCriticalAnyAllException: es: DTS-10035: index [tp_adlist_day_report_11] 
blocked by: [TOO_MANY_REQUESTS/12/disk usage exceeded flood-stage watermark, index has read-only-allow-delete block];

DTS-RETRY-ERR-0025:disk is over flow

可能原因:

  • 原因1:磁盘空间已满。

  • 原因2:表的大小已达上限。

解决办法:

  • 方法1:扩容磁盘后重新启动任务。

  • 方法2:在数据库层面解决表的上限值问题。解决后重新启动任务。

    说明

    针对MySQL数据库,表的上限值设置,请参见官方文档

报错示例:

common: DTS-11005: es: DTS-10035: index [tp_adlist_day_report_11] blocked by: [TOO_MANY_REQUESTS/12/disk usage 
exceeded flood-stage watermark, index has read-only-allow-delete block];\ncause:\n\tIOException: es: DTS-10035: 
index [tp_adlist_day_report_11] blocked by: [TOO_MANY_REQUESTS/12/disk usage exceeded flood-stage watermark, index 
has read-only-allow-delete block];\n\tCriticalAnyAllException: es: DTS-10035: index [tp_adlist_day_report_11] 
blocked by: [TOO_MANY_REQUESTS/12/disk usage exceeded flood-stage watermark, index has read-only-allow-delete block];

DTS-RETRY-ERR-0026:connect timed out

可能原因:数据库连接异常。

解决方法:检查数据库连接是否正常,然后重新启动任务。更多信息,请参见源库连接性检查目标数据库连接性检查

报错示例:

java.net.SocketTimeoutException: connect timed out@error code:1042

DTS-RETRY-ERR-0027:Communications link failure (.*)? The driver has not received any packets from the server

可能原因1:数据库以自建库接入DTS,数据库地址或端口填写错误。

解决方法1:检查并更正数据库地址和端口信息,然后重新启动任务。

可能原因2:数据库以专线接入DTS,该数据库通过专线连接异常。

解决方法2:请检查专线网络路由表及防火墙配置。

报错示例:

Communications link failure\n\nThe last packet sent successfully to the server was 0 milliseconds ago. The driver 
has not received any packets from the server.@error code:0

DTS-RETRY-ERR-0028:UnknownHostException (.*)? aliyuncs\\.com

可能原因:目标端数据库实例可能被释放了。

解决方法:无法恢复,请重新配置任务。

报错示例:

java.net.UnknownHostException: rm-bp167dm72ah1hm1****.mysql.rds.aliyuncs.com@error code:1042

DTS-RETRY-ERR-0029:Too many connections (.*)? error code

可能原因:数据库连接数达到上限。

解决方法:修改数据库连接数上限,然后重新启动任务。

报错示例:

Too many connections@error code:1040

DTS-RETRY-ERR-0030:ConnectException (.*)? Connection refused

可能原因:DTS的连接请求被拒绝了。

解决方法:请检查黑白名单授权。

报错示例:

id=34269****, jobId=pfi10xxa251****, value={"errMsg":"java.net.ConnectException: Connection refused (Connection refused)@error code:1042","jobId":"ehz1066b257****","maxRetryTime":43200,"module":"reader","retryCount":3,"retryTarget":"srcDB","retryTime":30,"retrying":true}

DTS-RETRY-ERR-0032:SQLServerException (.*)? The connection is closed

可能原因:SQLServer数据库连接中断。

解决方法:请确保源库和目标库SQLServer数据库可以正常连接,然后重新启动任务。

报错示例:

java.lang.RuntimeException: com.microsoft.sqlserver.jdbc.SQLServerException: The connection is closed.

DTS-RETRY-ERR-0033:SQLServerException (.*)? Connection reset

可能原因:网络不稳定,连接被重置。

解决办法:请确保SQLServer数据库可以正常连接,然后重新启动任务。

报错示例:

id=34271****, jobId=c2x10019318****, value={"errMsg":"com.microsoft.sqlserver.jdbc.SQLServerException: Connection 
reset ClientConnectionId:8a2bcd3d-3a6f-4b06-b5c4-94944d40****","jobId":"al9105f2314****","maxRetryTime":7200,"module":
"writer","retryCount":2,"retryTarget":"destDB","retryTime":28,"retrying":true}

DTS-RETRY-ERR-0034:elasticsearch (.*)? ResponseException (.*)? Too Many Requests

可能原因:Elasticsearch服务连接异常。

解决办法:检查ElasticSearch服务连接是否正常,然后重新启动任务。

报错示例:

common: DTS-11005: org.elasticsearch.client.ResponseException: POST http://172.16.XX.XX:XXXX/_bulk?pretty=true: HTTP/1.1 429 
Too Many Requests ****

DTS-RETRY-ERR-0035:Your password has expired

可能原因:DTS任务中使用的密码已过期。

解决办法:按MySQL给出的原始报错信息,修改密码并重新设置过期时间(建议设置为never):

  • 同步任务:重新配置DTS任务的密码。

  • 迁移任务:重建链路。

报错示例:

Your password has expired. To log in you must change it using a client that supports expired passwords.@error code:1862

DTS-RETRY-ERR-0036:Can't use (.*)? database through mongos (.*)? on server

可能原因1:任务使用的MongoDB数据库账号权限不足。

解决办法1:根据报错信息给数据库账号授权,然后重新启动任务。

可能原因2:待同步或迁移的数据为admin和local库中的数据。

解决办法2:暂不支持同步或迁移admin和local库中的数据。

报错示例:

Command failed with error 20 (IllegalOperation): 'Can't use 'local' database through mongos' on server s-
bp1698827e718b84-pub.mongodb.rds.aliyuncs.com:3717.

DTS-RETRY-ERR-0037:The last packet sent successfully to the server was (.*)? milliseconds ago

可能原因:数据库连接异常。

解决方法:检查数据库连接是否正常,然后重新启动任务。更多信息,请参见源库连接性检查目标数据库连接性检查

报错示例:

id=342986938****, jobId=iv6a9w5za8****, value={"errMsg":"com.mysql.cj.exceptions.CJCommunicationsException: The 
last packet successfully received from the server was 1 milliseconds ago.  The last packet sent successfully to 
the server was 14,513,692,650 milliseconds ago. ****

DTS-RETRY-ERR-0038:Statement cancelled due to timeout or client request

可能原因:获取源库Binlog最新位点时SQL查询超时。

解决方法:请确保DTS可以正常连接源库,然后重新启动任务。

报错示例:

id=34289****, jobId=lv710sub15r****, value={"errMsg":"Statement cancelled due to timeout or client request@error code:0","jobId":"wig100eq157****","maxRetryTime":43200,"module":"reader","retryCount":4,"retryTarget":"srcDB","retryTime":520,"retrying":true}

DTS-RETRY-ERR-0039:Connect db failure (.*)? connect timed out

可能原因:连接数据库超时。

解决方法:请确保DTS可以正常连接数据库,然后重新启动任务。

报错示例:

id=34284****, jobId=dv9w1fpej7j****, value={"errMsg":"DTS-002003 Connect db failure, unknow db url 100.100.XX.XX:XXX, please vaild url. Original error: java.net.SocketTimeoutException: connect timed out For more information please refer to https://****/document_detail/****.htm","jobId":"rcxy3zwo164****","maxRetryTime":43200,"module":"reader","retryCount":0,"retryTarget":"dstore","retryTime":19851828,"retrying":true}

DTS-RETRY-ERR-0040:Verify the connection properties and check that an instance of SQL Server is running on the host

可能原因:数据库无法正常连接。

解决方法:请确保DTS可以正常连接数据库,然后重新启动任务。

报错示例:

id=34286****, jobId=hy0s8l20276****, value={"errMsg":"The TCP/IP connection to the host 172.26.XX.XX, port 51808 has failed. Error: \"The driver received an unexpected pre-login response. Verify the connection properties and check that an instance of SQL Server is running on the host and accepting TCP/IP connections at the port. This driver can be used only with SQL Server 2005 or later.\". ClientConnectionId:f8d40feb-1345-4064-82d8-fe4e2893****@error code:0","jobId":"g5bf870q27b****","maxRetryTime":7200,"module":"reader","retryCount":1,"retryTarget":"srcDB","retryTime":15,"retrying":true}

DTS-RETRY-ERR-0041:Error on Send (.*)? Expiring (.*)? has passed since batch creation plus linger time

可能原因:增量数据采集模块异常。

解决方法:重启增量数据采集模块。

报错示例:

id=34286****, jobId=ehi11j9jw1h****, value={"errMsg":"dts-k-src: DTS-52122: Error on Send.Expiring 4251 record(s) for ap_southeast_1_vpc_rm_t4npvr5594z735ic5_imi_sg_prod_version2-0: 180182 ms has passed since batch creation plus linger time","jobId":"s3c116i9z1t****","maxRetryTime":7200,"module":"reader","retryCount":0,"retryTarget":"dstore","retryTime":1,"retrying":true}

DTS-RETRY-ERR-0042:No operations allowed after statement closed

可能原因:目标数据库无法正常连接。

解决方法:请确保DTS可以正常连接目标库,然后重新启动任务。

报错示例:

id=34284****, jobId=d3a107cy29z****, value={"errMsg":"framework: DTS-30011: currentRunningSQL: /* DTS-full-g86108c2294**** */insert ignore into `mpm_workflow`.`tb_conn_log_archive`(`conn_type`,`creator_user_id`,`call_class`,`create_time`,`recall_method`,`header_json`,`url`,`times`,`creator_user_name`,`response`,`success`,`id`,`last_mod_time`,`request_data`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?), reason: No operations allowed after statement closed.\ncause:\n\tSQLException: No operations allowed after statement closed.\n\tStatementIsClosedException: No operations allowed after statement closed.","jobId":"g86108c2294****","maxRetryTime":7200,"module":"full","retryCount":8,"retryTarget":"destDB","retryTime":297,"retrying":true}

DTS-RETRY-ERR-0043:MySQL binlog (.*)? is not exists

可能原因:任务暂停超过7天或MySQL的Binlog保留时间过短,导致Binlog不存在。

解决方法:

  • 若是自建MySQL数据库:请尝试恢复MySQL的Binlog,若Binlog无法恢复,请重新创建任务。

  • 若是RDS MySQL数据库:请重新创建任务。

报错示例:

dts-k-src: DTS-52110: MySQLRecordExtractor Init Error: mysql-reader: DTS-52212: MySQL binlog 1664283982 is not exists.

DTS-RETRY-ERR-0044:Get Last Position Error

可能原因:获取事务的GTID异常。

解决方法:请联系阿里云技术支持人员处理。

报错示例:

id=34293****, jobId=vheu6zm1297****, value={"errMsg":"dts-k-src: DTS-52121: Get Last Position Error.","jobId":"p83i1t3912i****","maxRetryTime":7200,"module":"reader","retryCount":30,"retryTarget":"dstore","retryTime":2911,"retrying":true}

DTS-RETRY-ERR-0045:archiver error (.*)? Connect internal only (.*)? until freed

可能原因:Oracle归档日志占用空间或者根目录空间已满,导致归档任务无法正常执行。

解决方法:检查Oracle归档日志占用空间或者根目录空间是否已满。

报错示例:

id=34291****, jobId=zl0110ae27t****, value={"errMsg":"ORA-00257: archiver error. Connect internal only, until freed.\n@error code:257","jobId":"o50118un27m****","maxRetryTime":43200,"module":"reader","retryCount":90,"retryTarget":"srcDB","retryTime":903,"retrying":true}

DTS-RETRY-ERR-0046:Access denied for user

可能原因1:任务中使用的数据库账号权限不足。

解决方法1:

  • 方法一:给任务中使用的数据库账号授予足够的权限,然后重新启动任务。

  • 方法二:请使用权限充足的数据库账号配置任务。

可能原因2:报错信息中的库为系统库(如sys等)或者不需要同步或迁移的数据库。

解决方法2:

  • 同步任务:使用修改同步对象功能将报错的库从同步对象中移除,然后重新启动任务。移除同步对象的方法,请参见移除同步对象

  • 迁移任务:重新配置任务,待迁移的对象不选择报错信息中的库。

报错示例:

id=34298****, jobId=c7e10qex28q****, value={"errMsg":"dts-k-src: DTS-52110: MySQLRecordExtractor Init Error: mysql-reader: DTS--0002: MySQLMessageNotifier notifyConnectionException error Access denied for user 'edy_dba1'@'10.28.XX.XX' (using password: YES)","jobId":"k361016128e****","maxRetryTime":7200,"module":"reader","retryCount":18,"retryTarget":"srcDB","retryTime":730,"retrying":true}

DTS-RETRY-ERR-0047:The MySQL server is running with the --read-only option

可能原因:MySQL实例是一个只读实例。

解决方法:修改数据库配置,详情请参见Strange MySQL "read-only" error

报错示例:

id=34297****, jobId=d3a107cy29z****, value={"errMsg":"framework: DTS-30011: currentRunningSQL: /* DTS-full-g86108c2294**** */insert ignore into `mpm_workflow`.`tb_node_tasks`(`tenant_id`,`task_name`,`reviewer_node_rp_info`,`node_status`,`create_time`,`punish_b_mp`,`last_node_info`,`approval_type`,`end_time`,`task_id`,`read_flag`,`is_last_flag`,`reward_b_mp`,`proc_inst_id`,`id`,`assignee`,`last_mod_time`,`reviewer_reward_b_mp`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?), reason: The MySQL server is running with the --read-only option so it cannot execute this statement\ncause:\n\tBatchUpdateException: The MySQL server is running with the --read-only option so it cannot execute this statement\n\tSQLException: The MySQL server is running with the --read-only option so it cannot execute this statement","jobId":"g86108c2294****","maxRetryTime":7200,"module":"full","retryCount":175,"retryTarget":"destDB","retryTime":6149,"retrying":true}

DTS-RETRY-ERR-0048:object mapping for (.*)? tried to parse field (.*)? as object (.*)? but found a concrete value

可能原因:未使用DTS进行结构迁移或同步,字段进行类型映射时失败。

解决方法:请订正目标端的表结构,使报错信息中的字段支持类型映射,详情请参见Tried to parse field as object, but found a concrete value

报错示例:

id=34298****, jobId=o0g115h4l19****, value={"errMsg":"common: DTS-11005: es: DTS-10035: object mapping for [ext_info.storeSnapshot] tried to parse field [storeSnapshot] as object, but found a concrete value\ncause:\n\tIOException: es: DTS-10035: object mapping for [ext_info.storeSnapshot] tried to parse field [storeSnapshot] as object, but found a concrete value\n\tCriticalAnyAllException: es: DTS-10035: object mapping for [ext_info.storeSnapshot] tried to parse field [storeSnapshot] as object, but found a concrete value","jobId":"k5d111rgn1q****","maxRetryTime":7200,"module":"full","retryCount":8,"retryTarget":"destDB","retryTime":188,"retrying":true}

DTS-RETRY-ERR-0049:get table (.*)? detail info failed (.*)? No operations allowed after connection closed

可能原因:在任务运行期间修改了目标库名称,导致连接目标库失败。

解决方法:请检查数据库是否存在,并确保数据库可以正常连接。

报错示例:

id=34443****, jobId=vnie8qsym6j****, value={"errMsg":"replicate-adb30: DTS-70002: get table [center_item.t_ite_half_product_list] detail info failed.\ncause:\n\tMySQLNonTransientConnectionException: No operations allowed after connection closed.","jobId":"xlcu9y7a29s****","maxRetryTime":43200,"module":"writer","retryCount":42,"retryTarget":"destDB","retryTime":415,"retrying":true}

DTS-RETRY-ERR-0050:get table (.*)? detail info failed (.*)? Schema (.*)? does not exist

可能原因:修改过目标库名称,导致Schema不存在。

解决方法:请检查Schema是否存在。

报错示例:

id=34443****, jobId=vnie8qsym6j****, value={"errMsg":"replicate-adb30: DTS-70002: get table [center_item.t_ite_sale_product_list] detail info failed.\ncause:\n\tSQLException: [20019, 2022110223221517201625218803151866591] : Schema center_item does not exist","jobId":"xlcu9y7a29s****","maxRetryTime":43200,"module":"writer","retryCount":13,"retryTarget":"destDB","retryTime":128,"retrying":true}

DTS-RETRY-ERR-0051:execute statement failed (.*)? The MySQL server is running with the LOCK_WRITE option

可能原因:MySQL实例状态异常(如实例为LOCK_WRITE状态),DTS无法写入数据。

解决方法:请检查MySQL实例状态是否正常。

报错示例:

id=34443****, jobId=v2310b2h13d****, value={"errMsg":"transaction-replicate: DTS-70003: 29 execute transaction has excess max transaction retry time [150] cause:transaction-replicate: DTS-70004: execute statement failed, may try it again\ncause:\n\tRecoverableAnyAllException: transaction-replicate: DTS-70004: execute statement failed, may try it again\n\tSQLException: MysqlEngine(29): meet error, insertSQL:/* DTS-writer-pt0104ov13b****-MysqlEngine(29) */insert into `gts`.`s1` (`address`,`gender`,`name`,`telephone`,`id`,`department`,`age`)  VALUES  (x'E6B19FE88B8FE79C81E58D97E4BAACE5B882E696B0E59F8EE7A791E68A80E59BAD', x'E794B7', x'E5AE8BE6B19F', x'3133383031323334353637', 80371, x'416C6979756E', 28) , error detail message:The MySQL server is running with the LOCK_WRITE option so it cannot execute this statement\n\tSQLException: The MySQL server is running with the LOCK_WRITE option so it cannot execute this statement","jobId":"pt0104ov13b****","maxRetryTime":86400,"module":"writer","retryCount":372,"retryTarget":"destDB","retryTime":10201,"retrying":true}

DTS-RETRY-ERR-0052:Record Replicator error in table (.*)? The table (.*)? does not have primary key!

可能原因:目标库某张表缺少主键。

解决方法:按照源库对应表的主键设置为目标库添加主键,然后重新启动任务。

报错示例:如下报错信息,表示目标库reader中的my_table表缺少主键。您可以参考源库的表信息为目标库中my_table表添加主键,然后重新启动任务。

DTS-077100: Record Replicator error in table null.null. cause by [The table `reader`.`my_table` does not 
have primary key!] About more information in [https://**.ali**.com/**].

DTS-RETRY-ERR-0053:Failed to get offsets by times in 120000 ms

可能原因:网络波动等原因,导致增量写入模块无法连接增量数据采集模块。

解决方法:重启增量写入模块,并查看任务是否恢复正常。

报错示例:

org.apache.kafka.common.errors.TimeoutException: Failed to get offsets by times in 120000 ms

DTS-RETRY-ERR-0054:Failed to get offsets by times in 60000 ms

可能原因:网络波动等原因,导致增量数据采集模块无法连接数据缓存模块。

解决方法:重启增量数据采集模块,并查看任务是否恢复正常。

报错示例:

Failed to get offsets by times in 60000 ms

DTS-RETRY-ERR-0055:In process of processing data (.*)? failed (.*)? column (.*)? does not exist

可能原因:目标端的表缺少列。

解决方法:在目标端的表增加缺失的列,然后重新启动任务。

报错示例:如下报错信息,表示目标库的default$default表中不存在a列。

In process of processing data (recordRange: 767384901729753****) failed
cause:
    CriticalAnyAllException: framework: DTS-30020: execute sql:/* DTS-full-t6o10oly31f**** */SELECT a,b FROM default$default."_AnswerDetailToSectionScore" --> (null, null) record range id = 767384901729753****, fetchSize = 1024
    PSQLException: ERROR: column "a" does not exist

DTS-RETRY-ERR-0056:In process of processing data (.*)? failed (.*)? read source data error (.*)? An I/O error occurred while sending to the backend

可能原因:目标库负载过高或者网络不稳定。

解决方法:

  • 方法一:在迁移实例详情页,通过任务管理 > 全量迁移 > 调整速率功能,降低全量迁移速率,实现降低目标库的写入负载。

  • 方法二:对目标库进行规格升级,提高写入性能。

报错示例:

In process of processing data (recordRange: 361479547447882****) failed
cause:
    CriticalAnyAllException: framework: DTS-31009: read source data error
    PSQLException: An I/O error occurred while sending to the backend.

DTS-RETRY-ERR-0057:fetch column info from target table (.*)? failed (.*)? Can not get the column

可能原因1:DTS全量迁移暂不支持迁移global_index(全局索引)。

解决方法1:删除目标库中的global_index

可能原因2:数据库存储引擎使用的是DTS不支持的MyISAM。

解决方法2:

  • 同步任务:使用修改同步对象功能将报错的表从同步对象中移除,然后重新启动任务。移除同步对象的方法,请参见移除同步对象

  • 迁移任务:重新配置任务,待迁移的对象不选择报错的表。

报错示例:

framework: DTS-31008: fetch column info from target table snpcenter.modification failed
cause:
    AnyCoreException: framework: DTS-31008: fetch column info from target table snpcenter.modification failed
    CriticalAnyAllException: full-postgresql: DTS-61008: jdbc: DTS-11014: Can not get the column tableoid from recordSchema for index global_modification_after_idx

DTS-RETRY-ERR-0058:fetch column info from (.*)? table (.*)? failed (.*)? relation (.*)? does not exist

可能原因1:目标库中的指定表不存在。

解决方法1:在目标数据库中创建对应表,如需删除该表,请在任务结束后再执行删除操作。

可能原因2:数据库存储引擎使用的是DTS不支持的MyISAM。

解决方法2:

  • 同步任务:使用修改同步对象功能将报错的表从同步对象中移除,然后重新启动任务。移除同步对象的方法,请参见移除同步对象

  • 迁移任务:重新配置任务,待迁移的对象不选择报错的表。

报错示例:如下报错信息,表示目标库中dw.tmp_smb2021表不存在。

framework: DTS-31008: fetch column info from source table dw.tmp_smb2021 failed
cause:
    AnyCoreException: framework: DTS-31008: fetch column info from source table dw.tmp_smb2021 failed
    CriticalAnyAllException: full-postgresql: DTS-61008: ERROR: relation "dw.tmp_smb2021" does not exist

DTS-RETRY-ERR-0059:fetch column info from (.*)? table (.*)? failed (.*)? NullPointerException

可能原因1:从源库查询对应的表结构信息失败,可能是源库中对应表被删除,或当前配置的源库账号没有该表的查询权限。

解决方法1:确认源库中是否存在对应表,若表已被删除,则需重新配置DTS任务;若表存在,则需确认当前配置的源库账号是否具有该表的查询权限,若没有权限则需要进行授权。

可能原因2:数据库存储引擎使用的是DTS不支持的MyISAM。

解决方法2:

  • 同步任务:使用修改同步对象功能将报错的表从同步对象中移除,然后重新启动任务。移除同步对象的方法,请参见移除同步对象

  • 迁移任务:重新配置任务,待迁移的对象不选择报错的表。

报错示例:如下报错信息,表示获取xxx库的yyy表结构失败。

**
cause:
    AnyCoreException: framework: DTS-31008: fetch column info from source table xxx.yyy failed
    NullPointerException: null

DTS-RETRY-ERR-0060:Table (.*)? doesn't exist

可能原因:目标库中的指定表不存在。

解决方法:在目标数据库中创建对应表,如需删除该表,请在任务结束后再执行删除操作。

报错示例:如下报错信息,表示目标库中hd_new_cctv.tbl_program表不存在。

    cause:
    BatchUpdateException: Table 'hd_new_cctv.tbl_program' doesn't exist
    MySQLSyntaxErrorException: Table 'hd_new_cctv.tbl_program' doesn't exist"

DTS-RETRY-ERR-0061:Duplicate entry (.*)? for key

可能原因:在写入目标库过程中遇到了主键冲突的问题。通常是因为目标库中存在Trigger(触发器),DTS写入时触发了该Trigger,又由该Trigger触发了主键冲突。

解决方法:查看报错SQL中的库表信息,在目标库中查询是否存在Trigger,并结合业务评估是否可以删除Trigger,删除后重新启动任务。

报错示例:

Duplicate entry '97103673' for key 'PRIMARY'
cause:
    BatchUpdateException: Duplicate entry '9710****' for key 'PRIMARY'
    MySQLIntegrityConstraintViolationException: Duplicate entry '9710****' for key 'PRIMARY'"

DTS-RETRY-ERR-0062:column (.*)? of relation (.*)? does not exist

可能原因:目标库和源库的表结构不一致,目标库指定的表中缺少列。

解决方法:在目标库指定的表中增加缺失的列,然后重新启动任务。

报错示例:如下报错信息,表示目标库中的t_m_class_record_detail表的exception列不存在。

ERROR: column "exception" of relation "t_m_class_record_detail" does not exist

DTS-RETRY-ERR-0063:Lock wait timeout exceeded

可能原因:目标库存在锁等待超时问题。

解决方法:若目标库是MySQL,可通过以下命令检查目标库锁的状况。

SHOW FULL PROCESSLIST;
SELECT * FROM innodb_trx;
说明

修复完成后,需要重新启动任务。

报错示例:

reason: Lock wait timeout exceeded; try restarting transaction
cause:
    BatchUpdateException: Lock wait timeout exceeded; try restarting transaction
    MySQLTransactionRollbackException: Lock wait timeout exceeded; try restarting transaction

DTS-RETRY-ERR-0064:schema in dblist not found in database

可能原因:目标库Schema不存在。

解决方法:需要在目标库中手动创建对应的Schema以及Schema中需要迁移的表,并重新启动任务。

报错示例:

schema in dblist not found in database

DTS-RETRY-ERR-0065:syntax error at or near (.*)? schema (.*)? does not exist

可能原因:目标库Schema不存在。

解决方法:需要在目标库中手动创建对应的Schema以及Schema中需要迁移的表,并重新启动任务。

报错示例:

ERROR:syntax error at or near \"\"ALTER\"\"
Position:157. ERROR: schema \"\"CECDEV\"\" does not exist.

DTS-RETRY-ERR-0066:MongoCommandException (.*)? Command failed with error (.*)? requires authentication

可能原因:目标库的账号没有写权限。

解决方法:授权目标库账号的写权限。

报错示例:

MongoCommandException:
Command failed with error 13: 'command insert requires authentication' on
server 113.**.*.*:27017. 

DTS-RETRY-ERR-0067:MongoCommandException (.*)? Command failed with error (.*)? disk locked

可能原因:目标库磁盘被锁定,可能是磁盘空间已满。

解决方法:扩容目标库的MongoDB磁盘空间,并重新启动任务。

报错示例:

MongoCommandException:
Command failed with error 13: 'cloud instance error, disk locked, plz check and
upgrade your disk quota, extra info: not authorized on gankao_log to execute
command { insert: "jyquestions", ordered: true, bypassDocumentValidation:
true, $db: "gankao_log" }' on server 100.**.*.*:27017.

DTS-RETRY-ERR-0068:invalid set null value to not nullable field

可能原因:源库与目标库的表结构不一致,源库为NULLABLE,而目标库为NOT NULL

解决方法:根据报错找到具体的目标库表,将该表的报错字段类型修改为NULLABLE,并重新启动任务。

报错示例:

CriticalAnyAllException: database-commons: DTS-11001: invalid set null value to not nullable field

DTS-RETRY-ERR-0069:Datasource rejected establishment of connection (.*)? Too many connections

可能原因:源端或目标端数据库的连接数过多。

解决方法:调整源端或目标端数据库的最大连接数,并重新启动任务。

说明

若您的实际不符合上述原因,请尝试以下方法:

报错示例:

MySQLNonTransientConnectionException: Data source rejected establishment of connection,  message from server: ""Too many connections"""

DTS-RETRY-ERR-0070:In process of processing data (.*)? failed (.*)? Syntax error in SQL statement

可能原因:配置同步对象的过滤字段格式不正确,需要去除WHERE关键字。

解决方法:修改同步对象的过滤条件字段,去除WHERE关键字,并重新启动任务。

报错示例:

framework: DTS-31009: In process of processing data (recordRange:
631*****493978*****) failed cause:
CriticalAnyAllException: common: DTS-11005: Syntax error in SQL statement
"WHERE[*] UPDATED_TIME > '2022-11-02' " [42000-193] 

DTS-RETRY-ERR-0071:In process of processing data (.*)? failed (.*)? Fetch records (.*)? times but return empty

可能原因:增量写入模块无法从增量数据采集模块中获取数据。

解决方法:排查增量数据采集模块的报错。

报错示例:

\"framework: DTS-31009: In process of processing data (recordRange: 651*****493978*****) failed\n" +
                "cause:\n" +
                "\tCriticalAnyAllException: common: DTS-10009: capture-dstore: DTS-51009: Fetch records 156 times but return empty.\n" +
                "\tRecoverableAnyAllException: capture-dstore: DTS-51009: Fetch records 156 times but return empty.\n" +
                "\tException: Fetch records but return empty.\"

DTS-RETRY-ERR-0072:In process of processing data (.*)? failed (.*)? Failed to get offsets by times in 120000 ms

可能原因:增量写入模块无法从增量数据采集模块中获取数据。

解决方法:重启增量写入模块,并查看任务是否恢复正常。

报错示例:

\"framework: DTS-31009: In process of processing data (recordRange: 3187189853338992640) failed\n" +
                "cause:\n" +
                "\tCriticalAnyAllException: common: DTS-11005: Failed to get offsets by times in 120000 ms\n" +
                "\tTimeoutException: Failed to get offsets by times in 120000 ms\"

DTS-RETRY-ERR-0073:In process of processing data (.*)? failed (.*)? unreachable source redis network

可能原因:DTS网络无法连接至Redis实例,也可能是Redis实例被释放。

解决方法:检查Redis实例是否可以正常连接。

报错示例:

\"framework: DTS-31009: In process of processing data (recordRange: 278730492608512) failed\n" +
                "cause:\n" +
                "\tRedisServerException: redis: DTS-10015: unreachable source redis network.\n" +
                "\tSocketException: Broken pipe (Write failed)\"

DTS-RETRY-ERR-0074:JedisDataException (.*)? WRONGTYPE Operation against a key holding the wrong kind of value

可能原因:目标库已存在与源库同名但类型不相同的Key数据。

解决方法:删除目标库的同名key。

报错示例:

redis.clients.jedis.exceptions.JedisDataException: WRONGTYPE Operation against a key holding the wrong kind of value

DTS-RETRY-ERR-0075:sqlserver-reader (.*)? seek binlog for timestamp

可能原因:源库没有对应时间点的日志。

解决方法:重新配置任务。

报错示例:

"\tCriticalAnyAllException: sqlserver-reader: DTS-52061: Failed to
seek sqlserver position\n" +

DTS-RETRY-ERR-0076:SQLServerException (.*)? The driver could not establish a secure connection to SQL Server by using Secure Sockets Layer

可能原因:数据库实例无法连接。

解决方法:请确保数据库可以正常连接,然后重新启动任务。若异常无法解决,请联系阿里云技术支持人员处理。

报错示例:

"cause:\n" +
     "\tSQLServerException: The driver could not establish a secure connection to SQL Server by using Secure Sockets Layer (SSL) encryption. Error: \"\"Unexpected rethrowing\"\".\n" +

DTS-RETRY-ERR-0077:Increment Context Is Not Running (.*)? please check whether binlog_row_image=FULL

可能原因:Binlog模式错误,DTS服务连接MySQL只支持binlog_row_image='FULL'模式的日志。

解决方法:修改Binlog模式,并在不影响业务的前提条件下清空目标的表数据,然后重新配置任务。修改Binlog模式的方法,请参见DTS-1051007

说明

您需要确保在创建DTS任务前,源库的binlog_row_image参数为FULL

报错示例:

\"dts-k-src:
DTS-52111: Increment Context Is Not Running..: \n" +
 "cause:\n" +
"\tCriticalAnyAllException: mysql-reader: DTS-52210: fetch log
failed\n" +
"\tIOException: java.lang.UnsupportedOperationException:
database:palm_all/table:p_player/charSet:utf8/rdsRowid:false/filter:false/engine:InnoDB/snapshot:16659793***** Null bitmap size check error, binlog
table map has 15 columns, but row event has {0}, please check whether
binlog_row_image=FULL and binlog event Header:

DTS-RETRY-ERR-0078:Fetch records (.*)? times but return empty

可能原因:增量写入模块无法从增量数据采集模块中获取数据。

解决方法:根据增量数据采集模块的报错进行排查,然后重新启动任务。若异常无法解决,请联系阿里云技术支持人员处理。

报错示例:

\"framework: DTS-31009: In process of processing data
(recordRange: 65147****8075******) failed\n" +
"cause:\n" +
    "\tCriticalAnyAllException: common: DTS-10009: capture-dstore:
    DTS-51009: Fetch records 156 times but return empty.\n" +

DTS-RETRY-ERR-0079:execute statement failed (.*)? MySQLSyntaxErrorException

可能原因:目标库不支持报错信息中的SQL语法。

解决方法:请联系阿里云技术支持人员处理。

报错示例:

id=34439****, jobId=z48c4r42s8c****, value={"errMsg":"transaction-replicate: DTS-70004: execute statement failed: /*dts_id=dtsrrrm4ar8v83z6vk*/alter table `xp_ass`.`t_se_db_shop_wi_coef` ADD \ncause:\n\tMySQLSyntaxErrorException: [13000, 2022110222143119216819915303151843457] illegal name, pos 47, line 1, column 48, token EOF","jobId":"hbsk4mjdr83****","maxRetryTime":7200,"module":"writer","retryCount":3,"retryTarget":"destDB","retryTime":4399,"retrying":true}

DTS-RETRY-ERR-0080:Disperse target record field (.*)? unsupported value convert

可能原因:源端和目标端表结构不一致,DTS无法进行类型转换。

解决方法:请修改目标端表结构,使源端和目标端表结构保持一致,然后重新启动任务。

报错示例:

id=34436****, jobId=wm811y74h1q****, value={"errMsg":"transaction-framework: DTS-71001: Disperse target record field updatetime STRING nullable as updatetime failed for record LazyParseRecord {offset [726070057], operationType [INSERT], checkpoint [0@726070057@102578064@1807@1667391476000]}\ncause:\n\tJdbcUtilsException: jdbc-utils: DTS-11001: MysqlTimestampValueDisperse: unsupported value convert for [2022-11-02 20:17:56.0] convert to [updatetime STRING nullable as updatetime]","jobId":"o7x11euhn1d****","maxRetryTime":7200,"module":"writer","retryCount":55,"retryTarget":"destDB","retryTime":546,"retrying":true}

DTS-RETRY-ERR-0081:WSREP has not yet prepared node for application use

可能原因:数据库异常。

解决方法:请恢复数据库,然后重新启动DTS实例。

报错示例:

id=34436****, jobId=s7i127j4225****, value={"errMsg":"WSREP has not yet prepared node for application use@error code:
1047","jobId":"frjr8yzg17z****","maxRetryTime":43200,"module":"reader","retryCount":1503,"retryTarget":"srcDB","
retryTime":15155,"retrying":true}

DTS-RETRY-ERR-0082:Failed to disperse record LazyParseRecord

可能原因:DTS在拼接SQL时出错。

解决方法:请确保源端和目标端表结构保持一致或可兼容,然后重新启动任务。若是同步任务,您可以将报错信息中的表从同步对象移除,然后启动任务。移除同步对象的方法,请参见移除同步对象

报错示例:

id=34441****, jobId=tidd773a278****, value={"errMsg":"transaction-framework: DTS-71001: Failed to disperse record LazyParseRecord {offset [1311857846], operationType [UPDATE], checkpoint [0@1311857846@17610008188031@1667388377000]} in buildWhereClause.\ncause:\n\tTransactionReplicateException: transaction-replicate: DTS-71001: MysqlRelatedTextSqlBuilderTools: record [LazyParseRecord ****

DTS-RETRY-ERR-0083:Error while executing user ETL (.*)? not found in

可能原因:ETL语法错误,导致ETL执行失败。

解决方法:根据报错信息检查ETL语法是否配置正确。

报错示例:

id=34441****, jobId=p4d110p0o25****, value={"errMsg":"ETL: DTS--0001: Error while executing user ETL: starttime not found in cco_consult_platform_0002.web_chat_session_0263\ncause:\n\tRuntimeException: starttime not found in cco_consult_platform_0002.web_chat_session_0263","jobId":"ed611zroy2m****","maxRetryTime":7200,"module":"full","retryCount":14,"retryTarget":"srcDB","retryTime":135,"retrying":true}

DTS-RETRY-ERR-0084:User (.*)? does not have (.*)? privilege on

可能原因:任务配置的数据库账号权限不足。

解决方法:根据报错信息中缺少的权限,给DTS任务使用的账号进行授权。

报错示例:

id=34441****, jobId=r5g11018w2m****, value={"errMsg":"[1528a0144000****][11.202.XX.XX:3053][polardbx]ERR-CODE: [TDDL-5108][ERR_CHECK_PRIVILEGE_FAILED_ON_TABLE] User test@'100.104.XX.XX' does not have 'REPLICATION_CLIENT' privilege on table 'person'. Database is *. @error code:5108","jobId":"fr611dvxq2d****","maxRetryTime":7200,"module":"reader","retryCount":24,"retryTarget":"srcDB","retryTime":220,"retrying":true}

DTS-RETRY-ERR-0085:execute statement failed (.*)? modify decimal column is disabled

可能原因:目标表不允许执行修改列的DDL操作。

解决方法:

  • 方法一:临时允许目标表执行报错信息中的DDL操作。

  • 方法二:在不影响业务且源表执行完相关DDL操作后释放任务,并清空目标库表的数据,然后重新创建任务。

    说明

    同步任务也可以在源表执行完相关DDL操作后,使用修改同步对象功能解决此问题。详情请参见如何解决同步实例关于表的报错?

报错示例:

id=34445****, jobId=qa1u5qhp276****, value={"errMsg":"transaction-replicate: DTS-70004: execute statement failed: /*dts_id=dtsqa1u5qhp276p****/alter table `ectouch_data`.`order_v0_data` modify column `ka_commission_rate` DECIMAL(11, 4) default 0.00 comment 'ka**'\ncause:\n\tSQLException: [15018, 202211030027061921681310090345394****] modify decimal column is disabled, col=ka_commission_rate, oldType=decimal(11,2), newType=decimal(11,4)","jobId":"nd7k53au27e****","maxRetryTime":43200,"module":"writer","retryCount":3104,"retryTarget":"destDB","retryTime":31341,"retrying":true}

DTS-RETRY-ERR-0086:Query execution was interrupted (.*)? max_statement_time exceeded

可能原因:查询SQL语句的运行时间超时。

解决方法:执行set max_statement_time=0命令不限制查询SQL运行的时间,并重新启动任务。

报错示例:

id=34445****, jobId=v4kg7039n3m****, value={"errMsg":"Query execution was interrupted, max_statement_time exceeded@error code:3006","jobId":"wchy7vcw20m****","maxRetryTime":1800,"module":"reader","retryCount":2,"retryTarget":"srcDB","retryTime":3,"retrying":true}

DTS-RETRY-ERR-0087:execute statement failed (.*)? Cannot find the object

可能原因1:目标对象不存在。

解决方法1:检查报错信息中的目标对象是否存在。

可能原因2:任务使用的账号权限不足。

解决方法2:检查任务使用的账号是否具有足够的权限。

报错示例:

id=34447****, jobId=q7j108h020a****, value={"errMsg":"transaction-replicate: DTS-70004: execute statement failed: null\ncause:\n\tSQLServerException: Cannot find the object \"lhrdme-test-client-C01.dbo.send_document_task\" because it does not exist or you do not have permissions.","jobId":"q8i1043620d****","maxRetryTime":86400,"module":"writer","retryCount":163,"retryTarget":"destDB","retryTime":1636,"retrying":true}

DTS-RETRY-ERR-0088:can not find disperser for column

可能原因:目标表和源表的列不兼容。

解决方法:

  • 方法一:检查是否可以通过列映射功能解决问题,详情请参见库表列映射

  • 方法二:在业务允许的前提条件,根据源表结构修改目标库中报错表的结构,然后重新配置任务(重新启动任务无效)。

报错示例:

id=34447****, jobId=tpe1121dl2f****, value={"errMsg":"database-framework: DTS-61001: can not find disperser for column:hold_court_time TIME_WITH_TIMEZONE nullable as hold_court_time of table:public.lms_lc_case valueType= value=null","jobId":"rj9113j7m28****","maxRetryTime":7200,"module":"full","retryCount":161,"retryTarget":"destDB","retryTime":1608,"retrying":true}

DTS-RETRY-ERR-0089:BatchUpdateException (.*)? Cannot insert explicit value for identity column

可能原因:SQL Server表自增字段默认不能插入数据。

解决方法:将报错信息中的表的IDENTITY_INSERT属性修改为ON,然后重新启动任务。

报错示例:

id=34453****, jobId=jn81159sr3m****, value={"errMsg":"common: DTS-11005: Cannot insert explicit value for identity column in table 'Card_Msyy' when IDENTITY_INSERT is set to OFF.\ncause:\n\tBatchUpdateException: Cannot insert explicit value for identity column in table 'Card_Msyy' when IDENTITY_INSERT is set to OFF.","jobId":"gl111n9sb33****","maxRetryTime":7200,"module":"full","retryCount":99,"retryTarget":"destDB","retryTime":2686,"retrying":true}

DTS-RETRY-ERR-0090:The query has timed out

可能原因:源库发生变更,导致无法查询数据。

解决方法:等待DTS自动重试。

报错示例:

id=34450****, jobId=lh9n33tj30o****, value={"errMsg":"The query has timed out.@error code:0","jobId":"b27g31tn30l****","maxRetryTime":43200,"module":"reader","retryCount":27,"retryTarget":"srcDB","retryTime":810,"retrying":true}

DTS-RETRY-ERR-0091:Transaction (.*)? was deadlocked on lock resources with another process

可能原因:数据库事务出现死锁。

解决方法:请联系阿里云技术支持人员处理。

报错示例:

id=34453****, jobId=jn81159sr3m****, value={"errMsg":"common: DTS-11005: Transaction (Process ID 187) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction.\ncause:\n\tSQLServerException: Transaction (Process ID 187) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction.","jobId":"gl111n9sb33****","maxRetryTime":7200,"module":"full","retryCount":1,"retryTarget":"destDB","retryTime":10,"retrying":true}

DTS-RETRY-ERR-0093:get table (.*)? detail info failed (.*)? relation (.*)? does not exist

可能原因:报错信息中的表不存在。

解决方法:检查源库和目标库中否存在报错信息中的表。若目标库中不存在该表,请手动建表后重新启动任务。

报错示例:

id=34488****, jobId=z65o4ny9c1o****, value={"errMsg":"replicate-greenplum: DTS-70002: get table [schema=hobby_om, database=hobby_om, table=tp_3321167_ogl_sys_user] detail info failed.\ncause:\n\tPSQLException: ERROR: relation \"hobby_om.tp_3321167_ogl_sys_user\" does not exist\n  Position: 15","jobId":"jdag45haa17****","maxRetryTime":7200,"module":"writer","retryCount":62,"retryTarget":"destDB","retryTime":615,"retrying":true}

DTS-RETRY-ERR-0097:execute statement failed (.*)? unsupported delete without primary keys defined

可能原因:待同步或迁移的表不具备主键或唯一约束。

解决方法:为待同步或迁移的表需添加主键或唯一约束,然后重新启动任务。

报错示例:

id=34484****, jobId=l69119srl3n****, value={"errMsg":"transaction-replicate: DTS-70004: execute statement failed: /*dts_id=dtss6x11x32l3858ap*/delete from `zx`.`tb_abc` where `a` = 7 and `b` = 7 and `c` = 7 and `d` = 7\ncause:\n\tSQLException: ADB30Engine(1): meet error, deleteSQL:/*dts_id=dtss6x11x32l3858ap*/delete from `zx`.`tb_abc` where `a` = 7 and `b` = 7 and `c` = 7 and `d` = 7, error detail message:[15018, 2022110315214019216806122303453480359] table => zx.tb_abc unsupported delete without primary keys defined\n\tSQLException: [15018, 2022110315214019216806122303453480359] table => zx.tb_abc unsupported delete without primary keys defined","jobId":"zyu118d2u31****","maxRetryTime":7200,"module":"writer","retryCount":11,"retryTarget":"destDB","retryTime":101,"retrying":true}

DTS-RETRY-ERR-0098:get table (.*)? detail info failed (.*)? The specified topic does not exist

可能原因:DataHub的Topic不存在。

解决方法:请检查报错信息中的Topic是否存在,若不存在请创建Topic,并重新启动任务。创建Topic的操作,请参见Topic操作

报错示例:

id=34474****, jobId=oh811gu0n14****, value={"errMsg":"replicate-datahub: DTS-70002: get table [bobo_data.bill_record] detail info failed.\ncause:\n\tResourceNotFoundException: [httpStatus:404, requestId:20221103112918ae38dc0b7925****, errorCode:NoSuchTopic, errorMessage:The specified topic does not exist.]","jobId":"z3w1153fq1o****","maxRetryTime":7200,"module":"writer","retryCount":4,"retryTarget":"destDB","retryTime":30,"retrying":true}

DTS-RETRY-ERR-0099:execute statement failed (.*)? column (.*)? is not nullable

可能原因:目标端写入值为null的列具有非空约束。

解决方法:去除目标端报错列的非空约束,然后重新启动任务。

报错示例:

 id=34470****, jobId=db411ak8d33****, value={"errMsg":"transaction-replicate: DTS-70004: execute statement failed: /*dts_id=dtspfb11r2bq3qj*****/replace into `jlg`.`new_collect_wxprefe` (`upload_time`,`upload_id`,`robot_id`,`jlg_wx_id`,`name`,`link`,`pid`,`origin_id`,`worktype_id`,`id`) values (null, 0, 0, 54842, '****', '', -1, 0, '', 2309713)\ncause:\n\tSQLException: ADB30Engine(22): meet error, insertSQL:/*dts_id=dtspfb11r2bq3qj****/replace into `jlg`.`new_collect_wxprefe` (`upload_time`,`upload_id`,`robot_id`,`jlg_wx_id`,`name`,`link`,`pid`,`origin_id`,`worktype_id`,`id`) values (null, 0, 0, 54842, '****', '', -1, 0, '', 2309713), error detail message:[15018, 2022110310293219216812802603151898161] syntax error :column 'NEW_COLLECT_WXPREFE.UPLOAD_TIME' is not nullable, can not set null\n\tSQLException: [15018, 2022110310293219216812802603151898161] syntax error :column 'NEW_COLLECT_WXPREFE.UPLOAD_TIME' is not nullable, can not set null","jobId":"ozn11934r3e****","maxRetryTime":7200,"module":"writer","retryCount":58,"retryTarget":"destDB","retryTime":573,"retrying":true}

DTS-RETRY-ERR-0100:execute statement failed (.*)? rename table (.*)? target table (.*)? already exists

可能原因:RENAME的目标表名称已存在,无法执行RENAME操作。

解决方法:请确认报错信息中重名的表是否可以删除。若可以删除,请删除该表并重新启动任务。

报错示例:

id=34497****, jobId=q3d10wi911k****, value={"errMsg":"transaction-replicate: DTS-70004: execute statement failed: /*dts_id=dtswg2p8k1ve9ko****/rename table `sdinfo`.`sd_manager_group` to `sdinfo`.`sd_manager_grop_1103`\ncause:\n\tSQLException: [15018, 2022110321094219216822816803453937381] target table sdinfo.sd_manager_grop_1103 already exists","jobId":"e9u10c7k11y****","maxRetryTime":1800,"module":"writer","retryCount":179,"retryTarget":"destDB","retryTime":1972,"retrying":true}

DTS-RETRY-ERR-0101:execute statement failed (.*)? The MySQL server is running with the LOCK_WRITE_GROWTH option

可能原因:目标端磁盘空间不足。

解决方法:升级目标端的磁盘空间,然后重新启动任务。

报错示例:

id=34490****, jobId=woqu1l38176****, value={"errMsg":"transaction-replicate: DTS-70003: 22 execute transaction has excess max transaction retry time [150] cause:transaction-replicate: DTS-70004: execute statement failed, may try it again\ncause:\n\tRecoverableAnyAllException: transaction-replicate: DTS-70004: execute statement failed, may try it again\n\tSQLException: MysqlEngine(22): meet error, insertSQL:/* DTS-writer-vwqv11b6176****-MysqlEngine(22) */insert into `bi`.`b_resource_usage` (`created_time`,`updated_time`,`user_id`,`usage`,`resource_id`,`id`,`collect_day`,`accounting_day`)  VALUES  ('2022-02-12 06:00:00.0', '2022-02-12 06:00:00.0', x'53454C462D386F7855365F7173756452663438434B556A4B3351727A506A5873325135694B31674B79787674622D5041', 0, 4, 40386002, '2022-02-12', '2022-02-11') , error detail message:The MySQL server is running with the LOCK_WRITE_GROWTH option so it cannot execute this statement\n\tSQLException: The MySQL server is running with the LOCK_WRITE_GROWTH option so it cannot execute this statement","jobId":"vwqv11b6176****","maxRetryTime":43200,"module":"writer","retryCount":215,"retryTarget":"destDB","retryTime":4892,"retrying":true}

DTS-RETRY-ERR-0102:execute statement failed (.*)? IDENTITY_INSERT is already ON for table

可能原因:DTS实例只允许一个表将IDENTITY_INSERT属性设置为ON,而当前已有表将IDENTITY_INSERT属性设置为ON。

解决方法:将实例的sink.batch.enable参数设置为false后重新启动任务。设置方法,请参见修改实例参数

报错示例:

id=34493****, jobId=jn81159sr3m****, value={"errMsg":"transaction-replicate: DTS-70004: execute statement failed: /*euy110qoz3vv6ywSQLServerPrepareStatementSqlEngine(30)*/delete top(1) from [HTOLMain].[dbo].[Cl_Order] where [OrderID] = ?\ncause:\n\tSQLServerException: IDENTITY_INSERT is already ON for table 'HTOLMain.dbo.Cl_Order'. Cannot perform SET operation for table 'HTOLMain.dbo.Cl_OrderItem'.","jobId":"euy110qoz3v****","maxRetryTime":7200,"module":"writer","retryCount":143,"retryTarget":"destDB","retryTime":1429,"retrying":true}

DTS-RETRY-ERR-0103:execute statement failed (.*)? column (.*)? of relation (.*)? does not exist

可能原因:目标端的表缺少列。

解决方法:根据源端的表结构和报错信息,在目标表中添加缺少的列,然后重新启动任务。

报错示例:

id=34488****, jobId=a3y11921r1e****, value={"errMsg":"transaction-replicate: DTS-70004: execute statement failed: /*f3l11pceo1h85zi29*/insert into default$default.\"_QuestionTypesToQuestions\" (a,b) values(?, ?)\ncause:\n\tPSQLException: ERROR: column \"a\" of relation \"_QuestionTypesToQuestions\" does not exist\n  Position: 79","jobId":"f3l11pceo1h****","maxRetryTime":7200,"module":"writer","retryCount":143,"retryTarget":"destDB","retryTime":1436,"retrying":true}

DTS-RETRY-ERR-0104:The transaction log for database (.*)? is full

可能原因:数据库的事务日志存储空间或磁盘空间已满。

解决方法:扩容事务日志存储空间或磁盘空间,然后重新启动任务。

报错示例:

id=34523****, jobId=f9q11u7qs3w****, value={"errMsg":"common: DTS-11005: The transaction log for database 'HTOLMain' is full due to 'AVAILABILITY_REPLICA'.\ncause:\n\tSQLServerException: The transaction log for database 'HTOLMain' is full due to 'AVAILABILITY_REPLICA'.","jobId":"fg6119hpu3f****","maxRetryTime":7200,"module":"full","retryCount":10,"retryTarget":"destDB","retryTime":251,"retrying":true}

DTS-RETRY-ERR-0105:Could not allocate space for object

可能原因:目标端磁盘空间已满。

解决方法:升级目标端的磁盘空间,然后重新启动任务。

报错示例:

id=34523****, jobId=f9q11u7qs3w****, value={"errMsg":"common: DTS-11005: Could not allocate space for object 'dbo.Cl_OrderItem'.'ix_orderitem_productId' in database 'HTOLMain' because the 'PRIMARY' filegroup is full. Create disk space by deleting unneeded files, dropping objects in the filegroup, adding additional files to the filegroup, or setting autogrowth on for existing files in the filegroup.\ncause:\n\tSQLServerException: Could not allocate space for object 'dbo.Cl_OrderItem'.'ix_orderitem_productId' in database 'HTOLMain' because the 'PRIMARY' filegroup is full. Create disk space by deleting unneeded files, dropping objects in the filegroup, adding additional files to the filegroup, or setting autogrowth on for existing files in the filegroup.","jobId":"fg6119hpu3f****","maxRetryTime":7200,"module":"full","retryCount":102,"retryTarget":"destDB","retryTime":2663,"retrying":true}

DTS-RETRY-ERR-0106:Failed to seek sqlserver position (.*)? Fetch backup log failed (.*)? seek binlog for timestamp

可能原因:任务刚启动时SQLServer根据lsn找不到日志。

解决方法:调整备份频率,修改为与数据备份一致修改备份频率

报错示例:

  • 找不到位点:

    \"dts-k-src: DTS-52102: retry final failed\n" +
                    "cause:\n" +
                    "\tRecoverableAnyAllException: dts-k-src: DTS-52110: SQLServerRecordExtractor Init Error: sqlserver-reader: DTS-52061: Failed to seek sqlserver position\n" +
                    "\tCriticalAnyAllException: sqlserver-reader: DTS-52061: Failed to seek sqlserver position\n" +
                    "\tCriticalAnyAllException: sqlserver-reader: DTS-52411: Fetch backup log failed\n" +
                    "\tCriticalAnyAllException: sqlserver-reader: DTS-52061: seek binlog for timestamp 1666324457\"
  • 无效的scn:

    Fetch *** SQL Server backup log faild, fetch ls  ***

DTS-RETRY-ERR-0107:Fetch (.*)? SQL Server backup log faild (.*)? fetch ls

可能原因:任务运行过程中SQLServer根据lsn找不到日志。

解决方法:调整备份频率,修改为与数据备份一致修改备份频率

报错示例:

  • 找不到位点

    \"dts-k-src: DTS-52102: retry final failed\n" +
                    "cause:\n" +
                    "\tRecoverableAnyAllException: dts-k-src: DTS-52110: SQLServerRecordExtractor Init Error: sqlserver-reader: DTS-52061: Failed to seek sqlserver position\n" +
                    "\tCriticalAnyAllException: sqlserver-reader: DTS-52061: Failed to seek sqlserver position\n" +
                    "\tCriticalAnyAllException: sqlserver-reader: DTS-52411: Fetch backup log failed\n" +
                    "\tCriticalAnyAllException: sqlserver-reader: DTS-52061: seek binlog for timestamp 1666324457\"
  • 无效的scn

    Fetch *** SQL Server backup log faild, fetch ls  ***

DTS-RETRY-ERR-0108:Column (.*)? For input string

可能原因:报错信息中字段的数据格式错误。

解决方法:请在目标端修改报错字段的数据格式,然后重新启动任务。

报错示例:

**** (Column => PMS_GOODS.RETAIL_INV_BUFFER), For input string: "0.4300"
    SQLException: [15018, 2022110322280517202801611203151004951] (Column => PMS_GOODS.RETAIL_INV_BUFFER), For input string: "0.4300"

DTS-RETRY-ERR-0109:In process of processing data (.*)? failed (.*)? Column (.*)? not found

可能原因:目标端的表缺少列。

解决方法:根据源端的表结构和报错信息,在目标表中添加缺少的列,然后重新启动任务。

报错示例:

\"framework: DTS-31009: In process of processing data (recordRange: 627098562752151552) failed\n" +
                "cause:\n" +
                "\tCriticalAnyAllException: common: DTS-11005: Column \"\"1658159900711\"\" not found [42122-193]\n" +
                "\tDbException: Column \"\"1658159900711\"\" not found [42122-193]\n" +
                "\tJdbcSQLException: Column \"\"1658159900711\"\" not found [42122-193]\"

DTS-RETRY-ERR-0110:In process of processing data (.*)? failed (.*)? RedisServerException (.*)? Slave connection closed by source redis

可能原因:源端连接已断开。

解决方法:请检查源端数据库健康状态,并适当调大client-output-buffer-limit slave

说明

您可以执行config set client-output-buffer-limit 'slave 0 0 0'命令,关闭复制输出缓冲区的限制。

报错示例:

jobId=fo710zuy27x****, code=04, errMsg=framework: DTS-31009: In process of processing data (recordRange: 278730492608512) failed
cause:
    RedisServerException: redis: DTS-10015: Slave connection closed by source redis, please read /var/log/messages and redis server logs to find which caused this error.The most probable reason is insufficient memory, storage or slave output buffer(config set client-output-buffer-limit 'slave X X X').
    RedisCannotRetryException: redis: DTS-10009: Read 1037 bytes , but only 374 already read.
    IOException: Read 1037 bytes , but only 374 already read.

DTS-RETRY-ERR-0111:execute statement failed (.*)? null value in column (.*)? violates not-null constraint

可能原因:任务运行过程中有非法数据产生。

解决方法:请检查目标端和源端的表结构是否一致。

报错示例:

jobId=a5oe7ffq12v****, code=07, errMsg=transaction-replicate: DTS-70004: execute statement failed: /*a5oe7ffq12vy4*****/insert into "resico_ods"."crm_cooperated_zlb" ("id","customer_id","zlb_info","remark","delete_flag","created_by","created_at","updated_by","updated_at","version","entp_name") values(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
cause:
    PSQLException: ERROR: null value in column "customer_id" violates not-null constraint  (seg3 172.26.254.254:4001 pid=308567)
  Detail: Failing row contains (158738364208513****, null, {"authAt":"2022-11-01 17:58:38","customerId":"15611694496311****..., null, 0, 0, 2022-11-01 17:58:47, 0, 2022-11-01 17:58:47+08, 0, ****).

DTS-RETRY-ERR-0112:execute statement failed (.*)? null value in column (.*)? For input string

可能原因:任务运行过程中有非法数据产生。

解决方法:请检查目标端和源端的表结构是否一致。

报错示例:

jobId=jg910k6427x****, code=07, errMsg=transaction-replicate: DTS-70004: execute statement failed: /*dts_id=dtsb5r10cq5265*****/replace into `kuaishou_ad_dev`.`rel_ks_creative_master_account` (`master_id`,`account_id`,`updated_at`,`created_at`,`id`,`deleted_at`) values (3, 9999999999999, '2022-10-31 17:53:46.0', '2022-10-31 17:53:46.0', 28, null)
cause:
    SQLException: ADB30Engine(25): meet error, insertSQL:/*dts_id=dtsb5r10cq5265*****/replace into `kuaishou_ad_dev`.`rel_ks_creative_master_account` (`master_id`,`account_id`,`updated_at`,`created_at`,`id`,`deleted_at`) values (3, 9999999999999, '2022-10-31 17:53:46.0', '2022-10-31 17:53:46.0', 28, null), error detail message:[15018, 2022110118193219216818212703151020339] (Column => REL_KS_CREATIVE_MASTER_ACCOUNT.ACCOUNT_ID), For input string: "9999999999999"
    SQLException: [15018, 2022110118193219216818212703151020339] (Column => REL_KS_CREATIVE_MASTER_ACCOUNT.ACCOUNT_ID), For input string: "9999999999999"

DTS-RETRY-ERR-0113:table not exist

可能原因:目标库中不存在报错信息中的表。

解决方法:检查目标端是否存在报错信息中的表,若不存在:

  • 方法一:如果是同步任务,可以使用修改同步对象功能将报错的表从同步对象中移除,详情请参见移除同步对象

  • 方法二:手动在目标库创建与源库相同结构的表,然后重新启动任务。

报错示例:

SQLException: ADB30Engine(2): meet error, insertSQL:/*dts_id=dtsd4f12w00f8t*****/replace into `test_lianxi`.`ltkanduoduo1_full_att_realtime_std_hourly_report_v1` (`date`,`adgroup_id`,`hijack_agent_account_id`,`lowage_tuid_num`,`created_at`,`is_hijack`,`member_order_num`,`active_1day`,`hour`,`updated_at`,`last_week_active`,`id`,`campaign_id`,`create_role_num`,`url_report_num`,`dtu`,`os`,`cp_report_num`,`active`,`consumption`,`start_play_num`,`app_register_num`,`agent_account_id`,`ad_id`,`new_user_pass_num`,`login_num`,`key_action_num`,`yesterday_active`,`consumption_real`) values ('2022-11-01', 'att_4900014', 6, 0, '2022-11-01 17:00:07', 0, 0, 1, 17, '2022-11-01 17:15:16', 0, 146183, 'att_4900014', 0, 0, '4900014', 0, 0, 0, 0.00, 0, 0, 6, 'att_4900014', 0, 0, 0, 0, 0.00)error detail message:[15018, 2022110117151619216817607303151114839] table not exist => test_lianxi.ltkanduoduo1_full_att_realtime_std_hourly_report_v1
    SQLException: [15018, 2022110117151619216817607303151114839] table not exist => test_lianxi.ltkanduoduo1_full_att_realtime_std_hourly_report_v1

DTS-RETRY-ERR-0114:execute statement failed (.*)? Unknown column (.*)? in

可能原因:目标表中缺少列。

解决方法:在目标表中添加缺少的列,然后重新启动任务。

报错示例:

jobId=vme10ye5l8x****, code=07, errMsg=transaction-replicate: DTS-70004: execute statement failed: /* DTS-writer-vme10ye5l8xjbx7-MysqlEngine(29) */delete from `alt_coupon`.`report_coupon_order_statistics` WHERE `date` = '2022-10-31' and `ordamount` = 166050 and `usemem` = 45 and `expirecon` = 29573 and `allcon` = 21180 and `ordmem` = 45 and `coupon_name` = x'E887AAE58AA9E782B9E9A490E5858DE9858DE588B8' and `payamount` = 143550 and `usecon` = 45 and `__#alibaba_rds_row_id#__` = 14030 and `coupon_id` = 60 and `allmem` = 8470 and `ordcon` = 45 limit 1
cause:
    SQLException: MysqlEngine(29): meet error, deleteSQL:/* DTS-writer-vme10ye5l8xjbx7-MysqlEngine(29) */delete from `alt_coupon`.`report_coupon_order_statistics` WHERE `date` = '2022-10-31' and `ordamount` = 166050 and `usemem` = 45 and `expirecon` = 29573 and `allcon` = 21180 and `ordmem` = 45 and `coupon_name` = x'E887AAE58AA9E782B9E9A490E5858DE9858DE588B8' and `payamount` = 143550 and `usecon` = 45 and `__#alibaba_rds_row_id#__` = 14030 and `coupon_id` = 60 and `allmem` = 8470 and `ordcon` = 45 limit 1error detail message:Unknown column '__#alibaba_rds_row_id#__' in 'where clause'
    SQLSyntaxErrorException: Unknown column '__#alibaba_rds_row_id#__' in 'where clause'

DTS-RETRY-ERR-0123:The server principal (.*)? is not able to access the database (.*)? under the current security context

可能原因:获取元数据信息失败。

解决方法:请检查任务使用的数据库账号权限是否满足要求,并检查源库中的表是否存在。

报错示例:

\"common: DTS-11005: framework: DTS-31008: fetch column info from target table [U8CLOUD32CS].[dbo].[po_settlebill_b] failed\n" +
                "cause:\n" +
                "\tAnyCoreException: framework: DTS-31008: fetch column info from target table [U8CLOUD32CS].[dbo].[po_settlebill_b] failed\n" +
                "\tRuntimeException: com.microsoft.sqlserver.jdbc.SQLServerException: The server principal \"\"erp_user\"\" is not able to access the database \"\"U8CLOUD32CS\"\" under the current security context.\n" +
                "\tSQLServerException: The server principal \"\"erp_user\"\" is not able to access the database \"\"U8CLOUD32CS\"\" under the current security context.\"

DTS-RETRY-ERR-0124:Change data capture is only available in the Enterprise

可能原因:当前SQL Server实例不支持开启CDC(Change Data Capture,变更数据捕获)。

解决方法:检查该实例版本是否支持开启CDC。

报错示例:

This instance of SQL Server is the Web Edition (64-bit). Change data capture is only available in the Enterprise, Developer, Enterprise Evaluation, and Standard editions.

DTS-RETRY-ERR-0125:MongoCommandException (.*)? interrupted at shutdown

可能原因:MongoDB实例状态异常。

解决方法:请检查MongoDB实例是否运行正常。

报错示例:

\"common: DTS-11005: com.mongodb.MongoCommandException: Command failed with error 11600: 'interrupted at shutdown' on server 172.19.XX.XX:XXX. The full response is { \"\"ok\"\" : 0.0, \"\"errmsg\"\" : \"\"interrupted at shutdown\"\", \"\"code\"\" : 11600, \"\"codeName\"\" : \"\"InterruptedAtShutdown\"\" }\n" +
                "cause:\n" +
                "\tSQLException: com.mongodb.MongoCommandException: Command failed with error 11600: 'interrupted at shutdown' on server 172.19.XX.XX:XXX. The full response is { \"\"ok\"\" : 0.0, \"\"errmsg\"\" : \"\"interrupted at shutdown\"\", \"\"code\"\" : 11600, \"\"codeName\"\" : \"\"InterruptedAtShutdown\"\" }\n" +
                "\tMongoCommandException: Command failed with error 11600: 'interrupted at shutdown' on server 172.19.XX.XX:XXX. The full response is { \"\"ok\"\" : 0.0, \"\"errmsg\"\" : \"\"interrupted at shutdown\"\", \"\"code\"\" : 11600, \"\"codeName\"\" : \"\"InterruptedAtShutdown\"\" }\"

DTS-RETRY-ERR-0126:MongoCommandException (.*)? Index must have unique name

可能原因:需要创建的索引已经存在,无法重复创建。

解决方法:检查是否有同名的索引。若有可以删除的同名索引,请删除后重新启动任务。

报错示例:

com.mongodb.MongoCommandException: Command failed with error 86: 'Index must have unique name. The existing index: { v: 2, key: { fund_wallet_id: 1 }, name: "fund_wallet_id_1", ns: "airmart-watbg-prod.funds_pools", background: true } has the same name as the requested index: { v: 2, key: { fund_wallet_id: -1 }, name: "fund_wallet_id_1", ns: "airmart-watbg-prod.funds_pools", background: true }' on server 172.19.XX.XX:XXX. The full response is { "raw" : { "mgset-62336776/10.42.XX.XX:XXX,10.42.XX.XX:XXX" : { "ok" : 0.0, "errmsg" : "Index must have unique name.****

DTS-RETRY-ERR-0127:MongoCommandException (.*)? cloud instance error (.*)? disk locked

可能原因:MongoDB实例的磁盘被锁定,无法写入数据。

解决方法:检查MongoDB实例的磁盘空间是否已满,若磁盘空间已满尝,请扩容实例并重新启动任务。

报错示例:

\"common: DTS-11005: com.mongodb.MongoCommandException: Command failed with error 13: 'cloud instance error, disk locked, plz check and upgrade your disk quota, extra info: not authorized on xmol to execute command { insert: \"\"thesisRedirectLogs\"\", ordered: true, bypassDocumentValidation: true, $db: \"\"xmol\"\" }' on server 172.16.19.23:42976. The full response is { \"\"operationTime\"\" : { \"\"$timestamp\"\" : { \"\"t\"\" : 1666348500, \"\"i\"\" : 3392 } }, \"\"ok\"\" : 0.0, \"\"errmsg\"\" : \"\"cloud instance error, disk locked, plz check and upgrade your disk quota, extra info: ****

DTS-RETRY-ERR-0128:Unknown database

可能原因:数据库不存在。

解决方法:创建报错信息中的数据库,并重新启动任务。

报错示例:

jobId=sw01037i31w****, code=04, errMsg=com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown database 'table3'

DTS-RETRY-ERR-0129:The table (.*)? is full

可能原因1:目标实例的磁盘空间已满。

解决方法1:扩容目标实例并重新启动任务。若为自建MySQL数据库,请参考如下步骤处理;若为RDS MySQL数据库,请升级配置,详情请参见变更配置

  1. 登录自建MySQL数据库。

  2. 在配置文件my.ini中,查看数据的存储路径(即datadir后的路径)。

  3. 进入数据存储路径,清理硬盘空间。

    警告

    请谨慎执行,以免误删数据,从而导致数据丢失。

  4. 重启MySQL数据库,然后重新启动DTS任务。

报错示例1:

jobId=zoa119hcy3m****, code=03, errMsg=framework: DTS-30011: currentRunningSQL: /* DTS-full-zoa119hcy3m**** */insert ignore into `statistics`.`t_mem_keyword_log`(`createtime`,`keyword_id`,`mem_id`,`ip`,`channel`,`id`,`source`,`TYPE`) VALUES (?,?,?,?,?,?,?,?), reason: The table 't_mem_keyword_log' is full
cause:
    BatchUpdateException: The table 't_mem_keyword_log' is full
    SQLException: The table 'DTSTEST' is full

可能原因2:临时表达到使用上限。

解决方法2:适当调大临时表的限制。若为自建MySQL数据库,请参考如下步骤处理;若为RDS MySQL数据库,请在参数值范围内适当调大tmp_table_sizemax_heap_table_size的运行参数值,详情请参见修改实例参数

  1. 登录自建MySQL数据库。

  2. 检查配置文件my.initmp_table_sizemax_heap_table_size的参数值。

    说明

    tmp_table_sizemax_heap_table_size的默认值均为16 MB。

    • 若参数不存在(即为默认值):在配置文件my.ini[mysqld]下方添加如下示例代码:

      tmp_table_size = 256M
      max_heap_table_size = 256M
    • 若参数值较小:适当调大参数值。

  3. 重启MySQL数据库,然后重新启动DTS任务。

报错示例2:

You are using the MEMORY (HEAP) storage engine; in this case you need to increase the value of the max_heap_table_size system variable. See Section 5.1.3, “Server System Variables”.
ERROR 1114 (HY000) at line 1720: The table 'XXXX' is full

DTS-RETRY-ERR-0130:BatchUpdateException (.*)? entry too large

可能原因:写入的数据量过大,超过设置的值。

解决方法:将max_allowed_packet参数的值设置的满足要求。

报错示例:如下报错信息,表示写入的数据量(7956719)过大,超过了设置的值(6291456)。

jobId=t7s100u5319****, code=03, errMsg=framework: DTS-30011: currentRunningSQL: /* DTS-full-t7s100u5319**** */insert ignore into `dcr_file_service`.`t_file_task`(`reason`,`company_id`,`create_time`,`entity_name`,`user_name`,`end_time`,`remark`,`sort`,`type`,`finish_time`,`enabled_flag`,`start_time`,`update_time`,`update_user`,`user_code`,`user_id`,`id`,`create_user`,`json_param`,`status`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?), reason: entry too large, the max entry size is 6291456, the size of data is 7956719
cause:
    BatchUpdateException: entry too large, the max entry size is 6291456, the size of data is 7956719
    SQLException: entry too large, the max entry size is 6291456, the size of data is 7956719

DTS-RETRY-ERR-0131:BatchUpdateException (.*)? No space left on device

可能原因:DTS磁盘空间已满。

解决方法:请联系阿里云技术支持人员处理。

报错示例:

jobId=wb611p3ef1h****, code=03, errMsg=framework: DTS-30011: currentRunningSQL: /* DTS-full-wb611p3ef1h**** */insert ignore into `dcs_ford_sale`.`tm_dcc_alloc_price_bak11`(`id`,`material_id`,`dealer_id`,`price_type`,`buy_type`,`origin`,`eff_date_from`,`eff_date_to`,`price`,`qty`,`qty_remain`,`status`,`psbi_create_date`,`create_date`,`update_date`,`ver`,`ver_date`,`update_by`,`src`,`sap_no`,`invoice_company`,`contract_no`,`xx_price_type`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?), reason: Can't create/write to file '/tmp/MLHer8ya' (OS errno 28 - No space left on device)
cause:
    BatchUpdateException: Can't create/write to file '/tmp/MLHer8ya' (OS errno 28 - No space left on device)
    SQLException: Can't create/write to file '/tmp/MLHer8ya' (OS errno 28 - No space left on device)

DTS-RETRY-ERR-0133:fetch column info from target table (.*)? failed (.*)? Invalid object name

可能原因:目标库中报错信息中的表不存在。

解决方法:在目标库中根据报错信息和源库中的表信息创建表,然后重新启动任务。

报错示例:

jobId=sbl11ksji16****, code=03, errMsg=common: DTS-11005: framework: DTS-31008: fetch column info from target table [datang].[dbo].[SheBao_Source_1] failed
cause:
    AnyCoreException: framework: DTS-31008: fetch column info from target table [datang].[dbo].[SheBao_Source_1] failed
    RuntimeException: com.microsoft.sqlserver.jdbc.SQLServerException: Invalid object name 'datang.dbo.SheBao_Source_1'.
    SQLServerException: Invalid object name 'datang.dbo.SheBao_Source_1'.

DTS-RETRY-ERR-0134:fetch column info from target table (.*)? failed

可能原因1:目标表缺少列,导致DTS获取列信息失败。

解决方法1:请确保报错信息中的表中存在相应的列,然后重新启动任务。

可能原因2:DTS任务使用的数据库账号权限不足,导致DTS获取列信息失败。

解决方法2:请确保任务中使用的数据库账号有该表的读写权限,然后重新启动任务。

可能原因3:目标实例max_stack_depth的参数值过小。

解决方法3:请适当调大目标实例max_stack_depth的参数值,然后重新启动任务。RDS PostgreSQL数据库修改参数的方法,请参见设置实例参数

可能原因4:Elasticsearch中的目标索引为滚动索引。

解决方法4:DTS暂不支持滚动索引。

可能原因5:目标表中存在与源表精度不兼容的列。

解决方法5:请检查源表与目标表列的精度,并根据实际情况修改目标表的精度,然后重新启动任务。

报错示例:

jobId=im6t3ajs21m****, code=03, errMsg=common: DTS-11005: framework: DTS-31008: fetch column info from target table dts_work.exercise_question_links failed
cause:
    AnyCoreException: framework: DTS-31008: fetch column info from target table dts_work.exercise_question_links failed
    NullPointerException: null

DTS-RETRY-ERR-0135:Packet for query is too large max_allowed_packet

可能原因:max_allowed_packet的值小于packet的实际值。

解决方法:请确保max_allowed_packet的值设置的大于packet的实际值,然后重新启动任务。

报错示例:

"framework: DTS-30011: currentRunningSQL: /* DTS-full-akl10d9m27u**** */insert ignore into `zeda`.`log`(`response_data`,`respond_message`,`ua_client`,`request_message`,`ip`,`module`,`ua_os`,`type`,`router`,`request_time`,`user_id`,`p_router`,`ua_device`,`response_time`,`id`,`api`,`username`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?), reason: Packet for query is too large (74,694,508 > 67,108,864). You can change this value on the server by setting the 'max_allowed_packet' variable.
cause:
    BatchUpdateException: Packet for query is too large (74,694,508 > 67,108,864). You can change this value on the server by setting the 'max_allowed_packet' variable.
    PacketTooBigException: Packet for query is too large (74,694,508 > 67,108,864). You can change this value on the server by setting the 'max_allowed_packet' variable."

DTS-RETRY-ERR-0136:Get db all schemas error (.*)? Query execution was interrupted

可能原因:查询源库Schema超时。

解决方法:请重新启动任务。

报错示例:

DTS-1020009 Get db all schemas error,err msg:Query execution was interrupted, maximum statement execution time exceeded

DTS-RETRY-ERR-0137:Increment Context Is Not Running (.*)? DTS-52710 (.*)? log fetch failed

可能原因:根据时间戳拉取oplog失败。

解决方法:请确保local库的oplog.rs存在,并调大拉取oplog的时间,并重新配置任务。

说明

DTS不支持单机版MongoDB为源的增量任务。

报错示例:

jobId=x4l112aas19****, code=15, errMsg=dts-k-src: DTS-52111: Increment Context Is Not Running..:
cause:
    CriticalAnyAllException: mongo-reader: DTS-52710: log fetch failed
    CriticalAnyAllException: mongo-reader: DTS-52702: First Record Timestamp not correct, startPosition is : Timestamp{value=7160854279467565057, seconds=1667266311, inc=1}, record ts is : null

DTS-RETRY-ERR-0138:Increment Context Is Not Running (.*)? DTS-52233 (.*)? Invalid row format

可能原因:binlog_format的参数值不为row。

解决方法:请将binlog_format的参数值设置为row,并使用KILL命令关闭源库所有的Session,然后重新配置任务。

报错示例:

jobId=v2o117kyi13****, code=15, errMsg=dts-k-src: DTS-52111: Increment Context Is Not Running..:
cause:
    CriticalAnyAllException: mysql-reader: DTS-52210: fetch log failed
    IOException: mysql-reader: DTS-52233: Invalid row format : "INSERT INTO `apowo_manager_log` (`user`, `time`, `cname`, `c`, `m`, `uri`, `get`, `post`) VALUES ('zhangzhicheng', 1667284446, '****', 'activityconfig', 'repush', 'activityconfig/repush/22073', '[]', '[]')"
    CriticalAnyAllException: mysql-reader: DTS-52233: Invalid row format : "INSERT INTO `apowo_manager_log` (`user`, `time`, `cname`, `c`, `m`, `uri`, `get`, `post`) VALUES ('zhangzhicheng', 1667284446, '****', 'activityconfig', 'repush', 'activityconfig/repush/22073', '[]', '[]')"

DTS-RETRY-ERR-0139:Increment Context Is Not Running (.*)? First Record Timestamp not correct

可能原因:源库的Binlog已不存在,导致DTS增量数据采集获取不到对应数据。

解决方法:请重新配置任务。

报错示例:

\"bisId【e3g10360215****】run fail by 【****】,errorMsg:cluster [q4110pkw21t****] for channel [e3g10360215****] status [failed] is abnormal. errMsg:dts-k-src: DTS-52111: Increment Context Is Not Running..: \n" +
                "cause:\n" +
                "\tCriticalAnyAllException: mongo-reader: DTS-52710: log fetch failed\n" +
                "\tCriticalAnyAllException: mongo-reader: DTS-52702: First Record Timestamp not correct, startPosition is : Timestamp{value=7156853964107939841, seconds=1666334915, inc=1}, record ts is : null\"

DTS-RETRY-ERR-0140:Mirror Meta error (.*)? table or view does not exist

可能原因1:表或者视图不存在 。

解决方法1:请检查对应表或者视图是否存在。

可能原因2:任务使用的数据库账号权限不足 。

解决方法2:检查任务使用的账号是否有对应表或者视图的读取权限。

报错示例:

jobId=s9v11f9at1f****, code=15, errMsg=dts-k-src: DTS-52102: retry final failed
cause:
    RecoverableAnyAllException: dts-k-src: DTS-52110: OracleRecordExtractor Init Error: oracle-reader: DTS-52050: Mirror Meta error,
    CriticalAnyAllException: oracle-reader: DTS-52050: Mirror Meta error,
    CriticalAnyAllException: oracle-reader: DTS-52050: Mirror meta failed
    CriticalAnyAllException: oracle-reader: DTS--0002: Can not create connection to source database, case by ORA-00942: table or view does not exist

    SQLSyntaxErrorException: ORA-00942: table or view does not exist

DTS-RETRY-ERR-0141:This type of SQL is not supported by group shard

可能原因:源库执行的SQL在目标库group shard不支持。

解决方法:

  • 同步任务:

    • 方法一:使用修改同步对象功能将对应的表从同步对象中移除,详情请参见移除同步对象

    • 方法二:确认是否可以将对应SQL跳过。若不可以,请重新配置任务。

  • 迁移任务:确认是否可以将对应SQL跳过。若不可以,请重新配置任务。

报错示例:

\"dts-k-src: DTS-52102: retry final failed\n" +
                "cause:\n" +
                "\tRecoverableAnyAllException: dts-k-src: DTS-52110: MySQLRecordExtractor Init Error: mysql-reader: DTS-52060: initial fetch position failed\n" +
                "\tCriticalAnyAllException: mysql-reader: DTS-52060: initial fetch position failed\n" +
                "\tIOException: java.sql.SQLException: Proxy ERROR: This type of SQL is not supported by group shard\n" +
                "\tSQLException: Proxy ERROR: This type of SQL is not supported by group shard\"

DTS-RETRY-ERR-0142:Specified key was too long

可能原因:MySQL的InnoDB引擎支持的表索引字段最大长度为767字节。

解决方法:对于5.6和5.7版本的RDS MySQL,您可以将目标实例innodb_large_prefix参数的值修改为ON,然后重新启动任务。修改参数的方法,请参见修改实例参数

报错示例:

Specified key was too long; max key length is 767 bytes.

DTS-RETRY-ERR-0143:empty binlog list in oss

可能原因:DTS无法从OSS获取指定的Binlog。

解决方法:请联系阿里云技术支持人员处理。

报错示例:

id=35746****, jobId=dya1106628z****, value={"errMsg":"dts-k-src: DTS-52110: MySQLRecordExtractor Init Error: mysql-reader: DTS-52222: empty binlog list in oss, src rds instance = rm-bp1w2cl72i6in****, start time = 1669619166, end time = 1669905430","jobId":"t1d11sbo28z****","maxRetryTime":43200,"module":"reader","retryCount":30,"retryTarget":"srcDB","retryTime":1235,"retrying":true}

DTS-RETRY-ERR-0144:empty binlog list in

可能原因:DTS无法获取指定的Binlog。

解决方法:请联系阿里云技术支持人员处理。

报错示例:

id=357528****, jobId=udy119n2167*****, value={"errMsg":"dts-k-src: DTS-52110: MySQLRecordExtractor Init Error: mysql-reader: DTS-52222: empty binlog list in","jobId":"jer122l6i1j****","maxRetryTime":43200,"module":"reader","retryCount":2,"retryTarget":"srcDB","retryTime":592,"retrying":true}

DTS-RETRY-ERR-0145:Unknown column (.*)? in

可能原因:当前任务配置的过滤条件中的字段,在源库中不存在。

解决方法:

  • 同步任务:使用修改同步对象功能,在已选择对象中右击待同步对象,并在弹出的对话框中修改过滤条件,然后根据提示完成配置。

  • 迁移任务:请重新配置任务,并使用正确的过滤条件。

报错示例:

id=35746****, jobId=wzl12d7ie1g****, value={"errMsg":"framework: DTS-30020: execute sql:/* DTS-full-ykb12oe6k1n**** */SELECT `output`,`failed_times`,`input`,`created_time`,`biz_code`,`modified_time`,`next_exec_time`,`tx_id`,`biz_id`,`processor`,`tx_state` FROM `test_x7sy_com`.`sy_order_mgmt_local_tx_log` WHERE  ( create_time<1667232000 ) --> (null, null) record range id = 403027421250872****, fetchSize = -2147483648\ncause:\n\tMySQLSyntaxErrorException: Unknown column 'create_time' in 'where clause'","jobId":"ykb12oe6k1n****","maxRetryTime":43200,"module":"full","retryCount":110,"retryTarget":"srcDB","retryTime":1103,"retrying":true}

DTS-RETRY-ERR-0146:Connection reset

可能原因:当前任务与源库的连接被重置。

解决方法:请确保DTS可以正常连接源库,然后重新启动任务。

报错示例:

id=35749****, jobId=j5h12gsco18****, value={"errMsg":"Connection reset ClientConnectionId:b7773844-5bf4-4439-83a7-f153f69f9601@error code:0","jobId":"cjs127rbb1k****","maxRetryTime":43200,"module":"reader","retryCount":61,"retryTarget":"srcDB","retryTime":915,"retrying":true}

DTS-RETRY-ERR-0147:You have an error in your SQL syntax

可能原因:当前任务配置的过滤条件中的字段,在源库中不存在。

解决方法:

  • 同步任务:使用修改同步对象功能,在已选择对象中右击待同步对象,并在弹出的对话框中修改过滤条件,然后根据提示完成配置。

  • 迁移任务:请重新配置任务,并使用正确的过滤条件。

报错示例:

id=35749****, jobId=k66125z4n1p****, value={"errMsg":"framework: DTS-30020: execute sql:/* DTS-full-aqb12ji5f1t**** */SELECT **** fetchSize = -2147483648\ncause:\n\tSQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ****}

DTS-RETRY-ERR-0148:You are not using binary logging

可能原因:当前MySQL数据库实例不支持执行show binary logs命令。

解决方法:请升级MySQL数据库实例的版本,然后重新启动任务。

报错示例:

id=35757****, jobId=udy119n2167****, value={"errMsg":"You are not using binary logging@error code:1381","jobId":"jer122l6i1j****","maxRetryTime":43200,"module":"reader","retryCount":6,"retryTarget":"srcDB","retryTime":40,"retrying":true}

DTS-RETRY-ERR-0149:no partition for partitioning key

可能原因:目标端字段所对应的分片不存在。

解决方法:在目标端添加相应的分片,然后重新启动任务。

报错示例:

id=35756****, jobId=tlld17b825q****, value={"errMsg":"transaction-replicate: DTS-70004: execute statement failed: /*izmq1hx325617*****/insert into \"public\".\"order_req_pur_dt_his\" (\"bill_plu_id\",\"bill_no\",\"serial_no\",\"plu_id\",\"plu_code\",\"plu_name\",\"bar_code\",\"pack_id\",\"pack_code\",\"pack_name\",\"pack_rate\",\"unit\",\"pack_num\",\"pur_num\",\"audit_pack_num\",\"audit_num\",\"in_pur_price\",\"pur_in_total\",\"audit_in_total\",\"pur_type\",\"sal_price\",\"sal_total\",\"audit_sal_total\",\"stk_count\",\"udp1\",\"udp2\",\"remark\",\"rec_org_id\",\"pur_date\") values(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)\ncause:\n\tPSQLException: ERROR: no partition for partitioning key  (seg0 172.30.XX.XX:XXX pid=2776787)","jobId":"izmq1hx325617r6","maxRetryTime":1800,"module":"writer","retryCount":125,"retryTarget":"destDB","retryTime":1374,"retrying":true}

DTS-RETRY-ERR-0150:nitial dictionary failed

可能原因:源端数据库连接失败,导致DTS初始化失败。

解决方法:请确保DTS可以正常连接源库,然后重新启动任务。

报错示例:

id=35755****, jobId=qs2p4wxqw83****, value={"errMsg":"dts-k-src: DTS-52110: MySQLRecordExtractor Init Error: mysql-reader: DTS-52051: initial dictionary failed","jobId":"zzo12r9zo1g****","maxRetryTime":7200,"module":"reader","retryCount":30,"retryTarget":"srcDB","retryTime":1136,"retrying":true}

DTS-RETRY-ERR-0151:The Network Adapter could not establish the connection

可能原因:由于网络原因,导致DTS无法正常连接数据库。

解决方法:请确保DTS可以正常连接数据库,然后重新启动任务。

报错示例:

id=35755****, jobId=j16i46pbc63****, value={"errMsg":"IO Error: The Network Adapter could not establish the connection@error code:17002","jobId":"t1g12r9ka1q****","maxRetryTime":43200,"module":"reader","retryCount":47,"retryTarget":"srcDB","retryTime":1881,"retrying":true}

DTS-RETRY-ERR-0152:cannot open archived log (.*)? No such file or directory

可能原因:Oracle日志文件不存在。

解决方法:请重新配置任务。

报错示例:

id=35754****, jobId=tzv11059292****, value={"errMsg":"ORA-01284: file /sapdb/oracle/oraarch/EP2001/1_139037_1063496101.dbf cannot be opened\nORA-00308: cannot open archived log '/sapdb/oracle/oraarch/EP2001/1_139037_1063496101.dbf'\nORA-27037: unable to obtain file status\nLinux-x86_64 Error: 2: No such file or directory\nAdditional information: 7\nORA-06512: at \"SYS.DBMS_LOGMNR\", line 82\nORA-06512: at line 2\n@error code:","jobId":"q83122m2k19****","maxRetryTime":43200,"module":"reader","retryCount":11208,"retryTarget":"srcDB","retryTime":2999,"retrying":true}

DTS-RETRY-ERR-0154:odps (.*)? The specified partition does not exist

可能原因:目标库中报错信息中的表不存在。

解决方法:在目标库中根据报错信息和源库中的表信息创建表,然后重新启动任务。

报错示例:

jobId=n97107yf21k3bp8, code=07, errMsg=common: DTS-10009: transaction-replicate: DTS-70004: execute upload failed, may try it againcause:    RecoverableAnyAllException: transaction-replicate: DTS-70004: execute upload failed, may try it again    TransactionReplicateException: transaction-replicate: DTS-70003: 13 execute transaction has excess max transaction retry time [100] cause:odps: DTS-11014: Failed to get the upload session for cli_analytics.scene_template_codes_log caused by RequestId=2022120100085115d5d90b00f4ad31, ErrorCode=NoSuchPartition, ErrorMessage=The specified partition does not exist.RequestId=2022120100085115d5d90b00f4ad31, ErrorCode=NoSuchPartition, ErrorMessage=The specified partition does not exist.    CriticalAnyAllException: odps: DTS-11014: Failed to get the upload session for cli_analytics.scene_template_codes_log caused by RequestId=2022120100085115d5d90b00f****, ErrorCode=NoSuchPartition, ErrorMessage=The specified partition does not exist.RequestId=2022120100085115d5d90b00f4****, ErrorCode=NoSuchPartition, ErrorMessage=The specified partition does not exist.

DTS-RETRY-ERR-0155:OOM command not allowed when used memory

可能原因:目标端Redis内存不足。

解决方法:请升级目标端Redis内存,然后重新启动任务。云数据库Redis版的扩容方法,请参见变更实例配置

报错示例:

jobId=vov11qjl30c****, code=04, errMsg=redis.clients.jedis.exceptions.JedisDataException: OOM command not allowed when used memory > 'maxmemory'.

DTS-RETRY-ERR-0156:This function has none of

可能原因:当前数据库的配置不正确。

解决方法:手动执行set log_bin_trust_function_creators = 1,然后重新启动任务。

报错示例:

jobId=x9a11lf4308****, code=02, errMsg=This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)(advice: set the parameter log_bin_trust_function_creators = 1.). This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)(advice: set the parameter log_bin_trust_function_creators = 1.). This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)(advice: set the parameter log_bin_trust_function_creators = 1.). This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)(advice: set the parameter log_bin_trust_function_creators = 1.).

DTS-RETRY-ERR-0157:Incorrect column name

可能原因:同步或迁移对象中存在特殊字符的列名,如空格等。

解决方法:请修改列名,然后重新启动任务。

报错示例:

jobId=or81144k303****, code=02, errMsg=[13000, 202211302315061921681441470345301****] Incorrect column name: ` 一级ç. 

DTS-RETRY-ERR-0158:Failed to get global table lock for

可能原因:当前数据库不支持1个事务操作多个表。

解决方法:请联系阿里云技术支持人员处理。

报错示例:

jobId=q8k11raf309****, code=03, errMsg=common: DTS-11005: framework: DTS-31008: fetch column info from target table snt8888_eb.amazon_ad_keywords_report_detail failedcause:    AnyCoreException: framework: DTS-31008: fetch column info from target table snt8888_eb.amazon_ad_keywords_report_detail failed    CriticalAnyAllException: full-mysql: DTS-61008: Fetch meta info failed    SQLException: Failed to get global table lock for 'snt8888_eb.amazon_ad_keywords_report_detail'jobId=q8k11raf309k04d, code=03, errMsg=common: DTS-11005: framework: DTS-31008: fetch column info from target table ajcx_wms.4px_oda failedcause:    AnyCoreException: framework: DTS-31008: fetch column info from target table ajcx_wms.4px_oda failed    CriticalAnyAllException: full-mysql: DTS-61008: Fetch meta info failed    SQLException: Failed to get global table lock for 'ajcx_wms.4px_oda'

DTS-RETRY-ERR-0159:Column (.*)? cannot be null

可能原因:目标端有非空约束,导致写入null值时报错。

解决方法:修改目标字段约束,去掉not null约束。

报错示例:

jobId=ccf11aiz18j****, code=04, errMsg=DTS-077105: Record Replicator error in table CARGONEST_RATE.SCYX_FLIGHT. cause by [java.sql.SQLIntegrityConstraintViolationException: Column 'USE' cannot be null] About more information in ****

DTS-RETRY-ERR-0161:First Record Timestamp not correct

可能原因:获取不到位点的日志信息。

解决方法:请确认日志状态。若日志状态异常,请修复日之后重新启动任务;若日志状态正常,请重新配置任务。

报错示例:

jobId=eq2126nwc16****, code=15, errMsg=dts-k-src: DTS-52111: Increment Context Is Not Running..: cause:    CriticalAnyAllException: mongo-reader: DTS-52710: log fetch failed    CriticalAnyAllException: mongo-reader: DTS-52702: First Record Timestamp not correct, startPosition is : Timestamp{value=7171932524837339137, seconds=1669845666, inc=1}, record ts is : null

DTS-RETRY-ERR-0162:can not find index by table

可能原因:Elasticsearch缺少INDEX。

解决方法:手动在Elasticsearch中创建INDEX,然后重新启任务。

报错示例:

jobId=v3w11of923k****, code=03, errMsg=common: DTS-11005: framework: DTS-31008: fetch column info from target table operation.inspection_product_index/inspection_product failedcause:    AnyCoreException: framework: DTS-31008: fetch column info from target table operation.inspection_product_index/inspection_product failed    RuntimeException: es: DTS-11014: can not find index by table=inspection_product_index, schema=null, database=operation, mapping=inspection_product    CriticalAnyAllException: es: DTS-11014: can not find index by table=inspection_product_index, schema=null, database=operation, mapping=inspection_product

DTS-RETRY-ERR-0163:The sts token is denied

可能原因:STS Token过期。

解决方法:请重新启动任务。

报错示例:

jobId=nspj5ej820r****, code=07, errMsg=nosql-replicate: DTS-70004: execute statement failedcause:    NoPermissionException: [httpStatus:403, requestId:20221201101811180ec50b2153****, errorCode:NoPermission, errorMessage:The sts token is denied: STS.NUvD4Yo4qGKZ1jhhM662g****]

DTS-RETRY-ERR-0164:Too many connections

可能原因:数据库的连接数量达到上限。

解决方法:请检查数据库配置的最大连接数以及数据库占用连接的数量,根据结果做相应的修改后(如修改数据库的最大连接数的参数max_connections),然后重新启动任务。

报错示例:

jobId=yof12l14o19****8635, code=03, errMsg=jdbc-burst: DTS-61015: Create connection failed (url: 172.18.XX.XX:XXX, user: yj_gusb_root)cause:    MySQLNonTransientConnectionException: Too many connections

DTS-RETRY-ERR-0165:seek binlog for timestamp (.*)? not exits

可能原因:源MySQL数据库实例的Binlog已被清理。

解决方法:

  • 方法一:恢复源MySQL数据库实例的Binlog,然后重新启动任务。

  • 方法二:重新配置任务。

报错示例:

jobId=sptc8p3x129****, code=15, errMsg=dts-k-src: DTS-52102: retry final failedcause:    RecoverableAnyAllException: dts-k-src: DTS-52110: MySQLRecordExtractor Init Error: mysql-reader: DTS-52212: MySQL binlog 1660282274 is not exists.    CriticalAnyAllException: mysql-reader: DTS-52212: MySQL binlog 1660282274 is not exists.    IOException: java.sql.SQLException: seek binlog for timestamp 1660282274, not exits.    SQLException: seek binlog for timestamp 1660282274, not exits.

DTS-RETRY-ERR-0167:the Table (.*)? Information Loaded failed in Target DB

可能原因:目标端的Schema不存在。

解决方法:请确保目标端的Schema存在,且任务配置正确,然后重新启动任务。

报错示例:

jobId=lg612z5iq1x****, code=07, errMsg=DTS-071001: the Table anta_mw_stock_prod.stk_virtualstocklocklog Information Loaded failed in Target DB. cause by [[17001, 2022120116320501021111713303151290766] schema not exist => anta_mw_stock_prod] About more information in ****

DTS-RETRY-ERR-0168:A UNIQUE INDEX must include all columns in the table's partitioning function

可能原因:唯一索引没有包含表分区函数中的所有列。

解决方法:修改索引唯一索引,使其包含表分区函数中的所有列。

报错示例:

jobId=beu12x8vd1l****, code=02, errMsg=A UNIQUE INDEX must include all columns in the table's partitioning function. 

DTS-RETRY-ERR-0169:Can not find where column (.*)? in before image of record

可能原因:聚集索引列不包含主键列,而SQL Server的UPDATE语句只能解析出聚集索引列的前镜像值。

解决方法:修改聚集索引使其包含主键列,然后重新启动任务。

报错示例:

id=35938****, jobId=slr122e2h5y****, value={"errMsg":"transaction-framework: DTS-70029: Can not find where column  in before image of record LazyParseRecord {offset [465035], operationType [UPDATE], checkpoint [0@483462@0008b7dd:00019ab8:0002@1670195470000]}","jobId":"jqr12oeww55****","maxRetryTime":43200,"module":"writer","retryCount":19,"retryTarget":"destDB","retryTime":182,"retrying":true}

DTS-RETRY-ERR-0170:Cannot insert duplicate key row in object

可能原因:由于存在开启的触发器,导致主键冲突而写入失败。

解决方法:请禁用或删除触发器,然后重新启动任务。

报错示例:

id=35945****, jobId=p2611skq18s****, value={"errMsg":"transaction-replicate: DTS-70004: execute statement failed: /*dc4112pf18696rtSQLServerPrepareStatementSqlEngine(23)*/insert into [zjnb].[dbo].[yw_hddz_fsdz]([dzdm], [cxh], [dzbh], [id], [ywbh], [bgid]) values(?, ?, ?, ?, ?, ?)\ncause:\n\tSQLServerException: Cannot insert duplicate key row in object 'dbo.yw_hddz_fsdz' with unique index 'yw_hddz_fsdz_index'. The duplicate key value is (22DP01833, 0).","jobId":"dc4112pf186****","maxRetryTime":1800,"module":"writer","retryCount":98,"retryTarget":"destDB","retryTime":1511,"retrying":true}

DTS-RETRY-ERR-0171:The server experienced an unexpected error when processing the request

可能原因:增量数据采集模块异常。

解决方法:请联系阿里云技术支持人员处理。

报错示例:

id=35956****, jobId=kk411xezf49****, value={"errMsg":"dts-k-src: DTS-52122: Error on Send.The server experienced an unexpected error when processing the request","jobId":"vag1121af47****","maxRetryTime":43200,"module":"reader","retryCount":0,"retryTarget":"dstore","retryTime":1,"retrying":true}

DTS-RETRY-ERR-0172:The INSERT statement conflicted with the FOREIGN KEY constraint

可能原因:由于目标库中有已启用的外键,导致数据写入失败。

解决方法:请禁用或删除外键,然后重新启动任务。

报错示例:

id=35955****, jobId=s0s12libr5m****, value={"errMsg":"common: DTS-11005: The INSERT statement conflicted with the FOREIGN KEY constraint \"file_qc_number_testing_id_a9e3abb7_fk_dimension_testing_testing_id\". The conflict occurred in database \"tyDbTest\", table \"dbo.dimension_testing\", column 'testing_id'.\ncause:\n\tBatchUpdateException: The INSERT statement conflicted with the FOREIGN KEY constraint \"file_qc_number_testing_id_a9e3abb7_fk_dimension_testing_testing_id\". The conflict occurred in database \"tyDbTest\", table \"dbo.dimension_testing\", column 'testing_id'.","jobId":"rn9120w5g5k****","maxRetryTime":43200,"module":"full","retryCount":49,"retryTarget":"destDB","retryTime":1751,"retrying":true}

DTS-RETRY-ERR-0173:unsupported value convert for

可能原因:源端和目标端表结构不一致,DTS无法进行类型转换。

解决方法:请修改目标端表结构,使源端和目标端表结构保持一致,然后重新启动任务。

报错示例:

id=35955****, jobId=a1s126u5s54****, value={"errMsg":"jdbc-utils: DTS-11001: jdbc-utils: DTS-11001: Adb30StringDisperse: unsupported value convert for [2023-01-01 01:00:00] convert to [create_time DATE nullable as create_time] targetDatabase:crm targetTable:orders\ncause:\n\tJdbcUtilsException: jdbc-utils: DTS-11001: Adb30StringDisperse: unsupported value convert for [2023-01-01 01:00:00] convert to [create_time DATE nullable as create_time]","jobId":"c28120pby5n****","maxRetryTime":43200,"module":"writer","retryCount":223,"retryTarget":"destDB","retryTime":2240,"retrying":true}

DTS-RETRY-ERR-0174:ETL (.*)? not found in

可能原因:ETL的数据处理语句错误,应使用源库的表名和列名。

解决方法:请纠正数据处理语句,然后重新启动任务。修改ETL配置的方法,请参见在DTS迁移或同步任务中配置ETL

报错示例:

jobId=x9611z8z28s****, code=07, errMsg=framework: DTS-31009: In process of processing data (recordRange: 572237829218343****) failedcause:    CriticalAnyAllException: ETL: DTS--0001: Error while executing user ETL: dt_now not found in fillmed_import.membership_customer_detail    RuntimeException: dt_now not found in fillmed_import.membership_customer_detail

DTS-RETRY-ERR-0175:Connect db failure

可能原因:无法连接到源端数据库。

解决方法:请检查源库信息和设置是否正常,详情请参见源库连接性检查

报错示例:

jobId=hedw7wu7z60****, code=02, errMsg=DTS-002003 Connect db failure, unknow db url jdbc:postgresql://100.100.XX.XX:XXX/testdb, please vaild url. Original error: The connection attempt failed. For more information please refer to ****

DTS-RETRY-ERR-0176:too many connections for role

可能原因:数据库的连接数量达到上限。

解决方法:请检查数据库配置的最大连接数以及数据库占用连接的数量,根据结果做相应的修改后(如修改数据库的最大连接数的参数max_connections),然后重新启动任务。

报错示例:

jobId=yyh128cwc5h****, code=02, errMsg=init job fail FATAL: too many connections for role "inventory_prod_ad_readonly"

DTS-RETRY-ERR-0177:numeric field overflow

可能原因:目标端和源端表结构不匹配。

解决方法:请修改目标端表的结构,使目标端列的类型和源库一致,然后重新启动任务。

报错示例:

jobId=er411gx1251****, code=03, errMsg=full-greenplum: DTS-65708: copy error, recordRange= **** cause:    PSQLException: ERROR: numeric field overflow ****

DTS-RETRY-ERR-0178:JedisDataException (.*)? ERR (.*)? command keys must in same slot

可能原因:传入的key不在同一个slot。

解决方法:Lua脚本为保证事务的原子性,传入的key必须在同一个slot中,请修改相应的语法后重新启动任务。

报错示例:

jobId=xd6121n2d5e****, code=04, errMsg=redis.clients.jedis.exceptions.JedisDataException: ERR 'EVAL' command keys must in same slot

DTS-RETRY-ERR-0179:ADB30Engine (.*)? COMMA is not value type

可能原因:SQL语法错误(逗号不是合法的取值类型)。

解决方法:请纠正相应的SQL,然后重新启动任务。

报错示例:

jobId=chzi9boc27z****, code=07, errMsg=transaction-replicate: DTS-70004: execute statement failed: /*dts_id=dtsc0pg9ems27y*****/replace into `inhouse`.`grain_category_template` **** error detail message:[15018, 202212051752081921681240150345324****] syntax error :syntax error => COMMA is not value type, pos:558 row: 0 and ceil:1    SQLException: [15018, 202212051752081921681240150345324****] syntax error :syntax error => COMMA is not value type, pos:558 row: 0 and ceil:1

DTS-RETRY-ERR-0180:Schema matched failed

可能原因:目标端Schema匹配失败。

解决方法:修改目标端表结构使其与源端表结构一致,然后重新启动任务。

重要

开启多表归并功能的任务不支持DDL操作。

报错示例:

jobId=iicu948h28d****, code=07, errMsg=DTS-071007: Schema matched failed. cause by [Can not find column TSSQQKSM_DM<-->tssqqksm_dm[true] in target table table_group_zrryh_mx.f_rt_zs_tdssq_qccx] About more information in ****

DTS-RETRY-ERR-0181:invalid hexadecimal digit

可能原因:SQL语法错误(无效的十六进制数字)。

解决方法:请纠正相应的SQL,然后重新启动任务。

报错示例:

jobId=i9c12l3kn1m****, code=03, errMsg=full-postgresql: DTS-65708: copy error, recordRange={id:364619936051914****,schema:saasv4.C_REPORT,indexName:,fields:[DJNAME STRING nullable unique],leftValues:[null],rightValues:[null],partition:null}, copySql=/* DTS-full-i9c12l3kn1m**** *//* DTS-full-i9c12l3kn1m**** */COPY "saasv4".c_report ("fanganid","fanganname","fangandes","djname","updated","fangan") FROM STDIN DELIMITER '|' ESCAPE '\' CSV QUOTE '"'cause:    PSQLException: ERROR: invalid hexadecimal digit: "<"  Where: COPY c_report, line 1, column fangan: "<?xml version="1.0" encoding="utf-8"?>\015\012<TfrxReport Version="4.3" DotMatrixReport="False" IniF..."

DTS-RETRY-ERR-0182:command denied to user

可能原因1:任务中使用的数据库账号权限不足。

解决方法1:

  • 方法一:给任务中使用的数据库账号授予足够的权限,然后重新启动任务。

  • 方法二:请使用权限充足的数据库账号配置任务。

可能原因2:报错信息中的库为系统库(如sys等)或者不需要同步或迁移的数据库。

解决方法2:

  • 同步任务:使用修改同步对象功能将报错的库从同步对象中移除,然后重新启动任务。移除同步对象的方法,请参见移除同步对象

  • 迁移任务:重新配置任务,待迁移的对象不选择报错信息中的库。

报错示例:

jobId=sj112p70c50****, code=02, errMsg=REFERENCES command denied to user 'qianyi_dts'@'100.104.XX.XX' for table 'dbdj_lance.extauth_user'. ****

DTS-RETRY-ERR-0183:MySQL table (.*)? binlog column count check error

可能原因:报错信息的表在Binlog的列数与在DTS中的列数不一致。

解决方法:检查报错信息中是否有local count is 0

  • 有:请确保任务使用的账号有该表的SELECT权限,然后重新启动任务。

  • 没有:

    • 同步任务:使用修改同步对象功能将报错的表从同步对象中移除,然后重新启动任务。移除同步对象的方法,请参见移除同步对象

    • 迁移任务:重新配置任务,待迁移的对象不选择报错的表。

报错示例:

jobId=oh9111i723x****, code=15, errMsg=dts-k-src: DTS-52111: Increment Context Is Not Running..: mysql-reader: DTS-52210: fetch log failedcause:    IOException: mysql-reader: DTS-52234: MySQL table dxl_shops.sys_module binlog column count check error, local count is 0, but binlog count is 15, at offset 162@25064****.    CriticalAnyAllException: mysql-reader: DTS-52234: MySQL table dxl_shops.sys_module binlog column count check error, local count is 0, but binlog count is 15, at offset 162@25064****.

DTS-RETRY-ERR-0184:CLIENT_PLUGIN_AUTH is required

可能原因:数据库连接异常。

解决方法:检查MySQL数据库实例版本。DTS支持的MySQL数据库实例版本,请参见同步方案概览迁移方案概览订阅方案概览

报错示例:

id=36512****, jobId=r5e120d1u5u****, value={"errMsg":"CLIENT_PLUGIN_AUTH is required@error code:0","jobId":"xu812lh7i5p****","maxRetryTime":43200,"module":"reader","retryCount":745,"retryTarget":"srcDB","retryTime":9911,"retrying":true}

DTS-RETRY-ERR-0185:ADB30Engine (.*)? For input string

可能原因:报错信息涉及的目标表结构不兼容源库的值。

解决方法:修改目标表列的类型,使其与源库类型保持一致,然后重新启动任务。

报错示例:

jobId=ugui7hl1h83****, code=07, errMsg=transaction-replicate: DTS-70004: execute statement failed: /*dts_id=dtserev7v26j8i*****/replace into `ylh_order`.`recycle_standing_book` **** cause:    SQLException: ADB30Engine(15): meet error, insertSQL:/*dts_id=dtserev7v26j8i*****/replace into `ylh_order`.`recycle_standing_book` **** error detail message:[15018, 202212160839511921682250660315152****] (Column => RECYCLE_STANDING_BOOK.DB_ID), For input string: "14033071031736****"    SQLException: [15018, 202212160839511921682250660315152****] (Column => RECYCLE_STANDING_BOOK.DB_ID), For input string: "14033071031736****"

DTS-RETRY-ERR-0186:not authorized on (.*)? to execute command

可能原因:任务中使用的数据库账号权限不足。

  • 方法一:给任务中使用的数据库账号授予足够的权限,然后重新启动任务。

  • 方法二:请使用权限充足的数据库账号配置任务。

报错示例:

jobId=j99123a7161****, code=03, errMsg=common: DTS-11005: com.mongodb.MongoCommandException: Command failed with error 13: 'not authorized on zcscenter_log to execute command { insert: "UserBehaviorLog", ordered: true, bypassDocumentValidation: true, $db: "zcscenter_log" }' on server 172.16.XX.XX:XXX. The full response is { "operationTime" : { "$timestamp" : { "t" : 1671158607, "i" : 1 } }, "ok" : 0.0, "errmsg" : "not authorized on zcscenter_log to execute command { insert: \"UserBehaviorLog\", ordered: true, bypassDocumentValidation: true, $db: \"zcscenter_log\" }", "code" : 13, "codeName" : "Unauthorized", "$clusterTime" : { "clusterTime" : { "$timestamp" : { "t" : 1671158607, "i" : 1 } }, "signature" : { "hash" : { "$binary" : "FMyelyFIm+zD****/XOiGFd****=", "$type" : "00" }, "keyId" : { "$numberLong" : "717355978057161****" } } } } **** 

DTS-RETRY-ERR-0187:The TCP/IP connection to the host (.*)? has failed

可能原因:数据库无法正常连接。

解决方法:请根据报错信息进行排查。若异常无法解决,请联系阿里云技术支持人员处理。

报错示例:

jobId=vtsv5pgl22m****, code=03, errMsg=common: DTS-11005: framework: DTS-31008: fetch column info from source table [EMWSHANGHAI].[dbo].[OILM] failedcause:    AnyCoreException: framework: DTS-31008: fetch column info from source table [EMWSHANGHAI].[dbo].[OILM] failed    RuntimeException: jdbc-burst: DTS-61015: Create connection failed (url: 172.16.XX.XX:XXX, user: sa)cause:    SQLServerException: The TCP/IP connection to the host 172.16.XX.XX, port XXX has failed. Error: "The driver received an unexpected pre-login response. Verify the connection properties and check that an instance of SQL Server is running on the host and accepting TCP/IP connections at the port. This driver can be used only with SQL Server 2005 or later.". ****

DTS-RETRY-ERR-0188:null value in column (.*)? violates not-null constraint

可能原因:目的端有非空约束的列在任务中被过滤,或在源端没有相应列的值。

解决方法:请根据实际业务情况进行修改,确保待同步或迁移对象的数据满足目标端的约束限制,然后重新启动任务。

报错示例:

jobId=hn612sbb16q****, code=03, errMsg=full-greenplum: DTS-65708: copy error, recordRange={id:266622423602823****,schema:ods_ecology1.workflow_yozotopdfconfig,indexName:,fields:[],leftValues:[null],rightValues:[null],partition:null}, copySql=/* DTS-full-hn612sbb16q**** *//* DTS-full-hn612sbb16q**** */COPY "ods_ecology1"."workflow_yozotopdfconfig" ("useWps","useyozo") FROM STDIN DELIMITER '|' ESCAPE '\' CSV QUOTE '"' DO on conflict DO update cause:    PSQLException: ERROR: null value in column "useWps" violates not-null constraint  Detail: Failing row contains (0, null).  Where: COPY workflow_yozotopdfconfig, line 1

DTS-RETRY-ERR-0189:ON CONFLICT DO UPDATE command cannot affect row a second time

可能原因:源端和目标端的唯一索引不一致。

解决方法:请根据实际业务情况进行修改,确保源端和目标端的唯一索引一致,然后重新启动任务。

报错示例:

jobId=hn612sbb16q****, code=03, errMsg=full-greenplum: DTS-65708: copy error, recordRange={id:664004810422773****,schema:ods_ecology1.workflow_requestlog,indexName:,fields:[LOGID INTEGER not nullable],leftValues:[null],rightValues:[null],partition:null}, copySql=/* DTS-full-hn612sbb16q**** *//* DTS-full-hn612sbb16q**** */COPY "ods_ecology1"."workflow_requestlog" ("OPERATORDEPT","OPERATEDATE","speechattachmente9","isSubmitDirect","uuid","NODEID","SIGNDOCIDS","REMARKLOCATION","clientip","SHOWORDER","ANNEXDOCIDS","SIGNWORKFLOWIDS","AGENTTYPE","REMARK","RECEIVEDPERSONS_1","seclevel","SPEECHATTACHMENT","LOGTYPE","RECEIVEDPERSONS","REMARK1","OPERATETIME","operatorJob","DESTNODEID","OPERATORTYPE","LOGID","operatorSub","remarkquote","fulltextannotation","isRobotNode","REQUESTLOGID","RECEIVEDPERSONIDS","WORKFLOWID","OPERATOR","ISMOBILE","AGENTORBYAGENTID","HandWrittenSign","REQUESTID") FROM STDIN DELIMITER '|' ESCAPE '\' CSV QUOTE '"' DO on conflict DO update cause:    PSQLException: ERROR: ON CONFLICT DO UPDATE command cannot affect row a second time  Hint: Ensure that no rows proposed for insertion within the same command have duplicate constrained values.  Where: COPY workflow_requestlog, line 6

DTS-RETRY-ERR-0190:There is no column (.*)? in table

可能原因:目标端的表缺少列。

解决方法:根据源端的表结构和报错信息,在目标表中添加缺少的列,然后重新启动任务。

报错示例:

jobId=t0q12vjgl98****, code=07, errMsg=DTS-077100: Record Replicator error in table uat_r3_oms_oc_ip.oc_b_tob_order. cause by [com.alibaba.amp.increment.exception.AmpException: There is no column `echo_status` in table `r3_rc_datasync`.`oc_b_tob_order`] About more information in ****

DTS-RETRY-ERR-0191:Host (.*)? is blocked because of many connection

可能原因:数据库的连接数量达到上限。

解决方法:请检查数据库配置的最大连接数以及数据库占用连接的数量,根据结果做相应的修改后(如修改数据库的最大连接数的参数max_connections),然后重新启动任务。

报错示例:

jobId=kv512kmj15n****, code=03, errMsg=common: DTS-11005: framework: DTS-31008: fetch column info from source table shineserver.tbl_invdata_d_2023_01_07 failedcause:    AnyCoreException: framework: DTS-31008: fetch column info from source table shineserver.tbl_invdata_d_2023_01_07 failed    CriticalAnyAllException: full-mysql: DTS-00000: Fetch meta info failed    DBCommonException: jdbc-burst: DTS-61015: Create connection failed (url: 172.27.XX.XX:XXX, user: root)    SQLException: null,  message from server: "Host '100.104.XX.XX' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'"

DTS-RETRY-ERR-0192:Get all databases in (.*)? DB failed

可能原因:获取源库信息失败。

解决方法:请确保源端数据库的状态正常且可以正常连接,然后重新启动任务。

报错示例:

jobId=mmbg34h530g****, code=04, errMsg=DTS-070611: Get all databases in v5x0617 DB failed. Source

DTS-RETRY-ERR-0193:schema (.*)? does not exist

可能原因:源或目标端Schema不存在。

解决方法:请确保源和目标端存在报错信息中的Schema,然后重新启动任务。

报错示例:

jobId=tycy1xi5d4w****, code=03, errMsg=full-greenplum: DTS-65708: copy error, recordRange={id:65629572036558****,schema:dtstest.master_ld_pg_test,indexName:,fields:[id BIGINT not nullable primary unique],leftValues:[null],rightValues:[null],partition:null}, copySql=/* DTS-full-tycy1xi5d41**** *//* DTS-full-tycy1xi5d4w**** */COPY "dtstest"."master_ld_pg_test" ("name","id","name2") FROM STDIN DELIMITER '|' ESCAPE '\' CSV QUOTE '"' DO on conflict DO update cause:    PSQLException: ERROR: schema "" does not exist  (seg0 172.25.XX.XX:XXX pid=556)

DTS-RETRY-ERR-0194:WRONGPASS invalid username-password pair or user is disabled

可能原因:Redis的账号或密码错误。

解决方法:请使用正确的Redis账号和密码配置任务。

报错示例:

jobId=yji127k830v****, code=04, errMsg=redis: DTS-10015: redis: DTS-10010: WRONGPASS invalid username-password pair or user is disabled.cause:    RedisClientInitiationException: redis: DTS-10010: WRONGPASS invalid username-password pair or user is disabled.

DTS-RETRY-ERR-0195:Create Table Exceed limit

可能原因:目标DataHub的Topic数量超过Project限制。

解决方法:请删除无效的Topic,然后重新启动任务。删除Topic的操作,请参见Topic操作

报错示例:

jobId=gta119cz22v****, code=02, errMsg=DTS-1029999 The ddlmove task gta119cz22vg6d4 was finished,but 598 objects failed,error message:[DTS]Create Table Exceed limit, max topics for one project is 500, current is 500 in dts (Status Code: 400; Error Code: ResourceLimit; Request ID: 20230111104946510ec50bfb87****),[DTS]Create Table Exceed limit, max topics for one project is 500, current is 500 in dts (Status Code: 400; Error Code: ResourceLimit; Request ID: 202301111049445d0ec50bfb83****),[DTS]Create Table Exceed limit, max topics for one project is 500, current is 500 in dts (Status Code: 400; Error Code: ResourceLimit; Request 

DTS-RETRY-ERR-0196:user (.*)? does not exist

可能原因1:表或视图不存在。

解决方法1:请根据具体报错信息,补充相应的表或者视图,然后重新启动任务。

可能原因2:任务使用的数据库账号权限不足。

解决方法2:请给任务中使用的数据库账号授予足够的权限,然后重新启动任务。

报错示例:

jobId=ssbc18z7113****, code=02, errMsg=ORA-01918: user 'BOND_EXT_ETL' does not exist. ORA-00942: table or view does not exist

DTS-RETRY-ERR-0197:table or view does not exist

可能原因1:表或视图不存在。

解决方法1:请根据具体报错信息,补充相应的表或者视图,然后重新启动任务。

可能原因2:任务使用的数据库账号权限不足。

解决方法2:请给任务中使用的数据库账号授予足够的权限,然后重新启动任务。

报错示例:

jobId=ssbc18z7113****, code=02, errMsg=ORA-01918: user 'BOND_EXT_ETL' does not exist. ORA-00942: table or view does not exist

DTS-RETRY-ERR-0198:FUNCTION (.*)? does not exist

可能原因:结构迁移的VIEW或FUNCTION有依赖的对象,导致VIEW创建失败。

解决方法:请分别解除VIEW和FUNCTION的依赖,并重启结构迁移模块。若异常无法解决,请联系阿里云技术支持人员处理。

报错示例:

jobId=n37x1mlh115****, code=02, errMsg=FUNCTION riskcenter.fn_GetCustName does not exist. FUNCTION riskcenter.fn_GetMemLoginName does not exist. FUNCTION riskcenter.fn_GetDistName does not exist. FUNCTION riskcenter.fn_GetCustName does not exist. FUNCTION riskcenter.fn_GetCustName does not exist. FUNCTION riskcenter.fn_GetCustName does not exist. FUNCTION riskcenter.fn_GetCustName does not exist. FUNCTION riskcenter.fn_GetCustName does not exist. FUNCTION riskcenter.fn_GetCustName does not exist. FUNCTION riskcenter.fn_GetCustName does not exist. FUNCTION riskcenter.fn_GetCustName does not exist. FUNCTION riskcenter.fn_GetCustName does not exist. FUNCTION riskcenter.fn_GetMemLoginName does not exist. FUNCTION riskcenter.fn_GetCustName does not exist. FUNCTION riskcenter.fn_GetCustName does not exist. FUNCTION riskcenter.fn_GetDistName does not exist. FUNCTION riskcenter.fn_GetCustName does not exist. FUNCTION riskcenter.fn_GetCustName does not exist. FUNCTION riskcenter.fn_GetCustName does not exist. FUNCTION riskcenter.fn_GetCustName does not exist.

DTS-RETRY-ERR-0199:fetch column info from source table (.*)? failed

可能原因:源端数据库连接异常,导致无法从源端获取对应的列信息。

解决方法:请重新启动任务。若异常无法解决,请联系阿里云技术支持人员处理。

报错示例:

jobId=vtsv5pgl22m7****, code=03, errMsg=common: DTS-11005: framework: DTS-31008: fetch column info from source table [EMWSHANGHAI].[dbo].[OILM] failedcause:    AnyCoreException: framework: DTS-31008: fetch column info from source table [EMWSHANGHAI].[dbo].[OILM] failed    RuntimeException: jdbc-burst: DTS-61015: Create connection failed (url: 172.16.XX.XX:XXX, user: sa)cause:    SQLServerException: Connection reset ClientConnectionId:b2bb965c-e92a-4311-b499-cff270ff****    SocketException: Connection reset    DBCommonException: jdbc-burst: DTS-61015: Create connection failed (url: 172.16.XX.XX:XXX, user: sa)    SQLServerException: Connection reset ClientConnectionId:b2bb965c-e92a-4311-b499-cff270ff****    SocketException: Connection reset

DTS-RETRY-ERR-0200:value too large for column

可能原因:写入数据的长度,大于表结构定义中该列字段的最大长度。

解决方法:请修改该表异常列字段的最大长度,使其满足数据写入的需要,然后重新启动任务。

报错示例:

jobId=ckwu1nn2100****, code=07, errMsg=common: DTS-100047: retry 4151 times, 43201510 seconds, which exceed the supposed 43200 secondscause:    TransactionReplicateException: transaction-replicate: DTS-70004: execute statement failed: /*ckwu1nn210048jjOraclePrepareStatementSqlEngine(14)*/insert into ****     SQLException: ORA-12899: value too large for column "XFS_OPEN_PLATFORM_EX"."T_PRODUCT_CHANNEL"."CHANNEL_NAME" (actual: 38, maximum: 32)

DTS-RETRY-ERR-0201:Can not find column (.*)? in target table

可能原因:目标端的表缺少列。

解决方法:根据源端的表结构和报错信息,在目标表中添加缺少的列,然后重新启动任务。

报错示例:

jobId=zhml16az11q****, code=07, errMsg=DTS-071007: Schema matched failed. cause by [Can not find column bpmSn<-->bpmSn[true] in target table anta_mw_order_prod.bas_warehouse] About more information in ****

DTS-RETRY-ERR-0203:Table (.*)? does not exist

可能原因:源库或目标库部分表不存在。

解决办法:请根据具体报错任务类型、任务模块选择解决方案。

  • 数据同步任务:

    • 增量写入模块报错,检查目标库中对应的表是否存在且表结构是否一致。若表不存在:

      1. 通过修改同步对象功能,将报错信息中的表从同步对象中移除。

      2. 将目标库中报错信息表清空。

      3. 使用修改同步对象功能,将报错信息中的表加入到同步对象中。

      4. 恢复任务。

    • 全量迁移模块报错,检查源库和目标库中对应的表是否存在且表结构是否一致,若表不存在,需要重新配置任务。

  • 数据迁移任务:确保源库和目标库待迁移的表结构一致,然后重新配置任务。

报错示例:

jobId=x3dl1cbm11r****, code=03, errMsg=common: DTS-11005: framework: DTS-31008: fetch column info from target table tms_service2.tp_3286333_ogl_logistics_trajectory_2 failedcause:    AnyCoreException: framework: DTS-31008: fetch column info from target table tms_service2.tp_3286333_ogl_logistics_trajectory_2 failed    RuntimeException: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: [17003, 202301110800570100020000460315122****] Table adb.tms_service2.tp_3286333_ogl_logistics_trajectory_2 does not exist

DTS-RETRY-ERR-0204:Disk full (.*)? waiting for someone to free some space

可能原因:目标端磁盘空间已满。

解决方法:升级目标端的磁盘空间,然后重新启动任务。

报错示例:

jobId=h03q1pas10o****, code=03, errMsg=framework: DTS-30011: currentRunningSQL: /* DTS-full-h03q1pas10o**** */insert ignore into **** cause:    BatchUpdateException: Disk full (tb_ms_video_collect_day_20221221); waiting for someone to free some space... (errno: 189 "Disk full")    SQLException: Disk full (tb_ms_video_collect_day_20221221); waiting for someone to free some space... (errno: 189 "Disk full")    Disk full **** waiting for someone to free some space

DTS-RETRY-ERR-0209:relation (.*)? does not exist

可能原因:目标端的Relation不存在。

解决方法:请根据报错信息在目标端创建Relation,然后重新启动任务。

报错示例:

id=37908****, jobId=eo3m1z6t11y****, value={"errMsg":"java.lang.RuntimeException: Table '`wk_crm`.`wk_examine_advanced_config`' with columns [`create_user_id`, `node_handle_type`, `modify_permission_type`, `create_time`, `company_id`, `limit_time_status`, `batch_id`, `advanced_config_id`, `examine_id`, `update_time`, `node_handle_user`, `update_user_id`, `reject_handle_type`, `repeat_handle_type`] and batch exception is {[13000, 202301110018191921681780610345332****] (Column => WK_EXAMINE_ADVANCED_CONFIG.NODE_HANDLE_USER), For input string: ****

DTS-RETRY-ERR-0212:batch exception (.*)? For input string

可能原因:目标端写入数据的类型与表结构定义的数据类型不一致。

解决方法:请修改目标端表结构,使源端和目标端表结构保持一致,然后重新启动任务。

报错示例:

id=37908****, jobId=eo3m1z6t11y****, value={"errMsg":"java.lang.RuntimeException: Table '`wk_crm`.`wk_examine_advanced_config`' with columns [`create_user_id`, `node_handle_type`, `modify_permission_type`, `create_time`, `company_id`, `limit_time_status`, `batch_id`, `advanced_config_id`, `examine_id`, `update_time`, `node_handle_user`, `update_user_id`, `reject_handle_type`, `repeat_handle_type`] and batch exception is {[13000, 202301110018191921681780610345332****] (Column => WK_EXAMINE_ADVANCED_CONFIG.NODE_HANDLE_USER), For input string: \"161281865257152****,161281865208498****\"}","jobId":"t2pa1xp1112****","maxRetryTime":43200,"module":"full","retryCount":9,"retryTarget":"destDB","retryTime":80,"retrying":true}

DTS-RETRY-ERR-0213:mapper (.*)? of different type

可能原因:目标端写入数据的类型与表结构定义的数据类型不一致。

解决方法:请修改目标端表结构,使源端和目标端表结构保持一致,然后重新启动任务。

报错示例:

PUT **** {  "error" : {    "root_cause" : [      {        "type" : "illegal_argument_exception",        "reason" : "mapper [user_disease_point_id] of different type, current_type [text], merged_type [long]"      }    ],    "type" : "illegal_argument_exception",    "reason" : "mapper [user_disease_point_id] of different type, current_type [text], merged_type [long]"  },  "status" : 400}

DTS-RETRY-ERR-0214:Stream closed

可能原因:网络连接超时。

解决方法:请确保源端数据库的状态正常且可以正常连接,然后重新启动任务。

报错示例:

**** framework: DTS-31009: In process of processing data (recordRange: 827160178650303****) failedcause:RedisServerException: redis: DTS-10015: redis: DTS-10009: Stream closedRedisCannotRetryException: redis: DTS-10009: Stream closedIOException: Stream closed ****

DTS-RETRY-ERR-0215:wait millis (.*)? active (.*)? maxActive

可能原因:数据库连接异常。

解决方法:请重新启动任务。若异常无法解决,请联系阿里云技术支持人员处理。

报错示例:

**** wait millis 300000, active 2, maxActive 100, creating 1, createElapseMillis 26952, createErrorCount 66 ****

DTS-RETRY-ERR-0216:OutOfMemoryError

可能原因:任务运行时遇到超大字段,导致内存溢出。

解决方法:请联系阿里云技术支持人员处理。

报错示例:

java.lang.OutOfMemoryError: Requested array size exceeds VM limit ****

DTS-RETRY-ERR-0222:execute statement failed

可能原因:目标端写入数据时遇到问题,常见于目标端为云原生数据仓库 AnalyticDB MySQL 版时,有非法的时间或日期写入。

解决方法:同步任务可以使用修改同步对象功能,将报错的表从同步对象移除,然后再重新添加至同步对象,详情请参见如何解决同步实例关于表的报错?若异常无法解决,请联系阿里云技术支持人员处理。

报错示例:

transaction-replicate: DTS-70004: execute statement failed: /* DTS-wri-MysqlEngine(3) */replace into `db_mch_recreation`.`tbl_order` (`time_pay`,`rec_product_detail`,`err_code`,`type`,`device_name`,`total_fee`,`out_sid`,`extra`,`ship_desc`,`sn`,`seller_id`,`time_create`,`device_id`,`err_desc

DTS-RETRY-ERR-0225:DTS-11005: null

可能原因:偶发性错误。

解决方法:请重新启动任务。若异常无法解决,请联系阿里云技术支持人员处理。

报错示例:

framework: DTS-31009: In process of processing data (recordRange: ) failed cause: CriticalAnyAllException: common: DTS-11005: null NullPointerException: null 【URL】: ****

DTS-RETRY-ERR-0226:User (.*)? does not have permission to run DBCC TRACEON

可能原因:任务使用的源端数据库账号权限不足。

解决方法:授予该账号sysadmin权限,然后重新启动任务。授权方法,请参见CREATE USER

报错示例:

jobId=juin1gx7166****, code=15, errMsg=dts-k-src: DTS-52102: retry final failedcause:    RecoverableAnyAllException: dts-k-src: DTS-52110: SQLServerRecordExtractor Init Error: sqlserver-reader: DTS-00032: Execute sql DBCC TRACEON(2537,-1) failed, case by User 'dtstest' does not have permission to run DBCC TRACEON.    CriticalAnyAllException: sqlserver-reader: DTS-00032: Execute sql DBCC TRACEON(2537,-1) failed, case by User 'dtstest' does not have permission to run DBCC TRACEON.    SQLServerException: User 'dtstest' does not have permission to run DBCC TRACEON.

DTS-RETRY-ERR-0227:Socket closed

可能原因:DTS网络无法连接至Redis实例。

解决方法:请确保源和目标端实例网络正常,然后重新启动任务。

报错示例:

jobId=z6xb1321161****, code=04, errMsg=framework: DTS-31009: In process of processing data (recordRange: 444887303382577****) failedcause:    FatalAnyAllException: common: DTS-100047: retry 0 times, 15352498 seconds, which exceed the supposed 600 seconds    RedisServerException: redis: DTS-10015: redis: DTS-10009: Socket closed    RedisCannotRetryException: redis: DTS-10009: Socket closed    SocketException: Socket closed

DTS-RETRY-ERR-0228:Illegal mix of collations

可能原因:源和目标表的字符集或字符集的校对规则不一致。

解决方法:请确保源和目标表的字符集和字符集的校对规则一致,然后重新启动任务。例如,MySQL 8.0及以上版本可以使用ALTER TABLE XXX default character SET utf8mb4 collate=utf8mb4_general_ci;命令,将默认的校对规则(utf8mb4_0900_ai_ci)修改为utf8mb4_general_ci。

说明

XXX需要替换为对应的表名。

报错示例:

jobId=yr6a1h2d161****, code=02, errMsg=Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and (utf8mb4_0900_ai_ci,IMPLICIT) for operation 'find_in_set'. Illegal mix of collations (utf8mb4_0900_ai_ci,IMPLICIT) and (utf8mb4_general_ci,IMPLICIT) for operation '='. Illegal mix of collations (utf8mb4_0900_ai_ci,IMPLICIT) and (utf8mb4_general_ci,IMPLICIT) for operation '='. Illegal mix of collations (utf8mb4_0900_ai_ci,IMPLICIT) and (utf8mb4_general_ci,IMPLICIT) for operation '='. Unknown column 'hjmall_jushuitan_brand_express_template.express_company' in 'on clause'. Illegal mix of collations (utf8mb4_0900_ai_ci,IMPLICIT) and (utf8mb4_general_ci,IMPLICIT) for operation '='. Illegal mix of collations (utf8mb4_0900_ai_ci,IMPLICIT) and (utf8mb4_general_ci,IMPLICIT) for operation '='. Illegal mix of collations (utf8mb4_0900_ai_ci,IMPLICIT) and (utf8mb4_general_ci,IMPLICIT) for operation '='. Unknown column 'b.excel_name' in 'field list'(advice: the base table may have been modified, you can choose to skip the migration of this View.).

DTS-RETRY-ERR-0232:cannot execute INSERT in a read-only transaction

可能原因:目标端实例为只读模式。

解决方法:检查目标端实例是否可以修改为常规的读写实例:

  • 可以:将目标端实例修改为常规的读写实例,然后重新启动任务。

  • 不可以:使用常规的读写实例重新配置任务。

报错示例:

jobId=f6au9q6b13c****, code=07, errMsg=transaction-replicate: DTS-70004: execute statement failed: /*f6au9q6b13cg9*****/insert into oms_ord.om_order_line (order_line_id,order_line_nbr,sale_channel,channel_order_nbr,order_time,order_id,cust_id,cust_name,order_type,pre_sale_date,delivery_method,pickup_point_code,contact_man,contact_num,contact_email,delivery_addr_id,delivery_detail_addr,expect_date,expect_time,cust_notes,if_remaining_paid,state,state_reason,state_date,state_desc,created_date,update_date,audit_notes,order_fulfill_id,order_fulfill_nbr,ship_date,order_fulfill_state,prod_desc,logistics_code,warehouse_id,warehouse_name,v_warehouse_id,v_warehouse_name,is_transfer,order_id_nbr,deliver_order_nbr,devy_longitude,devy_latitude,vmi_vendor_id,redo_count,currency_id,delivery_addr_l1,delivery_addr_l2,delivery_addr_l3,delivery_addr_l4,delivery_addr_zipcode,pay_state,delivery_state,delivery_chl_addr,if_oms_fulfill,payment_method,payment_time,region_code,ext_info,channel_type_id,ext_erp_order_nbr,ext_erp_delv_nbr,schedule_result_id,order_schedule_id,inv_chl_group_id,package_id) values(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)cause:    PSQLException: ERROR: cannot execute INSERT in a read-only transaction

DTS-RETRY-ERR-0234:DTS-70007: resolve failed

可能原因:目标端Kafka的Topic不存在。

解决方法:请在Kafka中创建Topic,然后重新启动任务。阿里云消息队列Kafka版创建Topic的方法,请参见步骤一:创建Topic

报错示例:

jobId=a4ls1hua154****, code=07, errMsg=framework: DTS-31009: In process of processing data (recordRange: 609533659628489****) failedcause:    FatalAnyAllException: common: DTS-100047: retry 0 times, 300800 seconds, which exceed the supposed 43200 seconds    CriticalAnyAllException: nosql-replicate: DTS-70007: resolve failed

DTS-RETRY-ERR-0235:permission denied to create event trigger

可能原因:任务使用的目标端账号权限不足。

解决方法:使用superuser账号重新配置任务。

报错示例:

jobId=ipix1o7u13u****, code=30, errMsg=ERROR: permission denied to create event trigger "dts_intercept_ddl"  Hint: Must be superuser to create an event trigger.permission denied to create event trigger

DTS-RETRY-ERR-0236:Failed connecting to

可能原因:DTS无法连接Redis实例。

解决方法:请确保Redis实例可以正常连接,然后重新启动任务。若异常无法解决,请联系阿里云技术支持人员处理。

报错示例:

jobId=v41u74p8z4q****, code=07, errMsg=framework: DTS-31007: fetch and merge schemas failedcause:    RedisServerException: redis: DTS-10015: redis: DTS-10010: Failed connecting to 100.115.XX.XX:XXX    RedisClientInitiationException: redis: DTS-10010: Failed connecting to 100.115.XX.XX:XXX

DTS-RETRY-ERR-0238:fetch log failed

可能原因:DTS任务获取日志遇到了问题。

解决方法:请联系阿里云技术支持人员处理。

报错示例:

jobId=q5lk1uak16g****, code=15, errMsg=dts-k-src: DTS-52111: Increment Context Is Not Running..: mysql-reader: DTS-52210: fetch log failedcause:    IOException: java.lang.ArrayIndexOutOfBoundsException: 6    ArrayIndexOutOfBoundsException: 6cause:    CriticalAnyAllException: mysql-reader: DTS-52210: fetch log failed    IOException: java.lang.ArrayIndexOutOfBoundsException: 6    ArrayIndexOutOfBoundsException: 6    fetch log failed

DTS-RETRY-ERR-0239:Prematurely reached end of stream

可能原因:DTS读取源端数据库超时。

解决方法:请在业务允许的前提条件,取消数据库超时时间的限制。若异常无法解决,若异常无法解决,请联系阿里云技术支持人员处理。

报错示例:

jobId=mc9g16xe16d****, code=03, errMsg=framework: DTS-31009: In process of processing data (recordRange: 859496203590356****) failedcause:    FatalAnyAllException: common: DTS-100047: retry 0 times, 66950 seconds, which exceed the supposed 43200 seconds    RuntimeException: com.mongodb.MongoSocketReadException: Prematurely reached end of stream    MongoSocketReadException: Prematurely reached end of stream    Prematurely reached end of stream

DTS-RETRY-ERR-0240:Can not read response from server

可能原因:DTS无法获取服务端返回的数据。

解决方法:请确保网络连接正常,然后重新启动任务。若异常无法解决,请联系阿里云技术支持人员处理。

报错示例:

jobId=v72o16zi165****, code=03, errMsg=framework: DTS-31009: In process of processing data (recordRange: 71735997624221****) failedcause:    FatalAnyAllException: common: DTS-100047: retry 0 times, 2181031 seconds, which exceed the supposed 600 seconds    CriticalAnyAllException: framework: DTS-31009: read source data error    SQLException: Error retrieving record: Unexpected Exception: java.io.EOFException message given: Can not read response from server. Expected to read 11,302 bytes, read 6,941 bytes before connection was unexpectedly lost. ****

DTS-RETRY-ERR-0241:Unknown character set

可能原因:目标库实例没有报错信息中的字符集。

解决方法:建议源和目标库的版本保持一致,或者从低版本同步或迁移至高版本数据库实例,以保障兼容性。

报错示例:

jobId=n01d11o816q****, code=02, errMsg=Unknown character set: 'latin1'. Unknown character set

DTS-RETRY-ERR-0242:Could not find first log file name in binary log index file

可能原因:Binlog index信息没有更新,而Binlog日志已被清理。

解决方法:请尝试恢复Binlog日志,或重新配置DTS任务。

报错示例:

jobId=ud3m8u32154****, code=15, errMsg=dts-k-src: DTS-52102: retry final failedcause:    RecoverableAnyAllException: dts-k-src: DTS-52110: MySQLRecordExtractor Init Error: mysql-reader: DTS-52212: MySQL binlog 167384**** is not exists.    CriticalAnyAllException: mysql-reader: DTS-52212: MySQL binlog 167384**** is not exists.    IOException: java.sql.SQLException: Could not find first log file name in binary log index file    SQLException: Could not find first log file name in binary log index file

DTS-RETRY-ERR-0243:Record Convert error in table

可能原因:目标端写入数据的类型与表结构定义的数据类型不一致。

解决方法:请修改目标端表结构,使源端和目标端表结构保持一致,然后重新启动任务。

报错示例:

jobId=el2m7hna195****, code=07, errMsg=DTS-077400: Record Convert error in table midea_database.midea_mmds_share_link_visit_log msg=[{column:object_id, value:6ba977b23944f68bf7124946aa3f****} To BIGINT]. cause by [{column:object_id, value:6ba977b23944f68bf7124946aa3f****} To BIGINT]    Record Convert error in table

DTS-RETRY-ERR-0245:Authentication failed

可能原因:DTS无法访问MongoDB的鉴权数据库。

解决方法:请检查任务使用的数据库账号和数据库密码是否可以正常连接数据库。

报错示例:

jobId=qbrn8mcj21p****, code=15, errMsg=dts-k-src: DTS-52102: retry final failedcause:    MongoSecurityException: Exception authenticating MongoCredential{mechanism=SCRAM-SHA-256, userName='dba_rw', source='admin', password=<hidden>, mechanismProperties={}}    MongoCommandException: Command failed with error 18 (AuthenticationFailed): 'Authentication failed.' on server 172.19.XX.XX:XXX. The full response is {"ok": 0.0, "errmsg": "Authentication failed.", "code": 18, "codeName": "AuthenticationFailed", "$clusterTime": {"clusterTime": {"$timestamp": {"t": 1673836841, "i": 41}}, "signature": {"hash": {"$binary": "gwps88TJItDHfP+xz0VQlY+****=", "$type": "00"}, "keyId": {"$numberLong": "715470944398737****"}}}, "operationTime": {"$timestamp": {"t": 1673836841, "i": 40}}}    Authentication failed

DTS-RETRY-ERR-0246:run check job timeout

可能原因:数据校验任务启动超时。

解决方法:请联系阿里云技术支持人员处理。

报错示例:

jobId=q6rh1hi510o****, code=05, errMsg=run check job timeout

DTS-RETRY-ERR-0247:cannot execute DELETE in a read-only transaction

可能原因:在只读节点上执行DELETE操作。

解决方法:请重新启动任务。若异常无法解决,请联系阿里云技术支持人员处理。

报错示例:

jobId=amjm8zwvc4h****, code=07, errMsg=DTS-077100: Record Replicator error in table dataintegration.dws_kmzk_stock_info. cause by [org.postgresql.util.PSQLException: ERROR: cannot execute DELETE in a read-only transaction] About more information in ****  cannot execute DELETE in a read-only transaction 

DTS-RETRY-ERR-0248:Socket read timed out

可能原因:DTS读取源库数据超时。

解决方法:请确保DTS可以正常连接源库,然后重新启动任务。

报错示例:

id=38240****, jobId=vd6e8ylpa42****, value={"errMsg":"IO Error: Socket read timed out@error code:17002","jobId":"qs8x8nf815l****","maxRetryTime":7200,"module":"reader","retryCount":3,"retryTarget":"srcDB","retryTime":66,"retrying":true}

DTS-RETRY-ERR-0249:Version has changed

可能原因:在目标库中执行的SQL,依赖的对象(如函数或触发器依赖的函数对象等)不存在。

解决方法:请确保目标库中存在执行SQL依赖的对象。

报错示例:如下报错信息,表示目标库中不存在update_version函数。

jobId=kp0e16ge168****, value={"errMsg":"transaction-replicate: DTS-70004: execute statement failed: /*we2s1q2p16xc*****/update public.reconciliation set id = ?,create_time = ?,last_update = ?,data = ?,version = ? where id = ? \ncause:\n\tPSQLException: ERROR: Version has changed\n  Where: PL/pgSQL function update_version() line 8 at RAISE","jobId":"we2s1q2p16x****","maxRetryTime":43200,"module":"writer","retryCount":311,"retryTarget":"destDB","retryTime":3316,"retrying":true}  Version has changed

DTS-RETRY-ERR-0250:invalid identifier

可能原因:目标库的SQL执行失败。

解决方法:

  • 同步任务:使用修改同步对象功能将报错的表从同步对象中移除,然后重新启动任务。移除同步对象的方法,请参见移除同步对象

  • 迁移任务:重新配置任务,待迁移的对象不选择报错的表。

报错示例:

id=38235****, jobId=thvd19f2136****, value={"errMsg":"transaction-replicate: DTS-70004: execute statement failed: /*ewjw1e6a13mc9stOraclePrepareStatementSqlEngine(10)*/insert into \"SNPCENTER\".\"BIND\"(\"id\", \"sn\", \"snapshot_id\", \"parent_sn\", \"created_at\", \"updated_at\", \"parent_sn_from\", \"sn_from\") values(?, ?, ?, ?, ?, ?, ?, ?)\ncause:\n\tSQLSyntaxErrorException: ORA-00904: \"ID\": invalid identifier\n","jobId":"ewjw1e6a13m****","maxRetryTime":43200,"module":"writer","retryCount":421,"retryTarget":"destDB","retryTime":4315,"retrying":true}

DTS-RETRY-ERR-0251:unsupported value convert for

可能原因:目标端写入数据的类型与表结构定义的数据类型不一致。

解决方法:请修改目标端表结构,使源端和目标端表结构保持一致,然后重新启动任务。

报错示例:

id=38235****, jobId=a4410xe0123****, value={"errMsg":"jdbc-utils: DTS-11001: jdbc-utils: DTS-11001: Adb30StringDisperse: unsupported value convert for [****] convert to [chief_account JSON nullable as chief_account] targetDatabase:hdd_prod_1 targetTable:basic_dock_account\ncause:\n\tJdbcUtilsException: jdbc-utils: DTS-11001: Adb30StringDisperse: unsupported value convert for [****] convert to [chief_account JSON nullable as chief_account]","jobId":"vgn10ctk19o****","maxRetryTime":7200,"module":"writer","retryCount":114,"retryTarget":"destDB","retryTime":1142,"retrying":true}

DTS-RETRY-ERR-0253:The network connection is not available, Please check the network connection of the source database and the target database

可能原因:网络连接失败。

解决方法:请确保源端数据库的状态正常且可以正常连接,然后重新启动任务。若异常无法解决,请联系阿里云技术支持人员处理。

报错示例:

The network connection is not available, Please check the network connection of the source database and the target database

DTS-RETRY-ERR-0254:获取数据库 (.*)? 连接失败

可能原因:无法连接到源端数据库。

解决方法:请确保源端数据库可以正常连接,然后重新启动任务。

报错示例:

jobId=ce7v1agz31w****, errMsg=获取数据库[S124.221.XX.XX:XXX]连接失败

DTS-RETRY-ERR-0255:NOSCRIPT No matching script

可能原因:源库Lua脚本映射到目标库存在跨slot场景。

解决方法:请确保源库Lua脚本映射到目标库后在同一个slot中,然后重新启动任务。若异常无法解决,请联系阿里云技术支持人员处理。

报错示例:

jobId=envr2tt1x3b****, errMsg=redis.clients.jedis.exceptions.JedisNoScriptException: NOSCRIPT No matching script. Please use EVAL.

DTS-RETRY-ERR-0256:dayOfMonth must be in the range

可能原因:目标端待写入的数据中有非法数据(例如非法的日期时间数据),导致数据写入失败。

解决方法:请修改目标端表结构,使源端和目标端表结构保持一致,然后重新启动任务。

报错示例:

**** 
2023-02-03 18:23:37 [sink-22] ERROR Adb30ReplicateSink: 269 - 22 execute batch dml failed cause [15018, 20230203182337192168132064031516924991] Cannot parse "2023-02-00 06:08:11.0": Value 0 for dayOfMonth must be in the range [1,28]java.sql.SQLException: [15018, 2023020318233719216813206403151692491] Cannot parse "2023-02-00 06:08:11.0": Value 0 for dayOfMonth must be in the range [1,28]

DTS-RETRY-ERR-0257:Invalid JSON text in argument 1 to function cast_as_json

可能原因:报错信息中的JSON字段内容为空,无法写入目标端数据库。

解决方法:

  • 同步任务:将报错信息中的表或热点表从待同步对象中移除,然后清空目标库中已移除表的数据,再重新将移除的表添加到同步任务中。更多信息,请参见如何解决同步实例关于表的报错?

  • 迁移任务:请重试。若异常无法解决,请联系阿里云技术支持人员处理。

报错示例:

****  `project_description` = x'E6B58BE8AF95E9A1B9E79BAE303731****',`school_id` = 2632,`project_id` = 1,`group_id` = 36,`is_use` = 1 WHERE `project_id` = 1 limit 1, error detail message:Data truncation: Invalid JSON text in argument 1 to function cast_as_json: "The document is empty." at position 0.     MysqlDataTruncation: Data truncation: Invalid JSON text in argument 1 to function cast_as_json: "The document is empty." at position 0.

DTS-RETRY-ERR-0258:failed to parse date field

可能原因:目标端Elasticsearch中date类型字段的格式有问题,导致数据写入失败。

解决方法:请根据源端数据和具体报错信息,修改目标端Elasticsearch中date类型字段的格式,然后重新启动任务。

报错示例:

****
error detail message:es: DTS-10035: failed to parse field [mark_high_quality_label_time] of type [date] in document with id '30020'. Preview of field's value: '2023-02-03 17:40:27.0', failed to parse date field [2023-02-03 17:40:27.0] with format [strict_date_optional_time||epoch_millis]SQLException errorCode:0, record is: 
****

DTS-RETRY-ERR-0259:User (.*)? has exceeded the 'max_user_connections' resource

可能原因:数据库连接数达到上限(超过max_user_connections限制)。

解决方法:请适当调大数据库的最大连接数,然后重新启动任务。关于RDS MySQL调整参数值的方法,请参见连接RDS MySQL时报错has more than 'max_user_connections'或has exceeded the 'max_user_connections'

报错示例:

jobId=v7yw20eea18****, errMsg=com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: User 'rrc_datax' has exceeded the 'max_user_connections' resource (current value: 50)

DTS-RETRY-ERR-0260:Failed For Wait Mysql Server Handshake

可能原因:数据库实例无法连接。

解决方法:请确保数据库可以正常连接,然后重新启动任务。若异常无法解决,请联系阿里云技术支持人员处理。

报错示例:

jobId=r54w1gex11x****, errMsg=Increment Context Is Not Running..: com.alibaba.dts.exception.message.LocalException: DTS-002010 Unknow connect db 100.100.66.1:12703 failure. Original error: Failed For Wait Mysql Server Handshake, please check the health of db For more information please refer to https://****

DTS-RETRY-ERR-0261:UNSupport sqlserver without database backup

可能原因:当前任务的自建SQL Server实例没有开启数据库备份功能。

解决方法:请开启自建SQL Server实例的数据库备份功能,然后重新启动任务。更多信息,请参见准备工作

报错示例:

jobId=ibeh15uc28l****, errMsg=DTS-52102: retry final failed cause:     RecoverableAnyAllException: dts-k-src: DTS-52110: SQLServerRecordExtractor Init Error: sqlserver-reader: DTS-52402: UNSupport sqlserver without database backup     CriticalAnyAllException: sqlserver-reader: DTS-52402: UNSupport sqlserver without database backup

DTS-RETRY-ERR-0262:command 'SCRIPT' is not allowed

可能原因:DTS不支持同步或迁移Redis实例的SCRIPT脚本。

解决方法:请确保源端Redis实例没有SCRIPT脚本,然后重新启动任务。若异常无法解决,请联系阿里云技术支持人员处理。

报错示例:

jobId=mn9e254ps3r****,errMsg=redis.clients.jedis.exceptions.JedisDataException: ERR handle request, command 'SCRIPT' is not allowed

DTS-RETRY-ERR-0263:UnsupportedException (.*)? Cannot support Version

可能原因:DTS暂不支持Redis 7.0及以上版本。

解决方法:无。

报错示例:

jobId=hp9m2axpv47****,errMsg=DTS-31009: In process of processing data (recordRange: 27873049260****) failed cause:     FatalAnyAllException: common: DTS-100047: retry 0 times, 1601 seconds, which exceed the supposed 43200 seconds     RedisServerException: redis: DTS-10015: redis: DTS-11005: Cannot support Version: 10     UnsupportedException: redis: DTS-11005: Cannot support Version: 10

DTS-RETRY-ERR-0264:TDDL-4500 (.*)? Do not support partition by

可能原因:DRDS模式的PolarDB-X数据库不支持分区。

解决方法:

  • 方法一:订正DDL,删除分区信息,然后重新启动任务。

  • 方法二:请使用AUTO模式的PolarDB-X数据库配置任务。

报错示例:

jobId=c78q2olvv3c****, errMsg=[15a0362958404000][11.117.XXX.XXX:3088][jm_live_data_pool]ERR-CODE: [TDDL-4500][ERR_PARSER] Do not support partition by. . 

DTS-RETRY-ERR-0265:Rejecting mapping update to

可能原因:DTS任务的目标端已经存在需要创建的INDEX。

解决方法:请在业务允许的前提条件下,删除目标端中报错信息的INDEX,然后重新启动任务。

报错示例:

jobId=hvfm2r55y36****, errMsg=PUT http://172.17.XX.XX:XXX/equity_request_log/_mapping/equity_request_log_1?include_type_name=true&pretty=true: HTTP/1.1 400 Bad Request {   "error" : {     "root_cause" : [       {         "type" : "illegal_argument_exception",         "reason" : "Rejecting mapping update to [equity_request_log] as the final mapping would have more than 1 type: [_doc, equity_request_log_1]"       }     ],     "type" : "illegal_argument_exception",     "reason" : "Rejecting mapping update to [equity_request_log] as the final mapping would have more than 1 type: [_doc, equity_request_log_1]"   },   "status" : 400 } . PUT http://172.17.XX.XX:XXX/equity_request_log/_mapping/equity_request_log_10?include_type_name=true&pretty=true: HTTP/1.1 400 Bad Request {   "error" : {     "root_cause" : [       {         "type" : "illegal_argument_exception",         "reason" : "Rejecting mapping update to [equity_request_log] as the final mapping would have more than 1 type: [_doc, equity_request_log_10]"       }     ],     "type" : "illegal_argument_exception",     "reason" : "Rejecting mapping update to [equity_request_log] as the final mapping would have more than 1 type: [_doc, equity_request_log_10]"   },   "status" : 400 }

DTS-RETRY-ERR-0266:Unknown collation

可能原因:目标库不支持源端表的编码格式。

解决方法:

  • 方法一:在业务允许的前提条件下,修改原库的编码格式,然后重新启动任务。

  • 方法二:订正目标库的DDL,然后重新启动任务。

报错示例:

jobId=eb6o2xm5e3o****, errMsg=Unknown collation: 'utf8mb4_0900_ai_ci'. Unknown collation: 'utf8mb4_0900_ai_ci'. Unknown collation: 'utf8mb4_0900_ai_ci'. Unknown collation: 'utf8mb4_0900_ai_ci'. Unknown collation: 'utf8mb4_0900_ai_ci'. Unknown collation: 'utf8mb4_0900_ai_ci'. Unknown collation: 'utf8mb4_0900_ai_ci'. Unknown collation: 'utf8mb4_0900_ai_ci'. Unknown collation: 'utf8mb4_0900_ai_ci'. Unknown collation: 'utf8mb4_0900_ai_ci'. Unknown collation: 'utf8mb4_0900_ai_ci'. Unknown collation: 'utf8mb4_0900_ai_ci'. Unknown collation: 'utf8mb4_0900_ai_ci'. Unknown collation: 'utf8mb4_0900_ai_ci'. Unknown collation: 'utf8mb4_0900_ai_ci'. Unknown collation: 'utf8mb4_0900_ai_ci'. Unknown collation: 'utf8mb4_0900_ai_ci'. Unknown collation: 'utf8mb4_0900_ai_ci'. Unknown collation: 'utf8mb4_0900_ai_ci'. Unknown collation: 'utf8mb4_0900_ai_ci'. Unknown collation: 'utf8mb4_0900_ai_ci'. Unknown collation: 'utf8mb4_0900_ai_ci'. Unknown collation: 'utf8mb4_0900_ai_ci'. Unknown collation: 'utf8mb4_0900_ai_ci'. Unknown collation: 'utf8mb4_0900_ai_ci'.

DTS-RETRY-ERR-0267:列名 (.*)? 无效

可能原因:目标库报错信息中的列不存在,导致依赖该列的对象无法创建。

解决方法:检查对象有效性,若已失效 ,请忽略该对象,然后重新启动任务。若异常无法解决,请联系阿里云技术支持人员处理。

报错示例:

jobId=ofyn25r1t4b****, errMsg=列名 'TotalAmount' 无效。. 列名 'wx_flag' 无效。. 

DTS-RETRY-ERR-0268:对象名 (.*)? 无效

可能原因:当前任务依赖的对象无效。

解决方法:确认源库中是否存在当前任务依赖的对象。

  • 存在:将依赖的对象添加为待同步或迁移对象。

  • 不存在:请联系阿里云技术支持人员处理。

报错示例:

jobId=dcpd2mm3p3f****, errMsg=对象名 'dbo.V_BS_INFO' 无效。. 对象名 'dbo.V_BS_INFO' 无效。. 对象名 'V_BS_INFO' 无效。. 对象名 'V_BS_INFO' 无效。. 对象名 'V_CGO_CN_PRE' 无效。. 

DTS-RETRY-ERR-0269:Error column name

可能原因:报错对象的编码方式与目标端的编码方式不一致。

解决方法:请根据具体报错信息,确保目标端与源端的编码方式一致,然后重新启动任务。

报错示例:

jobId=t6ds676q308****, errMsg=DTS-1029999 The ddlmove task t6ds676q308**** was finished,but 1 objects failed,error message:DTS-1020042 Execute sql error sql: DTS-1020042 Execute sql error sql: [13000, 202006301129351720160291070345367****] Error column name: 'id',only support '0-9,a-z,A-Z,_-()' and first letter must be a-z or 

DTS-RETRY-ERR-0270:MongoCommandException (.*)? operation was interrupted

可能原因:创建MongoDB的INDEX超时。

解决方法:请重新启动任务。若异常无法解决,请适当调大MongoDB执行DDL的超时时间,然后重新启动任务。

报错示例:

jobId=b0tm16z731k****, errMsg=com.mongodb.MongoCommandException: Command failed with error 11602: 'operation was interrupted' on server 172.17.XX.XX:XXX. The full response is { "writeConcernError" : { "code" : 11602, "codeName" : "InterruptedDueToReplStateChange", "errmsg" : "operation was interrupted" }, "operationTime" : { "$timestamp" : { "t" : 1675441117, "i" : 2682 } }, "ok" : 0.0, "errmsg" : "operation was interrupted", "code" : 11602, "codeName" : "InterruptedDueToReplStateChange", "$clusterTime" : { "clusterTime" : { "$timestamp" : { "t" : 1675441145, "i" : 65 } }, "signature" : { "hash" : { "$binary" : "HKKlWcyFaBhMJYL5Fk9kGlpIyCU=", "$type" : "00" }, "keyId" : { "$numberLong" : "716938648110917****" } } } }. com.mongodb.MongoCommandException: Command failed with error 11602: 'operation was interrupted' on server 172.17.XX.XX:XXX. The full response is { "writeConcernError" : { "code" : 11602, "codeName" : "InterruptedDueToReplStateChange", "errmsg" : "operation was interrupted" }, "operationTime" : { "$timestamp" : { "t" : 1675441117, "i" : 2667 } }, "ok" : 0.0, "errmsg" : "operation was interrupted", "code" : 11602, "codeName" : "InterruptedDueToReplStateChange", "$clusterTime" : { "clusterTime" : { "$timestamp" : { "t" : 1675441145, "i" : 65 } }, "signature" : { "hash" : { "$binary" : "HKKlWcyFaBhMJYL5Fk9kGlpIyCU=", "$type" : "00" }, "keyId" : { "$numberLong" : "716938648110917****" } } } }.

DTS-RETRY-ERR-0271:fullcheck find different records

可能原因:数据校验任务校验出了不一致的数据。

解决方法:该报错是任务正常运行的结果,表示全量校验任务发现源库与目标库存在不一致的数据。

  • 若您设置的全量校验模式按抽样比例进行HASH校验:您可以在校验详情页签的操作下方查看或下载检验报告获取不一致信息。

  • 若您设置的全量校验模式按表行数进行校验:报错信息后面的数字表示目标库与源库不一致数据的总行数,您可以在校验详情页签查看不一致数据对应的表名。

报错示例:

**** fullcheck find different records : 9

DTS-RETRY-ERR-0272:UnSupport this db type

可能原因:当前任务暂不支持ETL功能。

解决方法:去除当前任务ETL功能的配置。

报错示例:

jobId=uqct2lfuv57****, errMsg=java.lang.Exception: UnSupport this db type : 131072
  at ****

DTS-RETRY-ERR-0273:Deadlock found when trying to get lock

可能原因:有其他用户在向目标端写入数据,导致当前任务在目标端写入数据时遇到死锁。

解决方法:请在业务允许的前提条件下,暂停其他用户在目标端的数据写入。若异常无法解决,请联系阿里云技术支持人员处理。

报错示例:

jobId=x1sz2los149****, errMsg=framework: DTS-30011: currentRunningSQL: /* DTS-full-x1sz2los149**** */insert ignore into **** , reason: Deadlock found when trying to get lock; try restarting transactioncause:    BatchUpdateException: Deadlock found when trying to get lock; try restarting transaction    MySQLTransactionRollbackException: Deadlock found when trying to get lock; try restarting transaction

DTS-RETRY-ERR-0274:Tablespace has been discarded for table

可能原因:源库数据读取失败。

解决方法:请确保源库中报错的表可以正常读取,然后重新启动任务。

报错示例:

jobId=yd0b2c2a148****, errMsg=framework: DTS-31009: In process of processing data (recordRange: 381808368541709****) failedcause:    FatalAnyAllException: common: DTS-100047: retry 712 times, 7205110 seconds, which exceed the supposed 7200 seconds    CriticalAnyAllException: framework: DTS-31009: read source data error    SQLException: Tablespace has been discarded for table 'dtstest'

DTS-RETRY-ERR-0275:is not nullable (.*)? but it's default value is null

可能原因:目标端含非空约束的字段写入了null值。

解决方法:在业务允许的前提条件下,修改目标表结构(去除非空约束),然后重新启动任务。

报错示例:

jobId=lg7d2ofq14v****, errMsg=common: DTS-100047: retry 4310 times, 43202322 seconds, which exceed the supposed 43200 secondscause:    RuntimeException: Table '`dw`.`f_fa_fnd_repay_recon`' with columns [****] and batch exception is {[13000, 202302150420401921681740920315141****] F_FA_FND_REPAY_RECON.BANK is not nullable, but it's default value is null, Error : Field 'F_FA_FND_REPAY_RECON.BANK' doesn't have a default value}    BatchUpdateException: [13000, 202302150420401921681740920315141****] F_FA_FND_REPAY_RECON.BANK is not nullable, but it's default value is null, Error : Field 'F_FA_FND_REPAY_RECON.BANK' doesn't have a default value    MySQLSyntaxErrorException: [13000, 202302150420401921681740920315141****] F_FA_FND_REPAY_RECON.BANK is not nullable, but it's default value is null, Error : Field 'F_FA_FND_REPAY_RECON.BANK' doesn't have a default value

DTS-RETRY-ERR-0276:if (.*)? is specified it must not be empty

可能原因:映射到Elasticsearch中_id列的值为空。

解决方法:请重新配置任务,并在选择同步或迁移对象时配置过滤条件,过滤掉值为空字符串的数据。更多信息,请参见设置过滤条件

报错示例:

jobId=usbt2jev15uw11k, errMsg=common: DTS-100047: retry 15 times, 265289 seconds, which exceed the supposed 9223372036854775807 secondscause:    IOException: es: DTS-10035: if _id is specified it must not be empty    CriticalAnyAllException: es: DTS-10035: if _id is specified it must not be empty

DTS-RETRY-ERR-0277:The primary key schema is not match which defined in table meta

可能原因:Schema当前的主键与DTS获取的信息不一致。

解决方法:请重新创建任务。若异常无法解决,请联系阿里云技术支持人员处理。

报错示例:

jobId=j4qs239715r****, errMsg=common: DTS-100047: retry 0 times, 2056 seconds, which exceed the supposed 43200 secondscause:    ClientException: The primary key schema is not match which defined in table meta.

DTS-RETRY-ERR-0278:Unexpected end of stream

可能原因:DTS连接数据库实例时遇到问题。

解决方法:请检查网络白名单等,确保数据库可以正常连接,然后重新启动任务。更多信息,请参见源库连接性检查目标数据库连接性检查

报错示例:

jobId=ofmz2m6015t****, errMsg=framework: DTS-31007: fetch and merge schemas failedcause:    RedisServerException: redis: DTS-10015: redis: DTS-10010: Unexpected end of stream.    RedisClientInitiationException: redis: DTS-10010: Unexpected end of stream.

DTS-RETRY-ERR-0279:Unsupport batch replicate in kafka

可能原因:当前任务不支持batch写入,需要关闭batch功能。

解决方法:请联系阿里云技术支持人员处理。

报错示例:

jobId=f3uc324ha1c****, errMsg=kafka: DTS-31005: Unsupport batch replicate in kafka

DTS-RETRY-ERR-0280:Could not get a resource since the pool is exhausted

可能原因:DTS无法连接Redis实例。

解决方法:请确保DTS可以正常连接源和目标Redis实例,然后重新启动任务。

报错示例:

jobId=sjcg2si2141****, errMsg=redis: DTS-10015: Could not get a resource since the pool is exhaustedcause:    JedisExhaustedPoolException: Could not get a resource since the pool is exhausted    NoSuchElementException: Unable to validate object

DTS-RETRY-ERR-0281:RDB Magic String Error

可能原因:DTS不支持当前版本的Redis实例,从而导致解析RDB失败。

解决方法:请使用DTS支持的Redis实例配置任务。若异常无法解决,请联系阿里云技术支持人员处理。

报错示例:

jobId=rs1r2ub614****, errMsg=framework: DTS-31009: In process of processing data (recordRange: 2093173747887374336) failedcause:    FatalAnyAllException: common: DTS-100047: retry 0 times, 1501 seconds, which exceed the supposed 43200 seconds    RedisServerException: redis: DTS-10015: redis: DTS-10019: RDB Magic String Error: [84, 68, 69, 95, 69, 78, 65, 66, 76]    UnexpectedRDBFromatException: redis: DTS-10019: RDB Magic String Error: [84, 68, 69, 95, 69, 78, 65, 66, 76]

DTS-RETRY-ERR-0282:Can not create connection to source database

可能原因:DTS连接数据库实例时遇到问题。

解决方法:请检查网络白名单等,确保数据库可以正常连接,然后重新启动任务。更多信息,请参见源库连接性检查目标数据库连接性检查

报错示例:

jobId=sd4q2knu13t****, errMsg=dts-k-src: DTS-52111: Increment Context Is Not Running..: cause:    CriticalAnyAllException: sqlserver-reader: DTS-52410: Sqlserver log fetch failed    CriticalAnyAllException: sqlserver-reader: DTS--0001: Can not create connection to source database    SQLServerException:  ****

DTS-RETRY-ERR-0283:the password has expired

可能原因:Oracle数据库的账号过期,导致DTS无法连接数据库。

解决方法:请修复数据库账号(如在数据库中修改账号密码),并确保DTS可以通过该账号正常连接Oracle数据库。

报错示例:

jobId=h0vu2cqvb73****, errMsg=dts-k-src: DTS-52111: Increment Context Is Not Running..: cause:    CriticalAnyAllException: oracle-reader: DTS-52320: Fetch oracle log failed    CriticalAnyAllException: oracle-reader: DTS-52320: Fetch redo log failed    CriticalAnyAllException: oracle-reader: DTS--0001: Can not create connection to source database, case by ORA-28001: the password has expired    SQLException: ORA-28001: the password has expired

DTS-RETRY-ERR-0284:postgres create local slot failed

可能原因:DTS在源库创建replication slot失败。

解决方法:请在源库执行SELECT * FROM pg_stat_activity WHERE pid != pg_backend_pid() AND (now() - xact_start > INTERVAL '600s');命令,查看是否因存在长事务而阻塞了slot的创建。若存在长事务,请等待长事务结束后重试。若异常无法解决,请联系阿里云技术支持人员处理。

报错示例:

jobId=hkdy2ysl13j****, errMsg=bisId【hl3o2c0n13r****】run fail by ****,errorMsg:reader m36f2x3115g**** start fail,current state failed , msg : dts-k-src: DTS-52111: Increment Context Is Not Running..: cause:    CriticalAnyAllException: postgresql-reader: DTS-52510: Fetch postgresql logical log failed    CriticalAnyAllException: postgresql-reader: DTS-52513: postgres create local slot failed

DTS-RETRY-ERR-0285:Error In Parsing RDB

可能原因:任务使用的账号权限不足,从而导致解析RDB失败。

解决方法:请根据相关配置文档,确定Redis账号的权限是否符合要求。若不符合,请授予账号正确的权限后重试;若符合,请联系阿里云技术支持人员处理。

报错示例:

jobId=v5i12pl522s****, errMsg=framework: DTS-31009: In process of processing data (recordRange: 27873049260****) failedcause:    RedisServerException: redis: DTS-10015: redis: DTS-10019: Error In Parsing RDB, Format Error, First Line is :-ERR request failed to route, command 'sync' raw ****

DTS-RETRY-ERR-0286:You can't write or read against a disable instance

可能原因:源端数据库不可读写。

解决方法:请确保源端数据库可以正常读写,然后重新启动任务。

报错示例:

jobId=rp4r2jdc14y****, errMsg=framework: DTS-31007: fetch and merge schemas failedcause:    RuntimeException: sourceDB execute info Keyspace return unexpected error, response: null    JedisDataException: ERR DISABLE You can't write or read against a disable instance

DTS-RETRY-ERR-0287:Value (.*)? for monthOfYear must be in the range

可能原因:源库中的日期数值不符合规范。

解决方法:

报错示例:

DTS-077100: Record Replicator error in table hdd_ams.ams_****. cause by [java.sql.SQLException: [15018, 202407231646521720170412240345328****] Cannot parse "0000-00-23 15:30:00": Value 0 for monthOfYear must be in the range [1,12]] About more information in [https://****].

DTS-RETRY-ERR-0288:Invalidate value(.*)? , `year` must be between 1 and 9999

可能原因:源库中的日期数值不符合规范。

解决方法:

报错示例:

DTS-100047: retry 178 times, 1805948 seconds, which exceed the supposed 1800 seconds cause: RuntimeException: Table '`welife****`.`welifehy_welife****`' with columns [`couponId`, `bid`, `cType`, `cSids`, `cAids`, `cName`, `cAmount`, `cValidityType`, `cStartTime`, `cEndTime`, `cValidityDate`, `cValidityDateUnit`, `cSummary`, `cCreator`, `cModifier`, `cCreated`, `cUpdated`, `cDeleted`, `cStatus`, `cLimited`, `wcid`, `cEnabled`, `cProductIds`, `cGiftCouponAmountCustom`, `cLimitTotalAmount`, `cLimitCuponNumber`, `cMixUse`, `cUsingTime`, `cFlag`, `cChannel`, `cCardImg`, `mid`, `cUsingScope`, `cSubCoupons`, `cBelongToPack`, `UpdateTime`, `cGiveFriend`, `cFileder`, `cFiledTime`, `cLimitType`, `cProductExtIds`, `cLimitCoupon`, `cValidTimes`, `cShowName`, `cGiveChannel`, `cSaleMoney`, `cSaleMoneyPriorityRule`, `cAddCardBag`, `cOtherName`, `cDateType`, `cLimitMaxAmount`, `cLimitProductType`, `cExtend`, `cImages`, `cSyncBusifavor`, `cAttribute`, `cPlatform`, `cThirdId`] and batch exception is {[13000, 202407201755101921681291090315124****] (Column => WELIFEHY_WELIFE_COUPONS.CFILEDTIME), Invalidate value=>0000-01-01 00:00:00.0, `year` must be between 1 and 9999} BatchUpdateException: [13000, 2024072017551019216812910903151249727] (Column => WELIFEHY_WELIFE_COUPONS.CFILEDTIME), Invalidate value=>0000-01-01 00:00:00.0, `year` must be between 1 and 9999 MySQLSyntaxErrorException: [13000, 2024072017551019216812910903151249727] (Column => WELIFEHY_WELIFE_COUPONS.CFILEDTIME), Invalidate value=>0000-01-01 00:00:00.0, `year` must be between 1 and 9999

DTS-RETRY-ERR-0289: Source data value(.*)? doesn't match target field(.*)? with type(.*)?

可能原因:源库与目标库存在类型不一致的列,导致DTS写入数据失败。

说明

可能是由于相关DDL同步失败导致,您可以在任务日志中查看失败的DDL。任务日志的查看方法,请参见查询任务日志

解决方法:

  • 同步任务:

    • 方法一:参考源库的库表结构修改目标库的表结构,使源库和目标库的列类型保持一致,然后重新启动任务。

    • 方法二:若任务包含库表结构同步,可以使用修改同步对象功能将报错的表从同步对象中移除,然后再重新添加至同步对象,详情请参见修改同步对象

  • 迁移任务:参考源库的库表结构修改目标库的表结构,使源库和目标库的列类型保持一致,然后重新启动任务。

报错示例:

DTS-100047: retry 4282 times, 43200702 seconds, which exceed the supposed 43200 seconds cause: JdbcUtilsException: jdbc-utils: DTS-11001: jdbc-utils: DTS-11001: Source data value:[course] doesn't match target field:`module` with type:INTEGER, Please check the data types of the source table fields. This issue may be caused by the failure of executing DDL to convert field types on the target side. The failed DDL execution records can be found in dts job's action.log. targetDatabase:new_soke_preview targetTable:approval_templatetargetField: module INTEGER not nullable as module utf8 JdbcUtilsException: jdbc-utils: DTS-11001: Source data value:[course] doesn't match target field:`module` with type:INTEGER, Please check the data types of the source table fields. This issue may be caused by the failure of executing DDL to convert field types on the target side. The failed DDL execution records can be found in dts job's action.log. NumberFormatException: For input string: "course"

DTS-RETRY-ERR-0290:Record Replicator error in table (.*)?. cause by (.*)? Access denied for (.*)?

可能原因:任务使用的账号权限不足,无法执行相应的SQL语句。

解决方法:根据报错信息给任务使用的数据库账号授权,然后重新启动任务。

报错示例:

DTS-077100: Record Replicator error in table mengniu****.osp_sales_plan****. cause by [java.sql.SQLException: [10000, 2024071715225419216806623903151151449] Access denied for INSERT, check db/table/column is MENGNIU_YIPANHUO/OSP_SALES_PLAN_DETAIL/SALES_AREA_CODE, user:mengniu_**** host:% has privilege: UserPrivilege{globalPrivileges=[EXECUTE, INDEX, PROCESS, SELECT, SHOW VIEW, RELOAD, REFERENCES], dbPrivileges={}, tablePrivileges={}, columnsPrivileges={}}] About more information in [https://****].

DTS-RETRY-ERR-0291:column (.*)? is not nullable, can not set null

可能原因:目标表含非空约束的字段写入了null值。

解决方法:在业务允许的前提条件下,修改目标表的结构(去除非空约束),然后重新启动任务。

报错示例:

DTS-100047: retry 179 times, 1800006 seconds, which exceed the supposed 1800 seconds cause: RuntimeException: Table '`basic_supp****`.`dict_diagn****`' with columns [`id`, `org_id`, `icd_code`, `diagnosis_name`, `morphological_code`, `pinyin`, `wbm`, `search_code`, `search_instructions`, `diagnostic_instructions`, `diagnostic_type`, `scope_outpatient`, `scope_inpatient`, `scope_emergency`, `infection`, `special_disease`, `enable_state`, `disease_report`, `remark`, `create_by`, `gmt_create`, `modify_by`, `gmt_modify`, `active`, `scope_emergency_keep`, `code`, `global_code`, `scope_physical_examination`, `gmc_id`, `out_validate_classify`] and batch exception is {[13000, 202407171426491720160012290315104****] syntax error :column 'DICT_DIAGN****.GMT_CR****' is not nullable, can not set null} BatchUpdateException: [13000, 202407171426491720160012290315104****] syntax error :column 'DICT_DIAGN****.GMT_CR****' is not nullable, can not set null MySQLSyntaxErrorException: [13000, 202407171426491720160012290315104****] syntax error :column 'DICT_DIAGN****.GMT_CR****' is not nullable, can not set null

DTS-RETRY-ERR-0292:can not find disperser for field (.*)? with value type (.*)?

可能原因:源库与目标库列的数据类型不匹配,并且无法进行转换。

解决方法:

  • 同步任务:

    • 方法一:参考源库的库表结构修改目标库的表结构,使源库和目标库的列类型保持一致,然后重新启动任务。

    • 方法二:若任务包含库表结构同步,可以使用修改同步对象功能将报错的表从同步对象中移除,然后再重新添加至同步对象,详情请参见修改同步对象

  • 迁移任务:参考源库的库表结构修改目标库的表结构,使源库和目标库的列类型保持一致,然后重新启动任务。

报错示例:

DTS-100047: retry 4320 times, 43204014 seconds, which exceed the supposed 43200 seconds cause: RuntimeException: Table '`adb_jarvi****`.`jarvis_s****`' with columns [`id`, `org_id`, `factory_id`, `putout_category_id`, `bundle_id`, `handle_amount`, `is_putout_all`, `handle_time`, `remark`, `create_time`, `update_time`, `timestamp`] and batch exception is {can not find disperser for field handle_amount DOUBLE nullable as handle_amount utf8 with value type IntegerNumeric} SQLException: can not find disperser for field handle_amount DOUBLE nullable as handle_amount utf8 with value type IntegerNumeric

DTS-RETRY-ERR-0293:db not found. use `show databases` to see all dbs.

可能原因:目标端不存在对应的数据库或Schema。

解决方法:手动在目标端创建该数据库或Schema,并给任务中使用的数据库账号授予足够的权限,然后重新启动任务。

报错示例:

db not found. use `show databases` to see all dbs. current schemas ****

DTS-RETRY-ERR-0294:Invalid default value for (.*)?

可能原因:库表结构同步或迁移中,字段类型映射的默认值不正确。

解决方法:首先在目标端手动创建表,然后在结构迁移模块中跳过该表。

报错示例:

Invalid default value for 'active_****'. ****

DTS-RETRY-ERR-0295:do not have enough privileges to use this database.

可能原因:任务中使用的数据库账号权限不足。

解决方法:

  • 方法一:给任务中使用的数据库账号授予足够的权限,然后重新启动任务。

  • 方法二:请使用权限充足的数据库账号配置任务。

报错示例:

amacadbu**** do not have enough privileges to use this database.. ****

DTS-RETRY-ERR-0296:This connection has been closed

可能原因:源库或目标库异常,导致数据库连接被关闭。

解决方法:请确保源库或目标库的状态正常且可以正常连接,然后重新启动任务。

报错示例:

DTS-61015: Create connection failed (url: 10.25.XX.XX:XX/testdbuser01, user: testdbuser01) cause: PSQLException: This connection has been closed.

DTS-RETRY-ERR-0297:cannot execute (.*)? in a read-only transaction

可能原因:源库是只读数据库或处于只读模式。

解决方法:

  • 源库是只读数据库:使用可读写的源库,重新配置任务。

  • 源库处于只读模式:将源库设置为可读写模式后,重新启动任务。

报错示例:

ERROR: cannot execute CREATE FUNCTION in a read-only transaction

DTS-RETRY-ERR-0298:only (.*)? table allowed

可能原因:目标库对表的数量存在限制。

解决方法:请联系目标数据库的管理员(DBA),请求放开对表数量的限制,然后重新启动任务。

报错示例:

[17020, 202408021111130210411290680315193****] only 2500 table allowed. 

其他常见的报错

DTS-10015

报错说明:无法连接到Redis。

可能原因:Redis服务器异常,导致无法连接。

解决方法:请检查Redis服务端状态,是否能正常连接,并修复Redis问题。

报错示例:

DTS-10015: unreachable redis network.JedisConnectionException: Could not get a resource from the poolJedisConnectionException: Failed connecting to ip_address:portConnectException: Connection timed out (Connection timed out)

DTS-10046

报错说明:SQL执行异常。

可能原因:数据库账号缺失CREATE TABLE权限。

解决方法:检查权限并赋予相应权限。

说明

一般情况下,伴随此错误码,系统会同时输出数据库层面的具体报错信息。请参考具体报错内容,检查错误消息中的SQL语句并进行修复。

报错示例:

DTS-10046: execute sql: CREATE TABLE if not exists`dts`.`table_name` ( `id` int(11) NOTNULL,`column1` bigint(20) NOT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULTCHARSET=utf8 failed. Create TransactionTable failed. cause:MySQLSyntaxErrorException: CREATE command denied to user 'username'@'ip_address' for table 'table_name'

DTS-30005

报错说明:内部处理中保存元数据信息失败。

可能原因:源库存在表名相同,但是大小写不同的表(如,TABLE和table),DTS当前不支持这种形式。

解决方法:检查源库并核实业务逻辑,修改源库中其中1个表名,并重建任务。

报错示例:

DTS-30005: save changed job progress info failed cause: SQLException:result content unexpected. expect 3 time 1, actually [2, 1, 1]

DTS-30011

报错说明:写入数据异常。

可能原因1:

  • 磁盘空间已满。

  • 表的大小已达上限。

解决方法1:

  • 扩容磁盘后重新启动任务。

  • 在数据库层面解决表的上限值问题。解决后重新启动任务。

    说明

    针对MySQL数据库,表的上限值设置,可参考B.3.2.10 The table is full

报错示例1:

DTS-30011:put 2048 records error, currentRunningSQL:insert ignore into `xxx`.`yyy`(...), currentRunningRecordRange:{id:5362875948821643265,xxx.yyy,field:DefaultRecordField:{fieldName=aaa, dataType={typeName:BIGINT, typeId:-5, isLobType:false,encoding:null}, sourceDataType=null, aliases=[], defaultValue=null,nullable=false, unique=true, primary=true,generated=false},leftValue:1293615822270500864,rightValue:1311217506282770432,partition:null}cause: BatchUpdateException: The table 'yyy' is full SQLException: The table'yyy' is full

可能原因2:目标库存在锁等待超时。

解决方法2:标库为MySQL时,可通过以下命令检查目标库锁的状况。

SHOW FULL PROCESSLIST;
SELECT
* FROM innodb_trx;
说明

修复完成后,需要重新启动任务。

报错示例2:

DTS-30011: put 2048 records error, currentRunningSQL:insert ignore into`xxx`.`yyy`(...:{id:4958981218625388545,schema:xxx.yyy,field:DefaultRecordField:{fieldName=aaa, dataType={typeName:INTEGER, typeId:4, isLobType:false,encoding:null}, sourceDataType=null, aliases=[], defaultValue=null,nullable=false, unique=true, primary=true,generated=false},leftValue:512021,rightValue:1024022,partition:null} cause:BatchUpdateException: Lock wait timeout exceeded; try restarting transactionMySQLTransactionRollbackException: Lock wait timeout exceeded; try restartingtransaction

可能原因3:目标库的状态为Read-Only。

解决方法3:

  • 通过SELECT @@read_only;语句检查目标库的状态是否为只读状态。

  • 通过SET GLOBAL read_only=0;语句关闭只读状态。

说明

关闭只读状态后,需要重新启动任务。

报错示例3:

DTS-30011: put 2048 records error, currentRunningSQL:insert ignore into`xxx`.`yyy`(`...,currentRunningRecordRange:{id:4050997257913237860,schema:xxx.yyy,field:DefaultRecordField:{fieldName=id, dataType={typeName:BIGINT, typeId:-5, isLobType:false, encoding:null},sourceDataType=null, aliases=[], defaultValue=null, nullable=false,unique=true, primary=true,generated=false},leftValue:5424204045,rightValue:5424982251,partition:null}cause: SQLException: The MySQL server is running with the --read-only option soit cannot execute this statement

DTS-30018

报错说明:列不存在。

可能原因:

  • 配置任务时未选择结构迁移,从而导致源端和目标端的表结构不一致。

  • 任务配置后,在源端或目标端执行DDL修改了表结构,从而导致源端和目标端的表结构不一致。

解决方法:调整源端和目标端的表结构,确保两端表结构一致。

说明

如果您的实际不符合以上原因,请尝试以下方法:

  • 尝试重新启动任务看能否恢复。

  • 尝试将报错的表从同步对象删除并重新添加,看能否恢复任务。

报错示例:

DTS-30018: Can not find column [column_in_source<-->column_in_target] in target table db_name.table_name

DTS-30019

报错说明:列不存在。

可能原因:

  • 配置任务时未选择结构迁移,从而导致源端和目标端的表结构不一致。

  • 任务配置后,在源端或目标端执行DDL修改了表结构,从而导致源端和目标端的表结构不一致。

解决方法:调整源端和目标端的表结构,确保两端表结构一致。

说明

如果您的实际不符合以上原因,请尝试以下方法:

  • 尝试重新启动任务看能否恢复。

  • 尝试将报错的表从同步对象删除并重新添加,看能否恢复任务。

报错示例:

DTS-30019: Can not find column [column_in_source<-->column_in_target] in target table db_name.table_name

DTS-30020

报错说明:SQL执行异常。

可能原因:数据库账号缺失CREATE TABLE权限。

解决方法:检查权限并赋予相应权限。

说明

一般情况下,伴随此错误码,系统会同时输出数据库层面的具体报错信息。请参考具体报错内容,检查错误消息中的SQL语句并进行修复。

报错示例:

DTS-30020: execute sql: CREATE TABLE if not exists`dts`.`table_name` ( `id` int(11) NOTNULL,`column1` bigint(20) NOT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULTCHARSET=utf8 failed. Create TransactionTable failed. cause:MySQLSyntaxErrorException: CREATE command denied to user 'username'@'ip_address' for table 'table_name'

DTS-31009/DTS-51009/DTS-50019

报错说明:DTS写入模块读取不到DTS缓存模块中指定时间点的数据。

可能原因1:任务暂停过久,重启后DTS缓存模块中已没有相应位点(2021-5-20 21:17:51)的数据。

说明

报错提示显示的时间格式为Unix时间戳,您可用搜索引擎获取Unix时间戳转换工具,将Unix时间戳转换为UTC时间。

解决方法1:

  • 方法一:请查看源库中用于增量数据解析的日志(如Binlog或Redolog等),其时间范围是否包括该时间点。若包括,请联系阿里云技术支持人员处理。

  • 方法二:需重新创建任务。后续执行任务时,请勿长时间暂停任务,暂停超过6个小时,任务将不能成功启动。

可能原因2:任务失败过久,修复后DTS缓存模块中已没有相应位点的数据。

解决方法2:需重新创建任务。后续执行任务时,如遇任务报错,请尽快修复问题并恢复任务,避免任务因失败过久而无法恢复。

可能原因3:全量迁移或全量同步期间,DTS本地会循环存储源库近24小时或者50 GB的数据日志,用于增量数据解析。如果全量迁移或全量同步持续时间较长,DTS本地可能已经清除全量任务启动后缓存的数据日志,导致用于增量解析的数据日志不完整。

解决方法3:需重新创建任务。创建任务前,请评估迁移或同步数据量,如数据量较大,建议拆分成多个迁移或同步任务。

报错示例:

DTS-31009: In process of processing data (recordRange: 911705268553777****) failed cause: CriticalAnyAllException: 
capture-dstore: DTS-51009: Failed to fetch records from dstore CriticalAnyAllException: capture-dstore: DTS-50019: 
seek timestamp for topic [-0] with position [{"timestamp":1621516671, "offset":-1}] failed

DTS-31009/DTS-51009

报错说明:DTS写入模块读取DTS缓存模块时,显示连接超时。

可能原因:网络抖动等原因导致当前数据写入模块连接缓存模块超时。

解决方法:您可以尝试重新启动任务,查看重启后任务是否恢复正常。

报错示例:

DTS-31009: In process of processing data (recordRange: 579980698763814****) failed cause: CriticalAnyAllException: 
capture-dstore: DTS-51009: Failed to fetch records from dstore TimeoutException: Failed to get offsets by times in 
120000 ms

DTS-60001

报错说明:无法连接到源端数据库。

可能原因:用户名或密码不正确。

解决方法:输入正确的用户名和密码,并重新启动任务。

说明

若您的实际不符合上述原因,请尝试以下方法:

报错示例:

DTS-60001: Create connection failed (url:ip_address:port, user: username) cause: SQLException: Access denied for user'username'@'ip_address' (using password: YES)

DTS-61015

报错说明:无法连接到源端数据库。

可能原因:源端数据库连接数过多。

解决方法:调整源端和目标端的表结构,确保两端表结构一致。

说明

如果您的实际不符合以上原因,请尝试以下方法:

  • 尝试重新启动任务看能否恢复。

  • 尝试将报错的表从同步对象删除并重新添加,看能否恢复任务。

报错示例:

DTS-61015: Create connection failed(url:ip_address:port, user: username) cause:MySQLNonTransientConnectionException: Data source rejected establishment ofconnection, message from server: "Too many connections"

DTS-70002

报错说明:无法连接数据库,或对应的库或表不存在。

可能原因:结构迁移报错,导致相应表没有迁移到目标端,也未在目标端手动创建表结构。

解决方法:根据报错信息中的内容检查库或表是否存在。若不存在:

  • 同步任务:将报错的表从同步对象中移除并重新添加,看能否恢复任务。

  • 迁移任务:重建链路。

报错示例:

DTS-70002: get table detail info failed after 151times (user: db_name, database:table_name) MySQLSyntaxErrorException: Table 'db_name.table_name'doesn't exist

DTS-70004

报错说明:SQL执行异常。

说明

一般情况下,目标库为云原生数据仓库 AnalyticDB MySQL 版时,会出现示例报错信息。

可能原因1:链路不支持该类型的DDL操作,从而导致DDL执行失败。

解决方法1:

  • 非整库同步:建议重新同步这张表(即先从同步对象中去掉,然后删除目标库的表,再把这张表加入到同步对象中)。DTS会重新进行包括Schema拉取的全量同步,这样会跳过此类型的DDL操作。

  • 整库同步:在云原生数据仓库 AnalyticDB MySQL 版中新建一张表,表名要不同于报错的表,表结构需要和源表的表结构一致。通过INSERT INTO SELECT将源表中的数据写入新建表中,删除报错的表,然后通过RENAME将新表更名为报错的表名,重新启动任务即可。

报错示例1:

DTS-70004: execute statement failed: /*dts_id=dtsaaaaaaaaaa*/alter table`xxx`.`yyy` modify column `aaa` INT default 0 comment 'bbb' cause:SQLException: [15018, 2021030506452201000000420803151947572] modify column type is not supported, col=x, oldType=bigint, newType=int

可能原因2:目标库执行了SHUTDOWN操作。

解决方法2:确认目标库正常后,重新启动任务。

报错示例2:

DTS-70004:execute statement failed: /*aaaaaaaaaaMysqlEngine(28)*/update `xxx`.`yyy` set... error detail message:Server shutdown in progress MySQLNonTransientConnectionException: Server shutdown in progress

可能原因3:网络问题或账号权限问题,云原生数据仓库 AnalyticDB MySQL 版数据库不允许对应账号进行远程登录。

解决方法3:

说明

修复完成后,需要重新启动任务。

报错示例3:

DTS-70004:execute statement failed: /*aaaaaaaaaaMysqlEngine(27)*/update `xxx`.`yyy` set... cause: SQLException: null, message from server: "Host '192.10.XX.XX' isnot allowed to connect to this MySQL server"

可能原因4:对应表不存在。

解决方法4:

  • 检查该表在目标库是否已被删除。

  • 检查该表的结构是否已同步或迁移到目标库。

说明

修复完成后,需要重新启动任务。

报错示例4:

DTS-70004: execute statement failed: /*bg6l15vf29l1b0vMysqlEngine(16)*/insertinto `xxx`.`yyy` ... error detail message:Table 'xxx.yyy' doesn't existMySQLSyntaxErrorException: Table 'xxx.yyy' doesn't exist

可能原因5:不符合数据库的完整性规范约束,例如,不允许为空的列插入了NULL。

解决方法5:检查表结构和DML语句涉及的记录,确保源和目的表结构一致,或者订正数据后重新启动任务。

报错示例5:

DTS-70004: execute statement failed:/*o3z5bntMysqlEngine(0)*/insert into`xxx`.`yyy` ...error detail message:Column 'aaa' cannot be nullMySQLIntegrityConstraintViolationException: Column 'aaa' cannot be null

可能原因6:目标库账号相关权限不足。

解决方法6:检查目的库账号是否具有报错信息中提示的权限,如有缺失,补足权限后重新启动任务。

报错示例6:

DTS-70004: execute statement failed:/*s2gb356ds228bt8MysqlEngine(0)*/insert into `xxx`.`yyy` (`...`)values(...)error detail message:INSERT command denied to user'user'@'100.104.175.31' for table 'yyy' MySQLSyntaxErrorException: INSERTcommand denied to user 'user'@'100.104.175.31' for table 'yyy'

DTS-70019

报错说明:列不存在。

可能原因:

  • 配置任务时未选择结构迁移,从而导致源端和目标端的表结构不一致。

  • 任务配置后,在源端或目标端执行DDL修改了表结构,从而导致源端和目标端的表结构不一致。

解决方法:调整源端和目标端的表结构,确保两端表结构一致。

说明

如果您的实际不符合以上原因,请尝试以下方法:

  • 尝试重新启动任务看能否恢复。

  • 尝试将报错的表从同步对象删除并重新添加,看能否恢复任务。

报错示例:

DTS-70019: Can not find column [column_in_source<-->column_in_target] in target table db_name.table_name

DTS-71016

报错说明:无法连接到目标端数据库。

可能原因1:目标端数据库连接数过多。

解决方法1:调整目标端数据库的最大连接数,并重新启动任务。

报错示例1:

DTS-71016: connect target failed (url: jdbc:mysql://ip_address:port?parameters)cause: MySQLNonTransientConnectionException: Data source rejected establishmentof connection, message from server: "Too many connections"

可能原因2:同一个IP地址在短时间内产生太多失败的数据库连接,从而导致连接被阻塞。

解决方法2:在目标端数据库侧修复问题(比如提高MAX_CONNECTION_ERRORS的值)后,重新启动任务。

报错示例2:

DTS-71016: connect target failed (url: jdbc:mysql://ip_address:port?parameters)cause: SQLException: null, message from server: "Host 'ip_address' isblocked because of many connection errors; unblock with 'mysqladminflush-hosts'"

DTS-1051009

报错说明:DTS解析MySQL数据库Binlog日志异常。

可能原因:Binlog中的表结构与DTS本地的表结构不一致,导致Binlog解析失败。出现这种表结构不一致主要的原因是:该表结构变更DDL语句未记录到Binlog中,导致DTS解析不到DDL,未更新本地存储的表结构。例如:执行SET SESSION sql_log_bin=0语句修改某个表的字段类型,比如INT(11)修改为BIGINT(20)。

解决方法:需重新加载DTS本地存储的表结构。请联系阿里云技术支持人员处理。

报错示例:

java.IOEException: java.lang.IllegalArgumentException: Valid type fail, Column:column_name,Type:type_number

DTS-100047

报错说明:DTS连接数据库实例超时。

可能原因:数据库实例的超时时间参数过小。

解决方法:请适当调大net_read_timeout和net_write_timeout的参数值,然后重新启动任务。

报错示例:

****
FatalAnyAllException:common:DTS-100047:retry0times,4791628seconds,whichexceedthesupposed600seconds
CriticalAnyAllException:framework:DTS-31009:readsourcedataerror
****