DTS-RETRY-ERR(0501~0600)

本文为您介绍在配置DTS任务时,系统返回的报错信息(DTS-RETRY-ERR-0501DTS-RETRY-ERR-0600)及其对应的解决方法。

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

  • 若报错无法解决,您可以通过钉钉(钉钉通讯客户端下载地址)进入到DTS客户交流钉钉群(群号:116655009709),进行咨询。

DTS-RETRY-ERR-0501:Data too large

可能原因:ElasticSearch实例的内存不足,导致数据无法写入。

解决方法:请升级ElasticSearch实例的配置,然后重新启动DTS任务

报错示例

DTS-100047: retry 1 times, 43200 seconds, which exceed the supposed 43200 seconds cause: IOException: es: DTS-10035: [parent] Data too large, data for [] would be [136509****/1.2gb], which is larger than the limit of ****

DTS-RETRY-ERR-0502:COPY with ON CONFLICT clause is not supported on AO/AOCO relation

可能原因:目标表的存储格式为AO/AOCO(Append-Optimized/Append-Optimized Column-Oriented),而此类表不支持使用ON CONFLICT子句,导致数据无法写入。

解决方法:修改目标表的存储格式,然后重新启动DTS任务

说明

若为同步实例,可以使用修改同步对象功能移除导致报错的表,然后重新启动DTS任务

报错示例

DTS-100047: retry 1 times, 43200 seconds, which exceed the supposed 43200 seconds cause: CriticalAnyAllException: full-greenplum: DTS-65708: copy error, recordRange=**** FROM STDIN DELIMITER '|' ESCAPE '\' CSV QUOTE '"' DO on conflict DO update PSQLException: ERROR: COPY with ON CONFLICT clause is not supported on AO/AOCO relation. 

DTS-RETRY-ERR-0503:server closed the connection unexpectedly

可能原因:数据库状态异常(数据库服务器崩溃、资源耗尽或网络问题),导致DTS无法正常连接该数据库。

解决方法:请确保数据库的状态正常、资源充足,且DTS可以正常连接该数据库,然后重新启动DTS任务

报错示例

DTS-100047: retry 1 times, 43200 seconds, which exceed the supposed 43200 seconds cause: CriticalAnyAllException: full-greenplum: DTS-65708: copy error, recordRange={id:218227539994843****,schema:public.trade_order_status,indexName:,fields:[id BIGINT not nullable primary unique], **** FROM STDIN DELIMITER '|' ESCAPE '\' CSV QUOTE '"' DO on conflict DO update PSQLException: ERROR: Error on receive from seg73 172.31.XX.XX:XXX pid=16****: server closed the connection unexpectedly This probably means the server terminated abnormally before or while processing the request. ****

DTS-RETRY-ERR-0504:PSQLException (.*)? could not open relation. (.*)? This can be validly caused by a concurrent delete operation on this object.

可能原因:存在其他事务等并发操作删除了目标数据库的对象,导致其相应的OID被删除。

解决方法:请确保没有其他事务在并发删除目标对象,然后重新启动DTS任务。若重启后依然报错,请联系云原生数据仓库AnalyticDB PostgreSQL的技术支持人员进行处理。

报错示例

DTS-100047: retry 1 times, 43200 seconds, which exceed the supposed 43200 seconds cause: CriticalAnyAllException: full-greenplum: DTS-65708: copy error, recordRange= **** FROM STDIN DELIMITER '|' ESCAPE '\' CSV QUOTE '"' DO on conflict DO update PSQLException: ERROR: could not open relation with OID 358**** TRACE_ID: 63033089393406**** Detail: This can be validly caused by a concurrent delete operation on this object.

DTS-RETRY-ERR-0505:MPP detected (.*)? segment failures, system is reconnected

可能原因:目标库大规模并行处理(MPP)时出现异常,导致数据无法写入。

解决方法:请查看目标库日志,排查异常并进行修复,然后重新启动DTS任务

报错示例

DTS-100047: retry 1 times, 43200 seconds, which exceed the supposed 43200 seconds cause: CriticalAnyAllException: full-greenplum: DTS-65708: copy error, recordRange={id:894369101000160****,schema:public.trade_order_header,indexName:,fields:[id BIGINT not nullable primary unique],leftValues:**** FROM STDIN DELIMITER '|' ESCAPE '\' CSV QUOTE '"' DO on conflict DO update PSQLException: ERROR: MPP detected 1 segment failures, system is reconnected TRACE_ID: ****

DTS-RETRY-ERR-0506:NotServingRegionException

可能原因:目标Lindorm实例的Region分区发生变化。

解决方法:重新启动DTS任务

报错示例

DTS-100047: retry 1 times, 43200 seconds, which exceed the supposed 43200 seconds cause: BatchUpdateException: Got error RetriesExhaustedException from storage engine: Server side Error:{ location: ****, name: NotServingRegionException: 6times, ...unrecorded exceptions num=4} at com.alibaba.lindorm.server.ldserver.queryprocessor.ServerCaller.getRetriesExhaustedException(ServerCaller.java:253) at ****  at com.alibaba.lindorm.sql.mysql.execution.executor.CommandExecutorTask.executeCommand(CommandExecutorTask.java:132) at com.alibaba.lindorm.sql.mysql.execution.executor.CommandExecutorTask.run(CommandExecutorTask.java:87) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:627) at java.lang.Thread.run(Thread.java:882) SQLException: Got error RetriesExhaustedException from storage engine: Server side Error:{ location: ****, name: NotServingRegionException: 6times, ...unrecorded exceptions num=4} at com.alibaba.lindorm.server.ldserver.queryprocessor.ServerCaller.getRetriesExhaustedException(ServerCaller.java:253) at ****

DTS-RETRY-ERR-0507:Not allowed to execute statement that may change data on polar slave

可能原因:目标库为PolarDB MySQL实例的只读节点(Slave),导致数据无法写入。

解决方法:使用PolarDB MySQL实例的主节点作为目标库,重新配置DTS任务。

报错示例

common(mysql-utils): DTS-10046: execute sql: CREATE TABLE if not exists `dts`.`pt****` ( `id` int(11) NOT NULL,`trx_count` bigint(20) NOT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 failed. Create TransactionTable failed. cause: SQLException: Not allowed to execute statement that may change data on polar slave

DTS-RETRY-ERR-0508:No route info for this topic

可能原因

解决方法

目标库中接收数据的Topic不存在。

在目标库中创建对应的Topic,然后重新启动DTS任务

DTS不支持该类型的RocketMQ实例。

使用DTS支持的RocketMQ实例,重新配置DTS任务。

报错示例

DTS-100047: retry 1 times, 43200 seconds, which exceed the supposed 43200 seconds cause: MQClientException: No route info for this topic, ads_rom_rtm_ord_of_**** For more information, please visit the url, ****

DTS-RETRY-ERR-0509:date/time field value out of range

可能原因:目标表的日期格式与源表不兼容,导致数据无法写入。

解决方法:请根据源库待同步或迁移数据的日期格式,修改目标表的日期格式,然后重新启动DTS任务

报错示例

DTS-31009: In process of processing data (recordRange: 123456) failed cause: FatalAnyAllException: common: DTS-100047: retry 1 times, 43200 seconds, which exceed the supposed 43200 seconds CriticalAnyAllException: framework: DTS-30020: execute ****  fetchSize = 1024 PSQLException: ERROR: date/time field value out of range: "0001-2023-00 00:00:00.0" Hint: Perhaps you need a different "datestyle" setting. Where: portal "C_1" parameter $1 = '...'

DTS-RETRY-ERR-0510:Error message not available

可能原因:目标MaxCompute响应超时。

解决方法:请确保目标MaxCompute的状态正常且可以正常连接,然后重新启动DTS任务

报错示例

DTS-100047: retry 1 times, 43200 seconds, which exceed the supposed 43200 seconds cause: IOException: ErrorCode=Local Error, ErrorMessage=Error message not available TunnelException: ErrorCode=Local Error, ErrorMessage=Error message not available

DTS-RETRY-ERR-0511:Generated columns cannot be used in COPY

可能原因:源库待同步或迁移的表中存在生成列,而生成列不支持COPY操作。

解决方法:修改该表的结构,然后重新配置DTS任务。

说明

若为同步实例,可以使用修改同步对象功能移除导致报错的表,然后重新启动DTS任务

报错示例

DTS-100047: retry 1 times, 43200 seconds, which exceed the supposed 43200 seconds cause: CriticalAnyAllException: full-greenplum: DTS-65708: copy error, recordRange=**** BIGINT not nullable primary unique],leftValues:[null],rightValues:[null],partition:null}, copySql=**** FROM STDIN DELIMITER '|' ESCAPE '\' CSV QUOTE '"' DO on conflict DO update PSQLException: ERROR: column "computed_p****" is a generated column TRACE_ID: 489425612987842**** Detail: Generated columns cannot be used in COPY.

DTS-RETRY-ERR-0512:no partition of relation (.*)? found for row

可能原因:目标分区表中缺少对应的分区,导致数据无法写入。

解决方法:请检查分区表的定义,并请确保目标表中存在对应的分区以接收数据(新建分区或调整分区策略),然后重新启动DTS任务

报错示例

DTS-100047: retry 1 times, 43200 seconds, which exceed the supposed 43200 seconds cause: CriticalAnyAllException: full-greenplum: DTS-65708: copy error, recordRange={id:919367515335399****,schema:np_erpc.bms_lot_def,indexName:,fields:[],leftValues:[null],rightValues:[null],partition:null}, copySql=**** FROM STDIN DELIMITER '|' ESCAPE '\' CSV QUOTE '"' DO on conflict DO update PSQLException: ERROR: no partition of relation "bms_****" found for row TRACE_ID: 280630901049587**** TRACE_ID: 280630901049587**** Detail: Partition key of the failing row contains (invaliddate) =****

