本文为您介绍在配置DTS任务时,系统返回的报错信息(DTS-RETRY-ERR-0701至DTS-RETRY-ERR-0800)及其对应的解决方法。
本文以正则表达式((.*)?)的形式表示报错信息中的变量。
若报错无法解决,您可以通过钉钉(钉钉通讯客户端下载地址)进入到DTS客户交流钉钉群(群号:116655009709),进行咨询。
DTS-RETRY-ERR-0701:There are not any columns in table (.*)?
可能原因:DTS在同步数据时,发现目标MaxCompute表没有任何列定义,导致无法写入。这通常是由于该目标表在创建后未正确配置列信息。
解决方法:请检查并修正目标MaxCompute中的表结构,确保为其定义了正确的列。表结构修复后,重新启动DTS任务。
报错示例:
DTS-100047: retry 120 times, 1200 seconds, which exceed the supposed 1200 seconds cause: RecoverableAnyAllException: transaction-replicate: DTS-70004: execute upload failed, may try it again CriticalAnyAllException: framework: DTS-30018: SchemaManager: There are not any columns in table xxxDTS-RETRY-ERR-0702:There is insufficient system memory in resource pool (.*)? to run this query.
可能原因:目标SQL Server数据库的内部资源池内存不足,无法执行DTS发送的查询请求。这表明数据库服务器当前系统资源紧张。
解决方法:请检查目标SQL Server实例的内存使用情况和整体健康状态。您可能需要优化数据库配置、关闭非必要的服务或增加服务器内存。待数据库资源恢复正常后,重新启动DTS任务。
报错示例:
com.microsoft.sqlserver.jdbc.SQLServerException: There is insufficient system memory in resource pool 'xxx' to run this query.DTS-RETRY-ERR-0703:This slot has been invalidated because it exceeded the maximum reserved size
可能原因:源端PostgreSQL数据库为DTS增量同步所创建的逻辑复制槽(Replication Slot)占用的空间超过了其最大限制,导致该复制槽被数据库自动失效并清理。这意味着DTS需要的增量日志已经丢失。
解决方法:请调大源库参数限制以提供更大的日志保留空间,修改后,请重新创建DTS任务。
报错示例:
DTS-52510: Fetch postgresql logical log failed FatalAnyAllException: common: DTS-100047: retry 60 times, 613155 seconds, which exceed the supposed 43200 seconds CriticalAnyAllException: postgresql-reader:
DTS-52512: postgres open replication steam failed PSQLException: ERROR: can no longer get changes from replication slot "dts_sync_z0sv5l76xxxx" Detail: This slot has been invalidated because it exceeded the maximum reserved size.DTS-RETRY-ERR-0704:Too many parts
可能原因:目标ClickHouse表的分区(parts)数量过多,导致新的数据无法写入。
解决方法:请检查目标ClickHouse实例的健康状态,并优化表的合并(Merge)策略或调整分区键设计。待分区数量恢复正常后,重新启动DTS任务。
报错示例:
DTS-70003: 9 execute transaction has excess max transaction retry time [64] cause:transaction-replicate:
DTS-70004: EXEC statement failed, may try it again cause: RecoverableAnyAllException: transaction-replicate: DTS-70004: EXEC statement failed, may try it again SQLException: ClickHouseEngine(9): meet error, insertSQL:insert into `xxx`.`xxx` () values (),
error detail message:Code: 252. DB::Exception: Too many parts (100079) in all partitions in total in table 'xxx'.
This indicates wrong choice of partition key. The threshold can be modified with 'max_parts_in_total' setting in element in config.xml or with per-table se...DTS-RETRY-ERR-0705:TopicMessageType validate failed
可能原因:目标RocketMQ Topic的消息类型与DTS要求的不匹配。使用DTS需要使用顺序消息(FIFO),但Topic被配置为普通消息(NORMAL)。
解决方法:请检查并修改目标RocketMQ Topic的消息类型,使其符合DTS任务的同步要求(通常需要顺序消息以保证数据一致性)。然后重新启动DTS任务。
报错示例:
DTS-70026: execute ddl failed cause: FatalAnyAllException: common: DTS-100047: retry 15 times, 15 seconds, which exceed the supposed xxx seconds MQBrokerException: CODE: 13 DESC: TopicMessageType validate failed, the expected type is NORMAL, but actual type is FIFO BROKER: 10.xxx.xxx.xxx:xxx For more information, please visit the url, https://rocketmq.apache.org/docs/bestPractice/06FAQDTS-RETRY-ERR-0706:Transaction (Process ID (.*)?) was deadlocked on lock | communication buffer resources with another process and has been chosen as the deadlock victim. Rerun the transaction.
可能原因:DTS向目标SQL Server写入数据时,与其他事务发生了死锁。
可能原因:死锁通常是数据库高并发下的偶发问题,请检查目标数据库是否存在其他长时间持有锁的应用或查询,并进行优化。然后重新启动DTS任务。
可能原因:
DTS-70003: 12 execute transaction has excess max transaction retry time [64] cause:transaction-replicate:
DTS-70004: EXEC statement failed, may try it again cause: RecoverableAnyAllException: transaction-replicate: DTS-70004: EXEC statement failed, may try it again SQLServerException: Transaction (Process ID xxx) was deadlocked on lock | communication buffer resources with another process and has been chosen as the deadlock victim. Rerun the transaction.DTS-RETRY-ERR-0707:trigger '(.*)?' is invalid and failed re-validation
可能原因:DTS在向目标Oracle表写入数据时,触发了一个已失效或无法重新验证的触发器(Trigger)。
解决方法:请在目标Oracle数据库上禁用或删除与同步表相关的触发器。处理后,重新启动DTS任务。
报错示例:
DTS-100047: retry 4315 times, 43202 seconds, which exceed the supposed 43200 seconds cause: CriticalAnyAllException: framework: DTS-30011: currentRunningSQL: /* DTS-full-e6at6t7926axxx */insert into "xxx"."xxx"() VALUES (),currentRow:xxx,
reason: ORA-04098: trigger 'xxx.xxx' is invalid and failed re-validation BatchUpdateException: ORA-04098: trigger 'xxx.xxx' is invalid and failed re-validationDTS-RETRY-ERR-0708:unable to allocate (.*)? bytes of shared memory
可能原因:目标Oracle数据库的共享池(Shared Pool)内存不足,无法为DTS执行的SQL操作分配所需的内存。
解决方法:这是一个数据库服务端的资源问题。请调大Oracle数据库的共享池大小(SHARED_POOL_SIZE)或清理共享池。处理后,重新启动DTS任务。
报错示例:
DTS-70002: Failed to get foreign key of CREDITLOANDB.CODE_LIBRARY cause: SQLException: ORA-04031: unable to allocate xxx bytes of shared memory ("shared pool","xxx") DTS-RETRY-ERR-0709:unable to extend index (.*)? by (.*)? in tablespace (.*)?
可能原因:目标Oracle数据库的表空间(Tablespace)已满,导致在写入数据时无法扩展索引。
解决方法:请为报错信息中指定的表空间增加数据文件或扩大现有数据文件的大小,然后重新启动DTS任务。
报错示例:
DTS-077100: Record Replicator error in table INTIME.STR_COM_DAY. cause by [java.sql.SQLException: ORA-01654: unable to extend index xxx by xxx in tablespace xxx ] About more information in [https://yq.aliyun.com/articles/508049].DTS-RETRY-ERR-0710:unable to extend table (.*)? by (.*)? in tablespace (.*)?
可能原因:目标Oracle数据库的表空间(Tablespace)已满,导致在写入数据时无法扩展表。
解决方法:请为报错信息中指定的表空间增加数据文件或扩大现有数据文件的大小,然后重新启动DTS任务。
报错示例:
DTS-30011: currentRunningSQL: /* DTS-full-i1js7421a9ixxx */insert into "xxx"."xxx"() VALUES (),currentRow:xxx, reason: ORA-01653: unable to extend table xxx by xxx in tablespace xxx cause: BatchUpdateException: ORA-01653: unable to extend table xxx by xxx in tablespace xxxDTS-RETRY-ERR-0711:Unexpected end of file from server
可能原因:DTS与目标ClickHouse服务器的连接意外中断,导致数据文件传输不完整。这通常是由于网络问题或ClickHouse节点异常。
解决方法:请检查ClickHouse服务器的健康状态和错误日志,并排查DTS与ClickHouse之间的网络连接。重新启动DTS任务会尝试重新连接。
报错示例:
java.sql.SQLException: Unexpected end of file from server, server ClickHouseNode [uri=http://10.xxx.xxx.xxx:xxx/tpcc]@603276966DTS-RETRY-ERR-0712:unknown table
可能原因:DTS尝试向目标SelectDB(Doris)写入数据,但目标库中不存在指定的表。
解决方法:请检查DTS任务配置的同步对象是否正确,并确保目标数据库中已创建了对应的表。
报错示例:
DTS-100047: retry 3755 times, 43208 seconds, which exceed the supposed 43200 seconds cause: TransactionReplicateException: transaction-replicate: DTS-70003: 16 execute transaction has excess max transaction retry time [64] cause:Failed to stream load data to table: xxx status is fail.
Load result: {"Status":"Fail","Comment":"","BeginTxnTimeMs":0,"Message":"[NOT_FOUND]TStatus: errCode = 7, detailMessage = unknown table, tableName=xxx","NumberUnselectedRows":0,"CommitAndPublishTimeMs":0,"Label":"DTS-SelectDB-Sink2dfxxxx-72f8-4cbf-a475-36f7ddaxxxx","LoadBytes":0,"StreamLoadPutTimeMs":0,"NumberTotalRows":0,"WriteDataTimeMs":0,"TxnId":-1,"LoadTimeMs":0,"TwoPhaseCommit":"false","ReadDataTimeMs":0,"NumberLoadedRows":0,"NumberFilteredRows":0} IOException: Failed to stream load data to table: xxxx status is fail. DTS-RETRY-ERR-0713:unsupport operationType: TIDB_WATERMARK
可能原因:DTS不支持处理TiCDC产生的WATERMARK事件。这通常是因为TiCDC开启了enable-tidb-extension特性。
解决方法:请修改TiCDC的配置文件,将enable-tidb-extension参数设置为false,然后重启TiCDC和DTS任务。
报错示例:
DTS-31009: In process of processing data (recordRange: 602980062876xxx) failed cause: FatalAnyAllException: common: DTS-100047: retry 0 times, 0 seconds, which exceed the supposed 43200 seconds RuntimeException: java.lang.RuntimeException: unsupport operationType: TIDB_WATERMARK RuntimeException: unsupport operationType: TIDB_WATERMARKDTS-RETRY-ERR-0715:waitResult/ReDispatch
可能原因:DTS向目标AnalyticDB MySQL 3.0写入数据时,等待写入结果超时。这表明目标AnalyticDB MySQL 3.0实例可能处于高负载或处理缓慢的状态。
解决方法:请检查目标AnalyticDB MySQL 3.0实例的运行状态、负载和慢查询。待实例恢复正常后,重新启动DTS任务
报错示例:
DTS-100047: retry 0 times, 72788 seconds, which exceed the supposed 43200 seconds cause: TransactionReplicateException: transaction-replicate: DTS-70003: 9 execute transaction has excess max transaction retry time [64] cause:transaction-replicate:
DTS-70004: EXEC statement failed, may try it again RecoverableAnyAllException: transaction-replicate: DTS-70004: EXEC statement failed, may try it again SQLException: ADB30Engine(9): meet error, insertSQL:/*dts_id=dtszqva11ali3xxxx*/replace into `xxx`.`xxx` () values (),
error detail message:[40001, 202507151205071921xxxx190034533xxxx] waitResult/ReDispatch : deadline=17525526xxxx,syncTimeoutMills=300000 SQLException: [40001, 202507151205071921xxxx190034533xxxx] waitResult/ReDispatch : deadline=17525526xxxx,syncTimeoutMills=300000DTS-RETRY-ERR-0716:xlog flush request
可能原因:DTS在读取源端PostgreSQL的事务日志(XLOG)时,数据库报告了一个内部I/O错误,表示日志刷盘请求未被满足。
解决方法:请立即检查源端PostgreSQL数据库的健康状态、磁盘I/O性能和错误日志。处理后,重新启动DTS任务。
报错示例:
DTS-31009: In process of processing data (recordRange: 293226462284xxx) failed cause: FatalAnyAllException: common: DTS-100047: retry 0 times, 0 seconds, which exceed the supposed 43200 seconds CriticalAnyAllException: framework:
DTS-31009: read source data error PSQLException: ERROR: xlog flush request xxx is not satisfied --- flushed only to xxx Where: writing block 134 of relation pg_tblspc/16386/PG_11_201809051/16385/21573