DTS-RETRY-ERR-0513:错误: 函数(.*)?不存在

可能原因:目标PolarDB PostgreSQL版(兼容Oracle)集群与源Oracle存在兼容性有问题。

解决方法:请联系PolarDB PostgreSQL版(兼容Oracle)集群的技术支持人员进行处理。

报错示例

DTS-31009: In process of processing data (recordRange: 123456) failed cause: FatalAnyAllException: common: DTS-100047: retry 1 times, 43200 seconds, which exceed the supposed 43200 seconds CriticalAnyAllException: framework: DTS-30020: execute sql****([Lcom.alibaba.amp.any.record.value.Value;@661e2bb1, null) record range id = 4183314613208612865, fetchSize = 1024 PSQLException: 错误: 函数 "paradedb.term_with_****(paradedb.fieldname, text, anyelement)" 不存在

DTS-RETRY-ERR-0514:terminating connection due to conflict with recovery

可能原因:源库库状态异常(数据库服务器崩溃、资源耗尽或网络问题),导致DTS无法正常连接该数据库。

解决方法:请确保源库的状态正常、资源充足,且DTS可以正常连接该数据库,然后重新启动DTS任务

报错示例

DTS-31009: In process of processing data (recordRange: 123456) failed cause: FatalAnyAllException: common: DTS-100047: retry 1 times, 43200 seconds, which exceed the supposed 43200 seconds CriticalAnyAllException: framework: DTS-30020: execute sql**** fetchSize = 1024 PSQLException: FATAL: terminating connection due to conflict with recovery Detail: User query might have needed to see row versions that must be removed.

DTS-RETRY-ERR-0515:xlog flush request (.*)? is not satisfied

可能原因:源库库状态异常(数据库服务器崩溃、资源耗尽或网络问题),导致DTS无法正常连接该数据库。

解决方法:请确保源库的状态正常、资源充足,且DTS可以正常连接该数据库,然后重新启动DTS任务

报错示例

DTS-31009: In process of processing data (recordRange: 123456) failed cause: FatalAnyAllException: common: DTS-100047: retry 1 times, 43200 seconds, which exceed the supposed 43200 seconds CriticalAnyAllException: framework: DTS-30020: execute sql**** fetchSize = 1024 PSQLException: ERROR: xlog flush request 9FA0/858A**** is not satisfied --- flushed only to 9F92/FF1B**** Where: writing block 433758 of relation ****

DTS-RETRY-ERR-0516:missing chunk number (.*)? for toast value (.*)? in pg_toast_(.*)?

可能原因:源库库状态异常(数据库服务器崩溃、资源耗尽或网络问题),导致DTS无法正常连接该数据库。

解决方法:请确保源库的状态正常、资源充足,且DTS可以正常连接该数据库,然后重新启动DTS任务

报错示例

DTS-31009: In process of processing data (recordRange: 123456) failed cause: FatalAnyAllException: common: DTS-100047: retry 1 times, 43200 seconds, which exceed the supposed 43200 seconds CriticalAnyAllException: framework: DTS-30020: execute sql:**** fetchSize = 1024 PSQLException: ERROR: missing chunk number 0 for toast value 1181**** in pg_toast_1**** 

DTS-RETRY-ERR-0517:could not read block (.*)? in file

可能原因:源库库状态异常(数据库服务器崩溃、资源耗尽或网络问题),导致DTS无法正常连接该数据库。

解决方法:请确保源库的状态正常、资源充足,且DTS可以正常连接该数据库,然后重新启动DTS任务

报错示例

DTS-31009: In process of processing data (recordRange: 123456) failed cause: FatalAnyAllException: common: DTS-100047: retry 1 times, 43200 seconds, which exceed the supposed 43200 seconds CriticalAnyAllException: framework: DTS-30020: execute sql:**** fetchSize = 1024 PSQLException: ERROR: could not read block 601620 in file "pg_tbl****": read only 0 of 8192 bytes

DTS-RETRY-ERR-0518:Canceling query because of high VMEM usage.

可能原因:源库库状态异常(数据库服务器崩溃、资源耗尽或网络问题),导致DTS无法正常连接该数据库。

解决方法:请确保源库的状态正常、资源充足,且DTS可以正常连接该数据库,然后重新启动DTS任务

报错示例

DTS-31009: In process of processing data (recordRange: 123456) failed cause: FatalAnyAllException: common: DTS-100047: retry 1 times, 43200 seconds, which exceed the supposed 43200 seconds CriticalAnyAllException: framework: DTS-31009: read source data error PSQLException: ERROR: Canceling query because of high VMEM usage. Used: 413MB, available 571MB, red zone: 5160MB (runaway_cleaner.c:200) ****

DTS-RETRY-ERR-0519:PSQLException: ERROR: lock not available

可能原因:源库存在死锁,导致DTS无法读取数据。

解决方法:请确保源库的状态正常无死锁,且DTS可以正常连接该数据库,然后重新启动DTS任务

报错示例

DTS-31009: In process of processing data (recordRange: 123456) failed cause: FatalAnyAllException: common: DTS-100047: retry 1 times, 43200 seconds, which exceed the supposed 43200 seconds CriticalAnyAllException: framework: DTS-31009: read source data error PSQLException: ERROR: lock not available

DTS-RETRY-ERR-0520:ERR DB index is out of range

可能原因:目标Redis实例中接收数据的DB不存在。

解决方法:重新配置DTS任务,并使用库表列名映射功能将数据映射到目标Redis中存在的DB。

说明

若为同步实例,可以尝试使用修改同步对象功能移除导致报错的DB,再同时使用修改同步对象库表列名映射功能将移除的DB添加回同步对象并映射。

报错示例

DTS-100047: retry 1 times, 43200 seconds, which exceed the supposed 43200 seconds cause: JedisDataException: ERR DB index is out of range

DTS-RETRY-ERR-0521:ERR DUMP payload version or checksum are wrong

可能原因:源Redis实例与目标Redis实例间的版本差异较大,无法仅迁移源Redis实例的全量数据。

解决方法:重新配置DTS任务,且该任务同时包含全量和增量任务。

报错示例

DTS-100047: retry 1 times, 43200 seconds, which exceed the supposed 43200 seconds cause: JedisDataException: ERR DUMP payload version or checksum are wrong

DTS-RETRY-ERR-0522:Aggregation stage not supported (.*)? changeStream

可能原因:未开启变更流Change StreamsMongoDB为源库时,迁移方式配置为ChangeStream

解决方法:给该MongoDB数据库开启变更流Change Streams,然后重新配置DTS任务。

说明

若该MongoDB数据库已开启Oplog日志,您可以重新配置DTS任务,且将迁移方式配置为Oplog

报错示例

DTS-52700: Command failed with error 304: 'Aggregation stage not supported: '$changeStream'' on server mongo.overseauat.starcharge.com:6669. The full response is {"ok": 0.0, "code": 304, "errmsg": "Aggregation stage not supported: '$changeStream'", "operationTime": **** cause: MongoCommandException: Command failed with error 304: 'Aggregation stage not supported: '$changeStream'' on server mongo.overseauat.starcharge.com:6669. The full response is {"ok": 0.0, "code": 304, "errmsg": "Aggregation stage not supported: '$changeStream'", "operationTime":****

DTS-RETRY-ERR-0523:Timed out after

可能原因:DTS与数据库的网络通信超时。

解决方法:请确保数据库的状态正常,且DTS可以正常连接该数据库(检查数据库的连接设置、白名单设置、账号和密码的正确性等),然后重新启动DTS任务

报错示例

DTS-52700: Timed out after 3600000 ms while waiting for a server that matches ReadPreferenceServerSelector{readPreference=primary}. Client view of cluster state is {type=REPLICA_SET, servers=**** cause: MongoTimeoutException: Timed out after 3600000 ms while waiting for a server that matches ReadPreferenceServerSelector{readPreference=primary}. Client view of cluster state is ****

DTS-RETRY-ERR-0524:Invalid object name

可能原因

解决方法

目标表不存在。

请确保目标库状态正常且可以正常连接、目标库中用于接收数据的表存在、DTS任务所使用的目标库账号权限充足,然后重新启动DTS任务

DTS任务使用的目标库账号权限不足。

  • 方法一:根据报错信息给数据库账号授予足够的权限,然后重新启动DTS任务

  • 方法二:使用权限充足的数据库账号配置DTS任务。

报错示例

DTS-100047: retry 1 times, 43200 seconds, which exceed the supposed 43200 seconds cause: CriticalAnyAllException: dts-k-src: DTS-52111: Increment Context Is Not Running..: CriticalAnyAllException: sqlserver-reader: DTS-52340: Serial transaction log failed SQLServerException: Invalid object name ****

DTS-RETRY-ERR-0525:Not support fetch backup log MissActiveLogException: ERROR_MISS_TRANSACTION_LOG

可能原因:源库备份日志不支持读取。

解决方法:请联系源库的管理员(DBA)进行处理,然后重新配置DTS任务。

报错示例

DTS-100047: retry 1 times, 43200 seconds, which exceed the supposed 43200 seconds cause: RecoverableAnyAllException: dts-k-src: DTS-52110: SQLServerRecordExtractor Init Error: sqlserver-reader: DTS-52061: Failed to seek sqlserver position CriticalAnyAllException: sqlserver-reader: DTS-52061: Failed to seek sqlserver position CriticalAnyAllException: sqlserver-reader: DTS-52411: Not support fetch backup log MissActiveLogException: ERROR_MISS_TRANSACTION_LOG(timestamp:174184****)

DTS-RETRY-ERR-0526:Miss backup log

可能原因:源库备份日志已被清理。

解决方法

  • 方法一:请联系源库的管理员(DBA)进行处理,然后重新启动DTS任务

  • 方法二:重新配置DTS任务。

报错示例

DTS-100047: retry 1 times, 43200 seconds, which exceed the supposed 43200 seconds cause: RecoverableAnyAllException: dts-k-src: DTS-52110: SQLServerRecordExtractor Init Error: sqlserver-reader: DTS-52061: Failed to seek sqlserver position CriticalAnyAllException: sqlserver-reader: DTS-52061: Failed to seek sqlserver position CriticalAnyAllException: sqlserver-reader: DTS-52412: Miss backup log

DTS-RETRY-ERR-0527:is invalid as a backup device name for the specified device type. Reissue the BACKUP statement with a valid file name and device type

可能原因:源库备份日志已被清理。

解决方法

  • 方法一:请联系源库的管理员(DBA)进行处理,然后重新启动DTS任务

  • 方法二:重新配置DTS任务。

报错示例

DTS-52110: SQLServerRecordExtractor Init Error: sqlserver-reader: DTS-52061: Failed to seek sqlserver position cause: CriticalAnyAllException: sqlserver-reader: DTS-52061: Failed to seek sqlserver position CriticalAnyAllException: sqlserver-reader: DTS--0001: execute sql select top(1) [Current LSN], Operation, Context, CAST([Begin Time] as DATETIME2) from [CarlsbergReport].[sys].[fn_dump_dblog]**** where [Begin Time] is not null failed, case by common: DTS-100047: retry 1 times, 43200 seconds, which exceed the supposed 43200 seconds FatalAnyAllException: common: DTS-100047: retry 1 times, 43200 seconds, which exceed the supposed 43200 seconds SQLServerException: The file name "****" is invalid as a backup device name for the specified device type. Reissue the BACKUP statement with a valid file name and device type.

DTS-RETRY-ERR-0528:Cannot replicate because the master purged required binary logs

可能原因:源库的Binlog已被清除。

解决方法

  • 方法一:请联系源库的管理员(DBA)进行处理,然后重新启动DTS任务

  • 方法二:重新配置DTS任务。

报错示例

DTS-100047: retry 1 times, 43200 seconds, which exceed the supposed 43200 seconds cause: CriticalAnyAllException: dts-k-src: DTS-52111: Increment Context Is Not Running..: mysql-reader: DTS-52200: process error failed cause: IOException: java.sql.SQLException: Cannot replicate because the master purged required binary logs. Replicate the missing transactions from elsewhere, or provision a new slave from backup. Consider increasing the master's binary log expiration period. The GTID sets and the missing purged transactions are too long to print in this message. For more information, please see the master's error log or the manual for GTID_SUBTRACT SQLException: Cannot replicate because the master purged required binary logs. Replicate the missing transactions from elsewhere, or provision a new slave from backup. Consider increasing the master's binary log expiration period. The GTID sets and the missing purged transactions are too long to print in this message. For more information, please see the master's error log or the manual for GTID_SUBTRACT CriticalAnyAllException: mysql-reader: DTS-52200: process error failed IOException: java.sql.SQLException: Cannot replicate because the master purged required binary logs. Replicate the missing transactions from elsewhere, or provision a new slave from backup. Consider increasing the master's binary log expiration period. The GTID sets and the missing purged transactions are too long to print in this message. For more information, please see the master's error log or the manual for GTID_SUBTRACT SQLException: Cannot replicate because the master purged required binary logs. Replicate the missing transactions from elsewhere, or provision a new slave from backup. Consider increasing the master's binary log expiration period. The GTID sets and the missing purged transactions are too long to print in this message. For more information, please see the master's error log or the manual for GTID_SUBTRACT

DTS-RETRY-ERR-0529:Cannot replicate because the source purged required binary logs

可能原因:源库的Binlog已被清除。

解决方法

  • 方法一:请联系源库的管理员(DBA)进行处理,然后重新启动DTS任务

  • 方法二:重新配置DTS任务。

报错示例

DTS-100047: retry 1 times, 43200 seconds, which exceed the supposed 43200 seconds cause: CriticalAnyAllException: dts-k-src: DTS-52111: Increment Context Is Not Running..: mysql-reader: DTS-52200: process error failed cause: IOException: java.sql.SQLException: Cannot replicate because the source purged required binary logs. Replicate the missing transactions from elsewhere, or provision a new replica from backup. Consider increasing the source's binary log expiration period. The GTID set sent by the replica is **** and the missing transactions are **** SQLException: Cannot replicate because the source purged required binary logs. Replicate the missing transactions from elsewhere, or provision a new replica from backup. Consider increasing the source's binary log expiration period. ****

DTS-RETRY-ERR-0530:Client requested master to start replication from position > file size

可能原因:源库的Binlog异常,导致DTS无法进行解析。

解决方法

  • 方法一:请联系源库的管理员(DBA)进行处理,然后重新启动DTS任务

  • 方法二:重新配置DTS任务。

报错示例

DTS-100047: retry 1 times, 43200 seconds, which exceed the supposed 43200 seconds cause: CriticalAnyAllException: dts-k-src: DTS-52111: Increment Context Is Not Running..: mysql-reader: DTS-52200: process error failed cause: IOException: java.sql.SQLException: Client requested master to start replication from position > file size SQLException: Client requested master to start replication from position > file size CriticalAnyAllException: mysql-reader: DTS-52200: process error failed IOException: java.sql.SQLException: Client requested master to start replication from position > file size SQLException: Client requested master to start replication from position > file size

DTS-RETRY-ERR-0531:java.sql.SQLException: could not find next log

可能原因:源库的Binlog异常,导致DTS无法进行解析。

解决方法

  • 方法一:请联系源库的管理员(DBA)进行处理,然后重新启动DTS任务

  • 方法二:重新配置DTS任务。

报错示例

DTS-100047: retry 1 times, 43200 seconds, which exceed the supposed 43200 seconds cause: CriticalAnyAllException: dts-k-src: DTS-52111: Increment Context Is Not Running..: mysql-reader: DTS-52200: process error failed cause: IOException: java.sql.SQLException: could not find next log; the first event '' at 4, the last event read from **** 

DTS-RETRY-ERR-0532:Could not open log file

可能原因:源库的Binlog异常,导致DTS无法进行解析。

解决方法

  • 方法一:请联系源库的管理员(DBA)进行处理,然后重新启动DTS任务

  • 方法二:重新配置DTS任务。

报错示例

DTS-100047: retry 1 times, 43200 seconds, which exceed the supposed 43200 seconds cause: CriticalAnyAllException: dts-k-src: DTS-52111: Increment Context Is Not Running..: mysql-reader: DTS-52200: process error failed cause: IOException: java.sql.SQLException: Could not open log file SQLException: Could not open log file CriticalAnyAllException: mysql-reader: DTS-52200: process error failed IOException: java.sql.SQLException: Could not open log file SQLException: Could not open log file

DTS-RETRY-ERR-0533:mysql row image valid failed, miss

可能原因:源库的Binlog异常,导致DTS无法进行解析。

解决方法

  • 方法一:请联系源库的管理员(DBA)进行处理,然后重新启动DTS任务

  • 方法二:重新配置DTS任务。

报错示例

DTS-100047: retry 1 times, 43200 seconds, which exceed the supposed 43200 seconds cause: CriticalAnyAllException: dts-k-src: DTS-52111: Increment Context Is Not Running..: mysql-reader: DTS-52230: mysql-reader: DTS-52230: mysql row image valid failed, miss 2, event: Header:**** CriticalAnyAllException: mysql-reader: DTS-52230: mysql-reader: DTS-52230: mysql row image valid failed, miss 2, event: Header:**** CriticalAnyAllException: mysql-reader: DTS-52230: mysql row image valid failed, miss 2, event: Header:****

DTS-RETRY-ERR-0534:Valid type fail

可能原因:源库的Binlog异常,导致DTS无法进行解析。

解决方法

  • 方法一:请联系源库的管理员(DBA)进行处理,然后重新启动DTS任务

  • 方法二:重新配置DTS任务。

报错示例

DTS-100047: retry 1 times, 43200 seconds, which exceed the supposed 43200 seconds cause: CriticalAnyAllException: dts-k-src: DTS-52111: Increment Context Is Not Running..: mysql-reader: DTS-52230: Valid type fail, Column:planOrdinal,Type:5 cause: IllegalArgumentException: Valid type fail, Column:planOrdinal,Type:5 CriticalAnyAllException: mysql-reader: DTS-52230: Valid type fail, Column:planOrdinal,Type:5 IllegalArgumentException: Valid type fail, Column:planOrdinal,Type:5

DTS-RETRY-ERR-0535:Transaction entry load failed FileNotFoundException

可能原因:DTS处理大事务处时出现异常。

解决方法:重新启动DTS任务若异常无法解决,请通过钉钉(钉钉通讯客户端下载地址)进入到DTS客户交流钉钉群(群号:116655009709),进行咨询。

报错示例

DTS-100047: retry 1 times, 43200 seconds, which exceed the supposed 43200 seconds cause: CriticalAnyAllException: dts-k-src: DTS-52111: Increment Context Is Not Running..: CriticalAnyAllException: oracle-reader: DTS-52330: Transaction entry merge failed CriticalAnyAllException: oracle-reader: DTS-52330: Transaction entry load failed FileNotFoundException: ****

DTS-RETRY-ERR-0536:Binary log is not open

可能原因:源库未开启Binlog。

解决方法:请开启并正确配置源库的Binlog,然后重新启动DTS任务

报错示例

DTS-100047: retry 1 times, 43200 seconds, which exceed the supposed 43200 seconds cause: CriticalAnyAllException: dts-k-src: DTS-52111: Increment Context Is Not Running..: mysql-reader: DTS-52200: process error failed cause: IOException: java.sql.SQLException: Binary log is not open SQLException: Binary log is not open CriticalAnyAllException: mysql-reader: DTS-52200: process error failed IOException: java.sql.SQLException: Binary log is not open SQLException: Binary log is not open

DTS-RETRY-ERR-0537:Database connection failed when reading from copy PSQLException: Database connection failed when reading from copy EOFException: null

可能原因:PostgreSQL原生逻辑复制协议具备一项心跳机制,若超过wal_sender_timeout时间未收到心跳信号,系统将会断开连接。在过滤大量不需要同步的事务后,未能及时检测心跳,直接判断上次心跳时间是否超出wal_sender_timeout,从而导致尽管下游发送了心跳,系统仍然认为下游直连已中断。对于下游(即DTS而言),这意味着在正常运行过程中,连接突然被中断。可以通过检查源库错误日志中是否存在terminating walsender process due to replication timeout来判断此问题是否为导致连接中断的原因。

该问题已在PostgreSQL 15中得到修复,具体修复内容为:Fix for unexpected timeout error

解决方法:在源库中执行如下命令修改该参数为0规避该问题,然后重新启动DTS任务

ALTER SYSTEM SET wal_sender_timeout = '0';
SELECT pg_reload_conf();

报错示例

DTS-52111: Increment Context Is Not Running..: cause: CriticalAnyAllException: postgresql-reader: DTS-52510: Fetch postgresql logical log failed FatalAnyAllException: common: DTS-100047: retry 1 times, 43200 seconds, which exceed the supposed 43200 seconds IOException: org.postgresql.util.PSQLException: Database connection failed when reading from copy PSQLException: Database connection failed when reading from copy EOFException: null

DTS-RETRY-ERR-0538:[polardbx]please try later

可能原因:源库CDC功能异常。

解决方法

  • 方法一:请联系源库的管理员(DBA)进行处理,然后重新启动DTS任务

  • 方法二:重新配置DTS任务。

报错示例

DTS-100047: retry 1 times, 43200 seconds, which exceed the supposed 43200 seconds cause: CriticalAnyAllException: dts-k-src: DTS-52111: Increment Context Is Not Running..: mysql-reader: DTS-52200: process error failed cause: IOException: java.sql.SQLException: [19a7407da540****][10.32.XX.XX:XXX][polardbx]please try later... SQLException: [19a7407da540****][10.32.XX.XX:XXX][polardbx]please try later... CriticalAnyAllException: mysql-reader: DTS-52200: process error failed IOException: java.sql.SQLException: ****

DTS-RETRY-ERR-0539:canceling statement due to user request

可能原因:DTS在数据库中执行SQL语句超时。

解决方法

报错示例

DTS-52110: PostgresRecordExtractor Init Error: postgresql-reader: DTS-52511: alter replica identity thread exception, readerContext=ReaderContext [****] cause: CriticalAnyAllException: postgresql-reader: DTS-52511: alter replica identity thread exception ExecutionException: postgresql-reader: DTS--0001: alter table identity: "****"/d failed, case by common: DTS-100047: retry 1 times, 43200 seconds, which exceed the supposed 43200 seconds cause: FatalAnyAllException: common: DTS-100047: retry 1 times, 43200 seconds, which exceed the supposed 43200 seconds PSQLException: ERROR: canceling statement due to user request CriticalAnyAllException: postgresql-reader: DTS--0001: alter table identity: "****"/d failed, case by common: DTS-100047: retry 1 times, 43200 seconds, which exceed the supposed 43200 seconds FatalAnyAllException: common: DTS-100047: retry 1 times, 43200 seconds, which exceed the supposed 43200 seconds PSQLException: ERROR: canceling statement due to user request

DTS-RETRY-ERR-0540:RAISE的第140行的PL/pgSQL函数

可能原因:源库已存在DTS所需创建的临时表,导致数据冲突。

解决方法:在业务允许的前提下,请删除源库中的以下临时表,然后重新配置DTS任务。

public.dts_pg_classpublic.dts_pg_attributepublic.dts_pg_typepublic.dts_pg_enumpublic.dts_postgres_heartbeatpublic.dts_ddl_commandpublic.dts_args_sessionpublic.aliyun_dts_instance

报错示例

DTS-52110: PostgresRecordExtractor Init Error: postgresql-reader: DTS-52511: alter replica identity thread exception, readerContext=ReaderContext [****] cause: CriticalAnyAllException: postgresql-reader: DTS-52511: alter replica identity thread exception ExecutionException: postgresql-reader: DTS--0001: alter table identity: ****/d failed, case by common: DTS-100047: retry 1 times, 43200 seconds, which exceed the supposed 43200 seconds cause: FatalAnyAllException: common: DTS-100047: retry 1 times, 43200 seconds, which exceed the supposed 43200 seconds PSQLException: 错误: dts_pg_type(重复键违反唯一约束"pg_type_unique_origin_oid_lsn") Where: 在RAISE的第140行的PL/pgSQL函数dts_capture_catalog_end() CriticalAnyAllException: postgresql-reader: DTS--0001: alter table identity: ****/d failed, case by common: DTS-100047: retry 1 times, 43200 seconds, which exceed the supposed 43200 seconds FatalAnyAllException: common: DTS-100047: retry 1 times, 43200 seconds, which exceed the supposed 43200 seconds PSQLException: 错误: dts_pg_type(重复键违反唯一约束"pg_type_unique_origin_oid_lsn") Where: 在RAISE的第140行的PL/pgSQL函数dts_capture_catalog_end()

DTS-RETRY-ERR-0541: Only tables can be added to publications

可能原因:同步或迁移对象中包含外表。

解决方法:重新配置DTS任务,任务对象中不包含外表。

说明

若为同步实例,可以使用修改同步对象功能移除外表。

报错示例

DTS-52111: Increment Context Is Not Running..: cause: CriticalAnyAllException: postgresql-reader: DTS-52510: Fetch postgresql logical log failed CriticalAnyAllException: postgresql-reader: DTS-52514: create publication error for dts_sync_h55r44gha27**** CriticalAnyAllException: postgresql-reader: DTS--0001: execute sql alter publication "****" add table "public"."****" failed, case by common: DTS-100047: retry 1 times, 43200 seconds, which exceed the supposed 43200 seconds FatalAnyAllException: common: DTS-100047: retry 1 times, 43200 seconds, which exceed the supposed 43200 seconds PSQLException: ERROR: "****" is not a table Detail: Only tables can be added to publications.

DTS-RETRY-ERR-0542:SSLProtocolException: Received fatal alert: unexpected_message

可能原因:源库网络不稳定或网络发生变化,导致DTS与源库的连接出现异常。

解决方法:请确保DTS可以正常连接并读取源库的数据,然后重新启动DTS任务

报错示例

DTS-52111: Increment Context Is Not Running..: cause: CriticalAnyAllException: postgresql-reader: DTS-52510: Fetch postgresql logical log failed FatalAnyAllException: common: DTS-100047: retry 1 times, 43200 seconds, which exceed the supposed 43200 seconds IOException: org.postgresql.util.PSQLException: Database connection failed when reading from copy PSQLException: Database connection failed when reading from copy SSLProtocolException: Received fatal alert: unexpected_message

DTS-RETRY-ERR-0543:seek timestamp for topic (.*)? with timestamp (.*)? failed NoSuchElementException: null

可能原因:TiDB数据库的增量数据,无法复制到目标TopicID0的分区,或该分区中保存的位点数据异常。

解决方法:请确保目标Topic已正常存储TiDB的增量数据(ID0的分区中已存储相应的增量数据,且位点数据正常),然后重新启动DTS任务若异常无法解决,请通过钉钉(钉钉通讯客户端下载地址)进入到DTS客户交流钉钉群(群号:116655009709),进行咨询。

报错示例

DTS-31009: In process of processing data (recordRange: 123456) failed cause: FatalAnyAllException: common: DTS-100047: retry 1 times, 43200 seconds, which exceed the supposed 43200 seconds RuntimeException: seek timestamp for topic [****] with timestamp [174186187****] failed NoSuchElementException: null

DTS-RETRY-ERR-0544:Can’t find primary key info for target table

可能原因:目标表缺少主键。

解决方法:根据报错信息和源库的表结构,给目标表添加主键,然后重新启动DTS任务

报错示例

DTS-100047: retry 1 times, 43200 seconds, which exceed the supposed 43200 seconds cause: CriticalAnyAllException: replicate-adb30: DTS-70020: Can’t find primary key info for target table: `****`

DTS-RETRY-ERR-0545:Could not create connection to database server

可能原因:DTS无法连接目标库。

解决方法:请确保目标库的状态正常且可以正常连接,然后重新启动DTS任务

报错示例

Connect Target DB failed. cause by [Could not create connection to database server. Attempted reconnect 1 times. Giving up.] About more information in ****

DTS-RETRY-ERR-0546:out of range for decimal

可能原因:由于目标库的字段类型与源库不兼容,导致数据无法写入到目标库。

解决方法:请根据源库待同步或迁移字段的类型,修改目标表的字段类型,然后重新启动DTS任务

报错示例

DTS-077100: Record Replicator error in table ****.****. cause by [java.sql.SQLException: [15018, 2025042117135301001****] (Column => VIP_MEMBER_LEVEL_INDICATOR.INDEX_VALUE), Value[10000****.36] out of range for decimal(10, 2)] About more information in ****

DTS-RETRY-ERR-0547:Can't find any matching password for myadmin

可能原因:DTS任务使用的目标数据库的账号或密码错误。

解决方法

  • 数据库密码错误:进入DTS实例控制台的基本信息页面,在目标端区域单击修改密码,纠正数据库的密码,然后重新启动DTS任务

  • 数据库账号错误:使用正确的数据库账号和密码,重新配置DTS任务。

报错示例

java.sql.SQLException: [10000, 2025032923342501002000****] Can't find any matching password for myadmin

DTS-RETRY-ERR-0548:Throwable occurs in QueueStorage

可能原因:目标AnalyticDB MySQL集群异常,导致数据无法写入到目标库。

解决方法:请联系AnalyticDB MySQL的技术支持人员进行处理,然后重新启动DTS任务

报错示例

DTS-077501: Target Instance error in table ****.****, Please contact ADS support. cause by [java.sql.SQLException: Error Code:60008, RealtimeDataFailedException:Insert failed with 1 data records: [partition=9] Throwable occurs in QueueStorage: null] About more information in ****

DTS-RETRY-ERR-0549:database (.*)? does not exist

可能原因:目标库不存在,导致数据无法写入。

解决方法:根据报错信息手动创建目标库,然后重新启动DTS任务

说明

建议重新配置DTS任务,然后使用DTS同步或迁移库表结构(同步实例的同步类型需勾选库表结构同步,迁移实例的迁移类型需勾选库表结构迁移)。

报错示例

org.postgresql.util.PSQLException: FATAL: database "****" does not exist

DTS-RETRY-ERR-0550:The connection attempt failed

可能原因:DTS无法连接数据库。

解决方法:请确保数据库实例的状态正常,且DTS可以正常连接该数据库(检查数据库的连接设置、白名单设置、账号和密码的正确性等),然后重新启动DTS任务

报错示例

org.postgresql.util.PSQLException: The connection attempt failed.

DTS-RETRY-ERR-0551:RecordBatchTooLargeException: The request included message batch larger than the configured segment size on the server

可能原因:写入Kafka单条消息体的大小超过目标端Kafka设定的最大值。

解决方法

  • 同步实例:请自行确认该消息所对应的大字段,然后使用修改同步对象功能移除或过滤该大字段。

  • 迁移实例:请自行确认该消息所对应的大字段,然后重新配置迁移任务,并从待迁移的对象中过滤该大字段。

报错示例

DTS-100047: retry 1 times, 43200 seconds, which exceed the supposed 43200 seconds cause: ExecutionException: com.****.****.common.errors.RecordBatchTooLargeException: The request included message batch larger than the configured segment size on the server. RecordBatchTooLargeException: The request included message batch larger than the configured segment size on the server.

DTS-RETRY-ERR-0553:was deadlocked on lock | communication buffer resources with another process and has been chosen as the deadlock victim. Rerun the transaction

可能原因:目标库存在死锁,导致数据无法写入。

解决方法:请联系数据库管理员(DBA)恢复数据库,然后重新启动DTS任务

报错示例

DTS-100047: retry 1 times, 43200 seconds, which exceed the supposed 43200 seconds cause: TransactionReplicateException: transaction-replicate: DTS-70003: 2 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 SQLServerException: Transaction (Process ID 73) was deadlocked on lock | communication buffer resources with another process and has been chosen as the deadlock victim. Rerun the transaction.

DTS-RETRY-ERR-0554:No operations allowed after connection closed

可能原因:数据库连接被关闭,导致DTS无法连接到数据库实例。

解决方法:根据报错信息和数据库日志进行排查和处理,然后重新启动DTS任务

报错示例

com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after connection closed.

DTS-RETRY-ERR-0555:The server is currently in offline mode

可能原因:数据库当前处于离线模式,无法处理请求。

解决方法:请联系数据库管理员(DBA)恢复数据库,然后重新启动DTS任务

报错示例

java.sql.SQLException: The server is currently in offline mode

DTS-RETRY-ERR-0556:maximum (.*)? partitions allowed, or more than (.*)? partitions created

可能原因:DTS在目标库写入数据时,目标表的Partition超出了限制。

解决方法:根据报错信息进行相应的处理,然后重新启动DTS任务

报错示例

DTS-100047: retry 1 times, 43200 seconds, which exceed the supposed 43200 seconds cause: RecoverableAnyAllException: transaction-replicate: DTS-70004: execute upload failed, may try it again TransactionReplicateException: transaction-replicate: DTS-70003: 3 execute transaction has excess max transaction retry time [100] cause:Catalog Service Failed. ErrorCode:105. ErrorMessage:ODPS-0110061: Failed to run ddltask - Modify DDL meta encounter exception : ODPS-0123031:ODPS partition exception - maximum 60000 partitions allowed, or more than 10240 partitions created OdpsException: Catalog Service Failed. ErrorCode:105. ErrorMessage:ODPS-0110061: Failed to run ddltask - Modify DDL meta encounter exception : ODPS-0123031:ODPS partition exception - maximum 60000 partitions allowed, or more than 10240 partitions created

DTS-RETRY-ERR-0557:RuntimeException (.*)? not support

可能原因:DTS在数据库中执行SQL命令时,出现异常。

解决方法:请检查数据库的状态和日志,并进行相应的修复,然后重新启动DTS任务

报错示例

DTS-31009: In process of processing data (recordRange: 123456) failed cause: FatalAnyAllException: common: DTS-100047: retry 1 times, 43200 seconds, which exceed the supposed 43200 seconds RuntimeException: not support

DTS-RETRY-ERR-0558:The server has been locked

可能原因:数据库实例已被锁定。

解决方法:请联系数据库管理员(DBA)恢复数据库,然后重新启动DTS任务

报错示例

com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: The server has been locked

DTS-RETRY-ERR-0559:missing column (.*)? in source record

可能原因:由于数据库本身的限制,导致DTS无法采集到源库的部分DDL操作(源库删除列的操作未被同步到目标库),进而导致在同步或迁移后续增量变更时,源库与目标库的列无法对应。

解决方法:在业务允许的前提下,清空目标库中DTS同步或迁移过去的数据,然后重新配置DTS任务。

说明

若为同步实例,可以尝试使用修改同步对象功能移除导致报错的表,再清空目标数据库中该表的DTS同步或迁移过去的数据,然后再使用修改同步对象功能将移除的表添加回同步对象。

报错示例

DTS-100047: retry 1 times, 43200 seconds, which exceed the supposed 43200 seconds cause: CriticalAnyAllException: replicate-postgresql: DTS-70029: missing column was_control in source record

DTS-RETRY-ERR-0560:Syntax parse error in condition, conditionSQL

可能原因:DTS实例设置的过滤条件不正确。

解决方法

  • 同步实例:修改过滤条件中的过滤语句,并重新启动DTS任务。更多信息,请参见后续操作

  • 迁移实例:重新启动DTS任务,若实例无法恢复,请重新配置DTS任务。

若异常无法解决,请通过钉钉(钉钉通讯客户端下载地址)进入到DTS客户交流钉钉群(群号:116655009709),进行咨询。

报错示例

DTS-31009: In process of processing data (recordRange: 123456) failed cause: FatalAnyAllException: common: DTS-100047: retry 1 times, 43200 seconds, which exceed the supposed 43200 seconds CriticalAnyAllException: capture-dstore: DTS-51004: Syntax parse error in condition, conditionSQL:****

DTS-RETRY-ERR-0561:DbException: Table (.*)? not found

可能原因:DTS实例设置的过滤条件不正确。

解决方法

  • 同步实例:修改过滤条件中的过滤语句,并重新启动DTS任务。更多信息,请参见后续操作

  • 迁移实例:重新启动DTS任务,若实例无法恢复,请重新配置DTS任务。

若异常无法解决,请通过钉钉(钉钉通讯客户端下载地址)进入到DTS客户交流钉钉群(群号:116655009709),进行咨询。

报错示例

DTS-31009: In process of processing data (recordRange: 123456) failed cause: FatalAnyAllException: common: DTS-100047: retry 1 times, 43200 seconds, which exceed the supposed 43200 seconds DbException: Table "****" not found [42102-193] JdbcSQLException: ****

DTS-RETRY-ERR-0562:ERR syntax error

可能原因:源和目标Redis版本不兼容。

解决方法:检查源和目标Redis版本,并进行相应的处理(如升级)以使其兼容性,然后重新启动DTS任务

报错示例

DTS-100047: retry 1 times, 43200 seconds, which exceed the supposed 43200 seconds cause: JedisDataException: ERR syntax error

DTS-RETRY-ERR-0563:No enum constant com.alibaba.amp.any.redis.writer.ExtendRedisCommand.

可能原因:DTS无法解析源Redis实例中的执行命令。

解决方法:重新启动DTS任务若异常无法解决,请通过钉钉(钉钉通讯客户端下载地址)进入到DTS客户交流钉钉群(群号:116655009709),进行咨询。

报错示例

DTS-31009: In process of processing data (recordRange: 123456) failed cause: FatalAnyAllException: common: DTS-100047: retry 1 times, 43200 seconds, which exceed the supposed 43200 seconds IllegalArgumentException: No enum constant com.alibaba.amp.any.redis.writer.ExtendRedisCommand.FLUSHDB_XSJ

DTS-RETRY-ERR-0564:full replication not allowed in INC mode

可能原因:DTS无法采集反向同步任务的增量数据。

解决方法重置并重新配置该反向同步任务。

报错示例

DTS-31009: In process of processing data (recordRange: 123456) failed cause: FatalAnyAllException: common: DTS-100047: retry 1 times, 43200 seconds, which exceed the supposed 43200 seconds RedisServerException: redis: DTS-10015: redis: DTS-10009: redis: DTS-10013: full replication not allowed in INC mode. RedisCannotRetryException: redis: DTS-10009: redis: DTS-10013: full replication not allowed in INC mode. RedisReFullSyncException: redis: DTS-10013: full replication not allowed in INC mode.

DTS-RETRY-ERR-0565:TableStoreException: The AccessKeyID is disabled

可能原因:目标库为表格存储(Tablestore)的任务,其配置的AccessKey已被禁用。

解决方法:重新启用该AccessKey,然后重新启动DTS任务;或者使用有效的AccessKey重新配置DTS任务。

报错示例

DTS-100047: retry 1 times, 43200 seconds, which exceed the supposed 43200 seconds cause: ClientException: [ErrorCode]:OTSAuthFailed, [Message]:The AccessKeyID is disabled., [RequestId]:00063****-50eb-a71e-c97a-261a0481****, [TraceId]:092f****-e3fa-8066-efc4-0c1ce00****, [HttpStatus:]403 TableStoreException: The AccessKeyID is disabled. TableStoreException: The AccessKeyID is disabled.

DTS-RETRY-ERR-0566:TableStoreException: You have no permission to access the requested resource, please contact the resource owner.

可能原因:目标库为表格存储(Tablestore)的任务,其配置的AccessKey权限不足。

解决方法:请确保AccessKey所属的阿里云账号有Tablestore的写入权限,然后重新启动DTS任务

报错示例

DTS-100047: retry 1 times, 43200 seconds, which exceed the supposed 43200 seconds cause: ClientException: [ErrorCode]:OTSNoPermissionAccess, [Message]:You have no permission to access the requested resource, please contact the resource owner., [RequestId]:0006****-65b5-b7da-c97a-261a112****, [TraceId]:f2a6****-ce44-d9bf-e4bf-205b7d92****, [HttpStatus:]403 TableStoreException: You have no permission to access the requested resource, please contact the resource owner. TableStoreException: You have no permission to access the requested resource, please contact the resource owner.

DTS-RETRY-ERR-0567:Unable to parse the date

可能原因:源库中待同步或迁移对象中存在无效的日期格式的数据,导致DTS无法将其转换为整数或有效的日期格式。

解决方法:请根据报错信息和数据格式要求修改源库的数据,然后重新配置DTS任务。

报错示例

DTS-100047: retry 1 times, 43200 seconds, which exceed the supposed 43200 seconds cause: CriticalAnyAllException: tablestore: DTS-11001: Failed to disperse value 0000-00-00 00:00:00.0 of type {typeName:UNKNOWN, typeId:12, isLobType:false,}tablestore: DTS-11001: Can not convert value: 0000-00-00 00:00:00.0 to Integer.java.text.ParseException: Unable to parse the date: 0000-00-00 00:00:00.0

DTS-RETRY-ERR-0569:503 Service Temporarily Unavailable

可能原因:目标端ClickHouse集群的某个节点健康状态异常或暂时不可用,导致服务无法访问。

解决方法:请检查目标端ClickHouse实例的健康状态,确保所有节点均正常运行。问题修复后,然后重新启动DTS任务

报错示例

java.sql.BatchUpdateException: <center><h1>503 Service Temporarily Unavailable</h1></center> <hr/><center>nginx</center> , server ClickHouseNode [uri=http://10.xxx.xxx.xxx:xxx/default]@-477967xxx

DTS-RETRY-ERR-0570:违反外键约束

可能原因:向目标PostgreSQL数据库写入数据时,违反了外键(Foreign Key)约束。这通常是因为目标库仍然存在使用限制,并未使用同步账号设置session_replication_role参数为replica,导致在数据导入期间外键约束仍然生效。

解决方法:请为用于数据同步的目标数据库账号设置session_replication_role参数,以在同步期间临时禁用外键约束。问题修复后,然后重新启动DTS任务

报错示例

common: DTS-100047: retry 60 times, 601 seconds, which exceed the supposed 600 seconds cause: CriticalAnyAllException: framework: DTS-30011: currentRunningSQL: /* DTS-full-q7bj8hxd128xxx */insert into "public"."ApprovalFlow"(xxx) values (xxx) on conflict do nothing,currentRow:xxx, 
reason: Batch entry 0 /* DTS-full-q7bj8hxd128xxx */insert into "public"."ApprovalFlow"(xxx) values (xxx) on conflict do nothing was aborted: 错误: 插入或更新表 "ApprovalFlow" 违反外键约束 "FK_ApprovalFlow_User_CreateUserId" Detail: 键值对(CreateUserId)=(8219xxxx-e9eb-41d8-9fa8-40cee856xxxx)没有在表"User"中出现. 

DTS-RETRY-ERR-0571:因为数据库副本不是PRIMARYSECONDARY角色。仅当数据库副本是PRIMARYSECONDARY角色时才允许连接到可用性数据库

可能原因:DTS尝试连接的SQL Server可用性数据库副本,其角色既不是主副本(PRIMARY)也不是辅助副本(SECONDARY),导致连接被拒绝。

解决方法:请检查您的SQL Server AlwaysOn High Availability Group配置,确保DTS连接的数据库副本处于正常的PRIMARYSECONDARY角色。修复数据库状态后,重新启动DTS任务

报错示例

com.microsoft.sqlserver.jdbc.SQLServerException: 无法访问可用性数据库“SIT_MSCRM”,因为数据库副本不是 PRIMARY 或 SECONDARY 角色。仅当数据库副本是 PRIMARY 或 SECONDARY 角色时才允许连接到可用性数据库。

DTS-RETRY-ERR-0572:Access Mode is AllDenied

可能原因:用于数据同步的账号没有访问目标端MaxCompute(原ODPS)表的odps:Describe权限。

解决方法:请为DTS任务配置的RAM用户或角色授予访问目标MaxCompute表的相应权限。授权完成后,重新启动DTS任务

报错示例

DTS-077000: Record Replicator Unknown error. cause by [ODPS-0420095: Access Denied - Authorization Failed [4093], You have NO privilege 'odps:Describe' on {acs:odps:*:projects/xxx/tables/xxx}. Access Mode is AllDenied

DTS-RETRY-ERR-0573:An error occurred when accessing your server. Please retry or report your issues.

可能原因:DTS在访问源端MySQL数据库时发生未知异常。这可能是由于网络波动、数据库瞬时不可用或配置问题引起的。

解决方法:请检查源端MySQL数据库的运行状态、网络连接以及防火墙设置,确保DTS服务器可以正常访问。确认无误后,重新启动DTS任务

报错示例

java.sql.SQLException: An error occurred when accessing your server. Please retry or report your issues.

DTS-RETRY-ERR-0574:At most (.*)? new range partitions can be automatically created at once for interval partitioning

可能原因:目标数据库(如PolarDB)的表采用了区间分区(Interval Partitioning),但在数据写入过程中,需要一次性自动创建的分区数量超过了数据库设置的上限。

解决方法:请调整目标数据库的相关参数,增加单次可自动创建的分区数量上限,或提前手动创建所需分区。修改数据库配置后,重新启动DTS任务

报错示例

DTS-30011: currentRunningSQL: /* DTS-full-v0cg6k8717xxxx */insert ignore into `xxxx`.`xxxx`() VALUES (),currentRow:xxx,
reason: At most xxx new range partitions can be automatically created at once for interval partitioning. cause: BatchUpdateException: At most 30 new range partitions can be automatically created at once for interval partitioning. SQLException: At most xxx new range partitions can be automatically created at once for interval partitioning.

DTS-RETRY-ERR-0575:Authentication Failed For (.*)? maybe username or password is incorrect

可能原因:DTS连接源数据库时使用的用户名或密码不正确,导致身份验证失败。

解决方法:请检查DTS任务中配置的源库连接信息,确认用户名和密码是否正确,特别是近期是否对数据库密码进行过修改。更新为正确的连接信息后,重启DTS任务。

报错示例

java.sql.SQLException: Authentication Failed For RDS maybe username or password is incorrect

DTS-RETRY-ERR-0576:because the database replica is not in the PRIMARY or SECONDARY role. Connections to an availability database is permitted only when the database replica is in the PRIMARY or SECONDARY role

可能原因:DTS尝试连接的SQL Server可用性数据库副本,其角色既不是主副本(PRIMARY)也不是辅助副本(SECONDARY),导致连接被拒绝。

解决方法:请检查您的SQL Server AlwaysOn High Availability Group配置,确保DTS连接的数据库副本处于正常的PRIMARYSECONDARY角色。修复数据库状态后,重新启动DTS任务

报错示例

com.microsoft.sqlserver.jdbc.SQLServerException: Unable to access availability database 'xxx' because the database replica is not in the PRIMARY or SECONDARY role. Connections to an availability database is permitted only when the database replica is in the PRIMARY or SECONDARY role. Try the operation again later. ClientConnectionId:f2f1xxxx-c943-4348-95b3-520074baxxxx

DTS-RETRY-ERR-0577:binlog controller is not exist, binlog dump

可能原因:源端AnalyticDB MySQL 3.0实例的Binlog Controller组件异常,导致DTS无法拉取增量日志。

解决方法:此问题源于数据库内部组件。请联系AnalyticDB MySQL的技术支持进行排查。

报错示例

DTS-52110: MySQLRecordExtractor Init Error: mysql-reader: DTS-52060: initial fetch position failed cause: CriticalAnyAllException: mysql-reader: DTS-52060: initial fetch position failed IOException: java.sql.SQLException: [40089, 2025070914xxxx0210170500400315135xxxx] binlog controller is not exist, binlog dump request is not supported SQLException: [40089, 2025070914xxxx0210170500400315135xxxx] binlog controller is not exist, binlog dump request is not supported

DTS-RETRY-ERR-0578:binlog file adb-binlog.log is not a binlog file

可能原因:将AnalyticDB MySQL 3.0实例作为源端时,在创建DTS任务时,错误地选择了MySQL作为源实例类型。

解决方法:请重新创建DTS任务,并在选择源端类型时,请选择AnalyticDB MySQL 3.0类型进行接入。

报错示例

DTS-100047: retry 1714 times, 43203826 seconds, which exceed the supposed 43200 seconds cause: RecoverableAnyAllException: dts-k-src: DTS-52110: MySQLRecordExtractor Init Error: mysql-reader: DTS-52060: initial fetch position failed CriticalAnyAllException: mysql-reader: DTS-52060: initial fetch position failed IOException: java.sql.SQLException: [40087, 20250718144xxxx100090801240315125xxxx] binlog file adb-binlog.log is not a binlog file SQLException: [40087, 20250718144xxxx100090801240315125xxxx] binlog file adb-binlog.log is not a binlog file

DTS-RETRY-ERR-0579:binlog file adb-klog.log is not a binlog file

可能原因:将AnalyticDB MySQL 3.0实例作为源端时,在创建DTS任务时,错误地选择了MySQL作为源实例类型。

解决方法:请重新创建DTS任务,并在选择源端类型时,请选择AnalyticDB MySQL 3.0类型进行接入。

报错示例

DTS-100047: retry 1730 times, 43217716 seconds, which exceed the supposed 43200 seconds cause: RecoverableAnyAllException: dts-k-src: DTS-52110: MySQLRecordExtractor Init Error: mysql-reader: DTS-52060: initial fetch position failed CriticalAnyAllException: mysql-reader: DTS-52060: initial fetch position failed IOException: java.sql.SQLException: [40087, 20250718144xxxx100090801240315125xxxx] binlog file adb-klog.log is not a binlog file SQLException: [40087, 20250718144xxxx100090801240315125xxxx] binlog file adb-klog.log is not a binlog file

DTS-RETRY-ERR-0580:binlog file adb-system.log is not a binlog file

可能原因:将AnalyticDB MySQL 3.0实例作为源端时,在创建DTS任务时,错误地选择了MySQL作为源实例类型。

解决方法:请重新创建DTS任务,并在选择源端类型时,请选择AnalyticDB MySQL 3.0类型进行接入。

报错示例

DTS-100047: retry 1706 times, 43206894 seconds, which exceed the supposed 43200 seconds cause: RecoverableAnyAllException: dts-k-src: DTS-52110: MySQLRecordExtractor Init Error: mysql-reader: DTS-52060: initial fetch position failed CriticalAnyAllException: mysql-reader: DTS-52060: initial fetch position failed IOException: java.sql.SQLException: [40087, 20250718144xxxx100090801240315125xxxx] binlog file adb-system.log is not a binlog file SQLException: [40087, 20250718144xxxx100090801240315125xxxx] binlog file adb-system.log is not a binlog file

DTS-RETRY-ERR-0581:binlog is not enable

可能原因:将AnalyticDB MySQL 3.0实例作为源端时,在创建DTS任务时,错误地选择了MySQL作为源实例类型。

解决方法:请重新创建DTS任务,并在选择源端类型时,请选择AnalyticDB MySQL 3.0类型进行接入。

报错示例

java.sql.SQLException: [30000, 2025071409510xxxx1681812390315112xxxx] can't show binary logs for sg_b_phy_in_notices_wide because binlog is not enable

DTS-RETRY-ERR-0582:binlog truncated in the middle of event; consider out of disk space on master

可能原因:源数据库的Binlog文件在某个事件中间被截断,变得不完整。这通常是由于主库磁盘空间不足等原因造成的。

解决方法

  1. 请立即检查源数据库服务器的磁盘空间和健康状况。

  2. 由于Binlog已损坏,DTS无法继续。您需要通过修改同步或迁移实例的当前位点来跳过损坏的日志部分。

    说明

    跳过位点可能导致部分数据丢失,操作前请务必评估对业务的影响。

  3. 修复源库问题并调整位点后,重新启动DTS任务

报错示例

DTS-100047: retry 0 times, 1000 seconds, which exceed the supposed 43200 seconds cause: CriticalAnyAllException: dts-k-src: DTS-52111: Increment Context Is Not Running..: mysql-reader: DTS-52200: process error failed cause: IOException: java.sql.SQLException: binlog truncated in the middle of event; consider out of disk space on master; the first event 'mysql-bin.000100' at 63072xxxx, the last event read from './mysql-bin.000100' at 63072xxxx, the last byte read from './mysql-bin.000100' at 63072xxxx. 
SQLException: binlog truncated in the middle of event; consider out of disk space on master; the first event 'mysql-bin.000100' at 63072xxxx, the last event read from './mysql-bin.000100' at 63072xxxx, the last byte read from './mysql-bin.000100' at 63072xxxx. CriticalAnyAllException: mysql-reader: DTS-52200: process error failed IOException: java.sql.SQLException: binlog truncated in the middle of event; consider out of disk space on master; the first event 'mysql-bin.000100' at 63072xxxx, the last event read from './mysql-bin.000100' at 63072xxxx, the last byte read from './mysql-bin.000100' at 63072xxxx. 

DTS-RETRY-ERR-0583:(.*)? bytes when serialized which is larger than the total memory buffer you have configured with the buffer

可能原因:DTS在处理数据时,单条记录序列化后的大小超过了内部配置的内存缓冲区(buffer)上限。

解决方法:这是一个DTS内部的资源配置问题,通常不需要您手动介入。请尝试重新启动DTS任务,系统可能会自动调整或解决此问题。

报错示例

DTS-52122: Error on Send.The message is xxx bytes when serialized which is larger than the total memory buffer you have configured with the buffer.memory configuration. cause: RecordTooLargeException: The message is xxx bytes when serialized which is larger than the total memory buffer you have configured with the buffer.memory configuration.

DTS-RETRY-ERR-0584:can not find disperser for (.*)?

可能原因:DTS在进行数据类型转换时,找不到合适的转换器。这通常是由于源端和目标端表的字段类型不兼容,且DTS不支持该类型间的自动转换。

解决方法:请检查并对比源端与目标端不兼容字段的表结构。您可以尝试修改目标表字段类型,使其与源端兼容,或者在DTS任务中排除该字段的同步。调整后,重新启动DTS任务

报错示例

full-selectdb: DTS-61001: disperser is null,can not find disperser for field is_platform_account

DTS-RETRY-ERR-0585:cannot insert NULL into (.*)?

可能原因:目标Oracle表的某个列被定义为NOT NULL(不允许为空),但从源端同步过来的数据中该列的值为NULL,导致插入失败。

解决方法

  1. 检查并对比源端和目标端的表结构,确认是哪个字段引发的问题。

  2. 根据业务需求,您可以选择以下任一方式处理:

    • 修改目标表结构,允许该列为NULL或为其设置一个默认值。

    • 检查源端数据,确保该列不存在NULL值。

  3. 调整后,重新启动DTS任务

报错示例

DTS-077100: Record Replicator error in table sas2erp.orderstateflow. cause by [java.sql.SQLIntegrityConstraintViolationException: ORA-01400: cannot insert NULL into ("xxx"."xxx") ] About more information in [https://yq.aliyun.com/articles/508049].

DTS-RETRY-ERR-0586:cannot insert NULL into (.*)?

可能原因:目标Oracle表的某个列被定义为NOT NULL(不允许为空),但从源端同步过来的数据中该列的值为NULL,导致插入失败。

解决方法

  1. 检查并对比源端和目标端的表结构,确认是哪个字段引发的问题。

  2. 根据业务需求,您可以选择以下任一方式处理:

    • 修改目标表结构,允许该列为NULL或为其设置一个默认值。

    • 检查源端数据,确保该列不存在NULL值。

  3. 调整后,重新启动DTS任务

报错示例

DTS-100047: retry 4300 times, 43203 seconds, which exceed the supposed 43200 seconds cause: CriticalAnyAllException: framework: DTS-30011: currentRunningSQL: /* DTS-full-tf3u6r91200xxxx */insert into "xxx"."xxx"() VALUES (),currentRow:,
reason: ORA-01400: cannot insert NULL into ("xxx"."xxx"."xxx") BatchUpdateException: ORA-01400: cannot insert NULL into ("xxx"."xxx"."xxx")

DTS-RETRY-ERR-0588:check the etl document for the right syntax to use near script

可能原因:您在DTS任务中配置的ETL脚本存在语法错误。

解决方法:请检查您编写的ETL脚本,对照DTS迁移或同步任务中配置ETL进行修正。

报错示例

ETL: DTS--0001: You have an error in your ETL syntax; check the etl document for the right syntax to use near script^^^: at line 1

DTS-RETRY-ERR-0589:close wait failed coz rpc error

可能原因:DTS通过StreamLoad向目标SelectDB写入数据时,SelectDB内部返回了RPC错误。这表明目标SelectDB实例可能存在健康问题或内部错误。

解决方法:请检查目标SelectDB实例的运行状态、日志和负载情况。确认数据库恢复正常后,重新启动DTS任务

报错示例

java.io.IOException: Failed to stream load data to SelectDB.Key status is fail. Load result: {"Status":"Fail","Comment":"","BeginTxnTimeMs":15,"Message":"[INTERNAL_ERROR][INTERNAL_ERROR]close wait failed coz rpc error. VNodeChannel[173908364xxxx-173899408xxxx], load_id=247bc89eabexxxx-56cfe111acd6xxxx, txn_id=2946215958969xxxx, node=172.xxx.xxx.xxx:xxx, add batch req success but status isn't ok, err: [DATA_QUALITY_ERROR]PStatus: (172.xxx.xxx.xxx)[DATA_QUALITY_ERROR]Reached max column size limit 2048, host: 172.xxx.xxx.xxx","NumberUnselectedRows":0,"CommitAndPublishTimeMs":0,"Label":"DTS-SelectDB-Sink0b7170a9-xxxx-4dc4-xxxx-1bc2e043141d","LoadBytes":31146554,"StreamLoadPutTimeMs":7,"NumberTotalRows":9949,"WriteDataTimeMs":9800,"ReceiveDataTimeMs":70,"TxnId":2946215958969xxxx,"LoadTimeMs":9824,"TwoPhaseCommit":"false","ReadDataTimeMs":93,"NumberLoadedRows":0,"NumberFilteredRows":0}

DTS-RETRY-ERR-0590:CN failed to send & exec SQL to PN

可能原因:目标PolarDB-X数据库的计算节点(CN)无法成功将SQL请求发送到物理节点(PN)执行。这通常表示数据库内部节点间通信异常。

解决方法:请检查您的PolarDB-X实例的健康状态,特别是CNPN节点是否都正常运行且通信无误。待数据库恢复正常后,重新启动DTS任务

报错示例

DTS-30011: currentRunningSQL: /* DTS-full-vkxf76uu16qxxxx */insert ignore into `xxx`.`xxx`() VALUES (),currentRow:null, reason: Internal error: CN failed to send & exec SQL to PN cause: BatchUpdateException: Internal error: CN failed to send & exec SQL to PN SQLException: Internal error: CN failed to send & exec SQL to PN

DTS-RETRY-ERR-0591:Column has no default value

可能原因:目标SelectDB表的某个列定义为NOT NULL但没有设置默认值。当源端数据中不包含该列或该列值为NULL时,写入操作会因缺少值而失败。

解决方法

  1. 检查源端数据和DTS同步对象配置,确认是否同步了该列。

  2. 修改目标SelectDB的表结构,为该列设置一个默认值。例如:ALTER TABLE your_table ALTER COLUMN your_column SET DEFAULT 'your_default_value';

  3. 修改后,重新启动DTS任务

报错示例

java.io.IOException: Failed to stream load data to SelectDB.Key status is fail. Load result: {"Status":"Fail","Comment":"","BeginTxnTimeMs":23,"Message":"[ANALYSIS_ERROR]TStatus: errCode = 2, detailMessage = Column has no default value. column: assets_quantity","NumberUnselectedRows":0,"CommitAndPublishTimeMs":0,"Label":"DTS-SelectDB-Sink193914c2-xxxx-4beb-xxxx-e6e4a89276c4","LoadBytes":0,"StreamLoadPutTimeMs":0,"NumberTotalRows":0,"WriteDataTimeMs":0,"TxnId":1674029191551xxxx,"LoadTimeMs":0,"TwoPhaseCommit":"false","ReadDataTimeMs":0,"NumberLoadedRows":0,"NumberFilteredRows":0}

DTS-RETRY-ERR-0592:com.ibm.as400.access.ExtendedIllegalArgumentException

可能原因:源端中的数据格式不被DTS支持,导致解析失败。

解决方法:此错误表明存在DTS无法处理的数据类型或格式。请检查源端数据。

报错示例

DTS-31009: In process of processing data (recordRange: 456002531641996xxxx) failed cause: FatalAnyAllException: common: DTS-100047: retry 0 times, 14 seconds, which exceed the supposed 43200 seconds RuntimeException: AS400DB2Source:JournalEntryParser: parser entry failed, cause java.util.concurrent.ExecutionException: java.lang.RuntimeException: com.ibm.as400.access.ExtendedIllegalArgumentException: source (07/09/2511): Parameter value is not valid.

DTS-RETRY-ERR-0593:Communications link failure during commit(). Transaction resolution unknown.

可能原因:DTS在向目标数据库提交事务时,网络连接中断。这可能是由于网络不稳定或目标数据库连接异常导致的。

解决方法:请检查DTS服务器与目标数据库之间的网络连接稳定性,包括防火墙、安全组和路由配置。确保网络通畅后,重新启动DTS任务

报错示例

DTS-30011: currentRunningSQL: /* DTS-full-q8sh6ybp20jxxx */insert ignore into `xxx`.`xxx`() VALUES (),currentRow:xxx, reason: Communications link failure during commit(). Transaction resolution unknown. cause: MySQLNonTransientConnectionException: Communications link failure during commit(). Transaction resolution unknown.

DTS-RETRY-ERR-0594:Connect Failed For Mysql Server No Response

可能原因:DTS尝试连接源端MySQL服务器,但服务器没有响应。这可能是由于网络不通、防火墙拦截、数据库服务未启动或负载过高。

解决方法:请检查源端MySQL服务器的运行状态、网络连通性以及安全策略,确保DTS可以正常访问。确认无误后,重新启动DTS任务

报错示例

java.sql.SQLException: Connect Failed For Mysql Server No Response

DTS-RETRY-ERR-0595:Connection attempt timed out

可能原因:DTS连接PostgreSQL数据库时超时,表明在规定时间内未能建立连接。

解决方法:请检查网络连接、防火墙设置以及目标数据库的主机名和端口是否正确,确保DTS可以正常访问。修复后,重新启动DTS任务

报错示例

org.postgresql.util.PSQLException: Connection attempt timed out.

DTS-RETRY-ERR-0596:Connection refused

可能原因:DTS连接MongoDB服务器的请求被拒绝。常见原因包括网络不通、目标端口未监听、防火墙或安全组拦截。

解决方法:请检查DTSMongoDB服务器之间的网络连通性,确认MongoDB服务已启动且端口正确,并检查相关的网络安全策略。重新启动DTS任务

报错示例

java.lang.RuntimeException: com.mongodb.MongoQueryException: Query failed with error code 6 and error message 'Connection refused' on server 10.27.185.136:24214

DTS-RETRY-ERR-0597:Connection to (.*)? refused

可能原因:DTS连接PostgreSQL数据库的请求被拒绝。常见原因包括网络不通、目标端口未监听、防火墙拦截或数据库未配置接受外部连接。

解决方法:请检查网络连接、防火墙设置以及目标数据库的主机名和端口是否正确,确保DTS可以正常访问。修复后,重新启动DTS任务

报错示例

org.postgresql.util.PSQLException: Connection to 10.xxx.xxx.xxx:xxx refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.

DTS-RETRY-ERR-0598:execute sql (.*)? could not create file

可能原因:目标PostgreSQL数据库在执行DTSDDL语句(如创建内部标记表)时,因磁盘空间不足、权限问题或文件系统错误而无法创建文件。

解决方法:请检查目标数据库服务器的磁盘空间、文件系统状态以及数据库运行用户对数据目录的写权限。确认无误后,重新启动DTS任务

报错示例

DTS-10046: execute sql: CREATE TABLE IF NOT EXISTS "xxx"."xxx" ();CREATE INDEX "xxx" ON "xxx"."xxx"("xxx", "xxx"); CREATE INDEX "xxx" ON "xxx"."xxx"("xxx", "xxx"); failed. Create TransactionTable failed. cause: PSQLException: ERROR: could not create file "/39667142-1/data/base/xxx/xxx": Unknown error 1001

DTS-RETRY-ERR-0599:Fetch postgresql logical log failed (.*)? could not create file

可能原因:源端PostgreSQL数据库在为DTS创建逻辑复制槽(Replication Slot)时失败。错误信息File exists表明尝试创建的临时文件已存在,可能是上一次异常中断的残留。

解决方法:请联系源端PostgreSQL数据库管理员(DBA),排查逻辑复制功能异常原因。

报错示例

DTS-100047: retry 0 times, 1001 seconds, which exceed the supposed 43200 seconds cause: CriticalAnyAllException: dts-k-src: DTS-52111: Increment Context Is Not Running..: CriticalAnyAllException: postgresql-reader: DTS-52510: Fetch postgresql logical log failed IOException: org.postgresql.util.PSQLException: ERROR: could not create file "pg_replslot/dts_sync_kh81092l29exxxx/state.tmp": File exists PSQLException: ERROR: could not create file "pg_replslot/dts_sync_kh81092l29exxxx/state.tmp": File exists

DTS-RETRY-ERR-0600:Could not route this query because target db is not healthy.

可能原因:源端数据库在处理DTS的查询请求时,其内部的某个节点处于不健康状态,导致无法路由该查询。

解决方法:请检查源端实例的整体健康状态,确保所有计算节点和数据节点都运行正常。待数据库集群恢复后,重新启动DTS任务

报错示例

java.sql.SQLException: Could not route this query because target db is not healthy.