DTS-RETRY-ERR(0301~0400)

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

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

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

DTS-RETRY-ERR-0301:Invalid character data was found

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

解决方法:修改目标库表的字符集,然后重新启动DTS任务

报错示例

truncated CriticalAnyAllException: postgresql: DTS-11002: Invalid character data was found.

DTS-RETRY-ERR-0302:(.*)? is none in where causes

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

解决方法

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

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

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

报错示例

TransactionReplicateException: transaction-replicate: DTS-71001: MysqlRelatedTextSqlBuilderTools: record **** msg is none in where causes.

DTS-RETRY-ERR-0303:The size of attribute column (.*)? has exceeded the max length

可能原因:待写入数据中部分列的长度,大于目标库中该列的最大长度。

解决方法:请在目标库修改该表异常列的最大长度,使其满足数据写入的需要,然后重新启动DTS任务

报错示例

DTS-100047: retry 0 times, 0 seconds, which exceed the supposed 43200 seconds cause: ClientException: The size of attribute column 'task_i****' has exceeded the max length: 2097152.

DTS-RETRY-ERR-0306:Error while parsing column ETL value for command

可能原因:ETL的数据处理语句填写错误,导致ETL执行失败。

解决方法

报错示例

ETL: DTS--0001: Error while parsing column ETL value for command e_switch ****

DTS-RETRY-ERR-0307:Writer has been closed

可能原因:数据无法写入到目标库。

解决方法:请确保源库的增量变更日志存在、目标库状态正常、目标库结构兼容源库、目标库账号权限满足要求,然后重新启动DTS任务

报错示例

DTS-100047: retry 15 times, 15 seconds, which exceed the supposed 922337203685477**** seconds cause: IOException: Writer has been closed.

DTS-RETRY-ERR-0308:Error while executing ETL

可能原因:ETL的数据处理语句填写错误,导致ETL执行失败。

解决方法

报错示例

DTS-31009: In process of processing data (recordRange: 330151334436352****) failed cause: FatalAnyAllException: common: DTS-100047: retry 4251 times, 43201 seconds, which exceed the supposed 43200 seconds CriticalAnyAllException: ETL: DTS--0001: Error while executing ETL: e_switch ****

DTS-RETRY-ERR-0310:Function (.*)? not found

可能原因

解决方法

目标库中不存在报错信息中的Function(函数)。

根据报错信息和源库的Function信息,在目标库中创建相应的Function,然后重新启动DTS任务

目标数据库不支持Function。

重新配置DTS任务。

报错示例

DTS-31009: In process of processing data (recordRange: 782344968821171****) failed cause: FatalAnyAllException: common: DTS-100047: retry 0 times, 0 seconds, which exceed the supposed 43200 seconds DbException: Function "UNIX_TIMESTAMP" not found [90022-193] JdbcSQLException: Function "UNIX_TIMESTAMP" not found [90022-193]

DTS-RETRY-ERR-0311:MongoExecutionTimeoutException: operation exceeded time limit

可能原因:DTS在目标MongoDB数据库中执行变更操作超时。

解决方法:在业务允许的前提下,取消数据库超时时间的限制或升级数据库规格,然后重新启动DTS任务

报错示例

FatalAnyAllException: common: DTS-100047: retry 1 times, 45662 seconds, which exceed the supposed 43200 seconds RuntimeException: com.mongodb.MongoExecutionTimeoutException: operation exceeded time limit MongoExecutionTimeoutException: operation exceeded time limit

DTS-RETRY-ERR-0312:The table does not comply with the requirements by an external plugin

可能原因:目标库因外部插件的限制,无法进行写入操作。

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

报错示例

DTS-100047: retry 3957 times, 43202 seconds, which exceed the supposed 43200 seconds cause: CriticalAnyAllException: framework: DTS-30011: currentRunningSQL: **** reason: The table does not comply with the requirements by an external plugin. BatchUpdateException: The table does not comply with the requirements by an external plugin. SQLException: The table does not comply with the requirements by an external plugin.

DTS-RETRY-ERR-0313:The connection has been closed

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

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

报错示例

DTS-100047: retry 0 times, 953 seconds, which exceed the supposed 600 seconds cause: SQLServerException: SQL Server returned an incomplete response. The connection has been closed.

DTS-RETRY-ERR-0314:Failed to get global lock for table/view

可能原因:无法在目标库创建表或视图。

解决方法:对数据库状态、使用的数据库账号权限等进行排查和处理,然后重新启动DTS任务

报错示例

DTS-10046: execute sql: CREATE TABLE if not exists **** ENGINE=InnoDB DEFAULT CHARSET=utf8 failed. Create TransactionTable failed. cause: SQLException: Failed to get global lock for table/view 'dts.dts****' on master 1

DTS-RETRY-ERR-0315:Cannot convert NULL value to non-Nullable

可能原因:目标库具有非空约束的列,有空值写入。

解决方法:根据报错信息和源库的表结构,修改目标库的表结构(例如,去除目标库报错列的非空约束),然后重新启动DTS任务

报错示例

DTS-100047: retry 4123 times, 43209 seconds, which exceed the supposed 43200 seconds cause: BatchUpdateException: Code: 349. DB::Exception: Cannot convert NULL value to non-Nullable type: while converting source column alerting_time to destination column alerting_time: while executing 'FUNCTION _CAST****

DTS-RETRY-ERR-0319:Cannot set null to non-nullable column

可能原因:目标库具有非空约束的列,有空值写入。

解决方法:根据报错信息和源库的表结构,修改目标库的表结构(例如,去除目标库报错列的非空约束),然后重新启动DTS任务

报错示例

common: DTS-100047: retry 4306 times, 43201 seconds, which exceed the supposed 43200 seconds cause: SQLException: Cannot set null to non-nullable column #7 ****

DTS-RETRY-ERR-0321:Host (.*)? is not allowed to connect to this MySQL server

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

解决方法:根据报错信息,对数据库的白名单进行排查和处理,确保DTS服务器的IP地址段均已添加至数据库的安全设置中,然后重新启动DTS任务

报错示例

java.sql.SQLException: null, message from server: "Host '100.104.XX.XX' is not allowed to connect to this MySQL server"

DTS-RETRY-ERR-0322:disk is full

可能原因:目标库磁盘空间已满。

解决方法:扩容目标库的磁盘空间,然后重新启动DTS任务

报错示例

DTS-10046: execute sql: CREATE TABLE if not exists **** ENGINE=InnoDB DEFAULT CHARSET=utf8 failed. Create TransactionTable failed. cause: SQLException: Create table/tablespace 'dts****' failed, as disk is full

DTS-RETRY-ERR-0325:disperse error for column

可能原因:目标库的表结构(例如列的类型或长度)与源库不一致,导致数据无法写入到目标库。

解决方法:根据报错信息和源库的表结构,将目标库的表结构修改为与源库一致(或兼容),然后重新启动DTS任务

报错示例

DTS-100047: retry 15 times, 15 seconds, which exceed the supposed 922337203685477**** seconds cause: CriticalAnyAllException: database-framework: DTS-61001: disperse error for column:bo_**** BIGINT nullable as bo_**** of table ****

DTS-RETRY-ERR-0326:Socket is closed

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

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

报错示例

DTS-100047: retry 0 times, 0 seconds, which exceed the supposed 43200 seconds cause: SQLException: java.lang.reflect.InvocationTargetException InvocationTargetException: null IOException: Socket is closed

DTS-RETRY-ERR-0327:Error while executing user ETL

可能原因:ETL的数据处理语句填写错误,导致ETL执行失败。

解决方法

报错示例

framework: DTS-31009: In process of processing data (recordRange: 273076918923611****) failed cause: FatalAnyAllException: common: DTS-100047: retry 0 times, 0 seconds, which exceed the supposed 43200 seconds CriticalAnyAllException: ETL: DTS--0001: Error while executing user ETL: For input string: ****

DTS-RETRY-ERR-0328:Got error IllegalDataException from storage engine

可能原因:目标数据库发生异常。

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

报错示例

DTS-100047: retry 0 times, 0 seconds, which exceed the supposed 43200 seconds cause: BatchUpdateException: Got error IllegalDataException from storage engine. Detailed error: Must not use byte[0] for BINARY/VARBINARY, please use null instead. ****

DTS-RETRY-ERR-0329:Data conversion error converting

可能原因:目标库的表结构(例如列的类型或长度)与源库不一致,导致数据无法写入到目标库。

解决方法:根据报错信息和源库的表结构,将目标库的表结构修改为与源库一致(或兼容),然后重新启动DTS任务

报错示例

DTS-31009: In process of processing data (recordRange: 576317120221859****) failed cause: FatalAnyAllException: common: DTS-100047: retry 0 times, 0 seconds, which exceed the supposed 43200 seconds DbException: Data conversion error converting "2024-12-19 00:00:00" [22018-193] JdbcSQLException: Data conversion error converting "2024-12-19 00:00:00" [22018-193] NumberFormatException: For input string: "2024-12-19 00:00:00"

DTS-RETRY-ERR-0330:Error while parsing ETL script

可能原因:ETL的数据处理语句填写错误,导致ETL执行失败。

解决方法

报错示例

ETL: DTS--0001: Error while parsing ETL script You have an error in your ETL syntax; check the etl document for the right syntax to use near ****

DTS-RETRY-ERR-0331:User (.*)? already has more than (.*)? active connections

可能原因:数据库连接数达到上限。

解决方法:修改数据库连接数上限,然后重新启动DTS任务

报错示例

DTS-61015: Create connection failed **** cause: MySQLSyntaxErrorException: User hzdball already has more than 'max_****' active connections

DTS-RETRY-ERR-0332:SocketTimeoutException: Read timed out

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

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

报错示例

DTS-31009: In process of processing data (recordRange: 513789742289413****) failed cause: FatalAnyAllException: common: DTS-100047: retry 0 times, 3667 seconds, which exceed the supposed 600 seconds CriticalAnyAllException: framework: DTS-31009: read source data error CommunicationsException: Application was streaming results when the connection failed. Consider raising value of 'net_****' on the server. SocketTimeoutException: Read timed out

DTS-RETRY-ERR-0333:Operation not allowed on closed connection

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

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

报错示例

DTS-100047: retry 0 times, 0 seconds, which exceed the supposed 43200 seconds cause: SQLException: java.lang.reflect.InvocationTargetException InvocationTargetException: null MySQLNonTransientConnectionException: Operation not allowed on closed connection

DTS-RETRY-ERR-0334:Cannot get geometry object from data you send to the GEOMETRY field

可能原因:向GEOMETRY类型字段中写入的数据,无法被正确解析为几何对象。

解决方法:根据报错信息调整目标库中相应字段的类型,然后重新启动DTS任务

报错示例

DTS-100047: retry 4316 times, 43206 seconds, which exceed the supposed 43200 seconds cause: CriticalAnyAllException: framework: DTS-30011: currentRunningSQL: **** insert ignore into ****,currentRow:null, reason: Data truncation: Cannot get geometry object from data you send to the GEOMETRY field BatchUpdateException: Data truncation: Cannot get geometry object from data you send to the GEOMETRY field MysqlDataTruncation: Data truncation: Cannot get geometry object from data you send to the GEOMETRY field

DTS-RETRY-ERR-0335:Cannot parse (.*)? constant

可能原因:目标库的表结构(例如列的类型或长度)与源库不一致,导致数据无法写入到目标库。

解决方法:根据报错信息和源库的表结构,将目标库的表结构修改为与源库一致(或兼容),然后重新启动DTS任务

报错示例

DTS-31009: In process of processing data (recordRange: 436256372039247****) failed cause: FatalAnyAllException: common: DTS-100047: retry 0 times, 1 seconds, which exceed the supposed 43200 seconds DbException: Cannot parse "TIMESTAMP" constant "2024-11-01 00:00" [22007-193] JdbcSQLException: Cannot parse "TIMESTAMP" constant "2024-11-01 00:00" [22007-193] IllegalArgumentException: 2024-11-01 00:00

DTS-RETRY-ERR-0336:column (.*)? partition format function error

可能原因:目标库中存在数据格式不符合要求的字段,导致函数执行失败。

解决方法:根据报错信息和源库的表结构,将目标库的表结构修改为与源库一致(或兼容),然后重新启动DTS任务

报错示例

DTS-100047: retry 4222 times, 43200 seconds, which exceed the supposed 43200 seconds cause: RuntimeException: Table **** with columns **** and batch exception is **** column **** partition format function error: date_format(?, %Y%m), value: } BatchUpdateException: **** column **** partition format function error: date_format(?, %Y%m), value: **** 

DTS-RETRY-ERR-0338:java.lang.NumberFormatException

可能原因:目标库的表结构(例如列的类型或长度)与源库不一致,导致数据无法写入到目标库。

解决方法:根据报错信息和源库的表结构,将目标库的表结构修改为与源库一致(或兼容),然后重新启动DTS任务

报错示例

DTS-31009: In process of processing data (recordRange: 40009630192186****) failed cause: FatalAnyAllException: common: DTS-100047: retry 1189 times, 43220 seconds, which exceed the supposed 43200 seconds RuntimeException: java.lang.NumberFormatException: For input string: "****" NumberFormatException: For input string: "****"

DTS-RETRY-ERR-0339:Cannot create a JSON value from a string

可能原因:无法将源库STRING类型的数据写入目标库的JSON类型字段中。

解决方法:根据报错信息和源库的表结构,将目标库的表结构修改为与源库一致(或兼容),然后重新启动DTS任务

报错示例

DTS-100047: retry 1396 times, 43232 seconds, which exceed the supposed 43200 seconds cause: CriticalAnyAllException: framework: **** MysqlDataTruncation: Data truncation: Cannot create a JSON value from a string with CHARACTER SET 'binary'.

DTS-RETRY-ERR-0340:table engine is (.*)? it is a non-transactional engine

可能原因:目标表使用了非事务型存储引擎,导致数据无法写入。

解决方法:在业务允许的前提下,将目标表修改为事务型存储引擎(如InnoDB),然后重新启动DTS任务

报错示例

DTS-30021: Optional[cvte_com_zh].Optional[InfoArticle]'s table engine is [MyISAM], it is a non-transactional engine.

DTS-RETRY-ERR-0341:SSL Connection required, but not supported by server

可能原因:源库或目标库不支持SSL安全连接。

解决方法

  • 方法一:开启源库或目标库的SSL加密功能。

  • 方法二:使用非加密的连接方式将源库或目标库接入DTS(连接方式选择非加密连接)。

报错示例

com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: SSL Connection required, but not supported by server.

DTS-RETRY-ERR-0342:Unsupported encoding

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

解决方法:修改目标库表的字符集,然后重新启动DTS任务

报错示例

DTS-073602: Record Converter failed for the record of table ****. cause by [Unsupported encoding: utf8mb3] About more information in ****

DTS-RETRY-ERR-0343:PSQLException: ERROR: out of memory

可能原因:目标库的内存不足。

解决方法:升级目标库的规格以增加内存,然后重新启动DTS任务

报错示例

DTS-31009: In process of processing data (recordRange: 343720457685853****) failed cause: FatalAnyAllException: common: DTS-100047: retry 0 times, 35444 seconds, which exceed the supposed 43200 seconds CriticalAnyAllException: framework: DTS-31009: read source data error PSQLException: ERROR: out of memory Detail: Failed on request of size 131072 in memory context "ExecutorState".

DTS-RETRY-ERR-0344:Writer is closed

可能原因:数据无法写入到目标库。

解决方法:请确保源库的增量变更日志存在、目标库状态正常、目标库结构兼容源库、目标库账号权限满足要求,然后重新启动DTS任务

报错示例

DTS-100047: retry 15 times, 15 seconds, which exceed the supposed 922337203685477**** seconds cause: IOException: Writer is closed.

DTS-RETRY-ERR-0345:User writes blocked

可能原因:DTS任务使用的目标库账号,无法向目标库中写入数据。

解决方法:请确保DTS任务使用的目标库账号具备足够的权限,并且数据库实例未限制该账号的写入权限,然后重新启动DTS任务

报错示例

DTS-100047: retry 0 times, 2 seconds, which exceed the supposed 922337203685477**** seconds cause: SQLException: com.mongodb.MongoWriteException: Write operation error on server 10.42.XX.XX:XX. Write error: WriteError{code=371, message='User writes blocked', details={}}. MongoWriteException: Write operation error on server 10.42.XX.XX:XX. Write error: WriteError{code=371, message='User writes blocked', details={}}.

DTS-RETRY-ERR-0346:terminating connection due to out of memory

可能原因:源库或目标库因内存不足而无法连接。

解决方法:升级源库或目标库的规格以增加内存,然后重新启动DTS任务

报错示例

DTS-31009: In process of processing data (recordRange: 654419472062768****) failed cause: FatalAnyAllException: common: DTS-100047: retry 0 times, 1774 seconds, which exceed the supposed 43200 seconds CriticalAnyAllException: framework: DTS-31009: read source data error PSQLException: FATAL: terminating connection due to out of memory

DTS-RETRY-ERR-0347:Query exceeded maximum time limit

可能原因:DTS在源库中执行查询操作超时。

解决方法:适当调大源库查询SQL的运行超时设置或升级数据库规格,然后重新启动DTS任务

报错示例

DTS-31009: In process of processing data (recordRange: 305048960847210****) failed cause: FatalAnyAllException: common: DTS-100047: retry 23 times, 43506 seconds, which exceed the supposed 43200 seconds CriticalAnyAllException: framework: DTS-31009: read source data error SQLException: [32005, 202502060853291921682241170345369****] : Query exceeded maximum time limit of 1800000.00ms

DTS-RETRY-ERR-0348:No memory or reach tenant memory limit

可能原因:源库或目标库因内存不足而无法连接。

解决方法:升级源库或目标库的规格以增加内存,然后重新启动DTS任务

报错示例

jdbc-burst: DTS-61015: Create connection failed (url: 10.29.XX.XX:XX, user: cxmrw) cause: SQLException: No memory or reach tenant memory limit

DTS-RETRY-ERR-0349:The (.*)? server is running with the (.*)? option so it cannot execute this statement

可能原因:目标库处于只读或锁定状态,导致数据无法写入。

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

报错示例

DTS-100047: retry 120 times, 1800 seconds, which exceed the supposed 1800 seconds cause: TransactionReplicateException: transaction-replicate: DTS-70003: 6 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: ****, error detail message:The MySQL server is running with the LOCK_WRITE option so it cannot execute this statement SQLException: The MySQL server is running with the LOCK_WRITE option so it cannot execute this statement

DTS-RETRY-ERR-0350:replication slot (.*)? is active for PID (.*)?

可能原因:由于网络不稳定等因素,导致源库与DTS的连接出现异常。

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

报错示例

DTS-100047: retry 0 times, 1005 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 CriticalAnyAllException: postgresql-reader: DTS-52512: postgres open replication steam failed PSQLException: ERROR: replication slot "dts_****" is active for PID 3****

DTS-RETRY-ERR-0352:column is not allowed to be null

可能原因:目标库具有非空约束的列,有空值写入。

解决方法:根据报错信息和源库的表结构,修改目标库的表结构(例如,去除目标库报错列的非空约束),然后重新启动DTS任务

报错示例

DTS-100047: retry 0 times, 0 seconds, which exceed the supposed 3600 seconds cause: CriticalAnyAllException: full-lindorm: DTS-61010: column is not allowed to be null: ****

DTS-RETRY-ERR-0353:GC life time is shorter than transaction duration

可能原因:由于源库的垃圾回收(GC)机制,导致DTS在读取数据时因超时而失败。

解决方法:适当调大源库垃圾回收(GC)机制的超时时间,然后重新启动DTS任务

报错示例

DTS-31009: In process of processing data (recordRange: 341070835023137****) failed cause: FatalAnyAllException: common: DTS-100047: retry 0 times, 259404 seconds, which exceed the supposed 43200 seconds CriticalAnyAllException: framework: DTS-31009: read source data error SQLException: GC life time is shorter than transaction duration, transaction starts at ****

DTS-RETRY-ERR-0354:No results were returned by the query

可能原因:DTS在源库进行数据查询时,未返回任何结果。

解决方法:请排查数据库的状态及网络,确保DTS可以正常连接数据库,然后重新启动DTS任务

报错示例

DTS-31007: fetch and merge schemas failed cause: CriticalAnyAllException: full-postgresql: DTS-61006: No results were returned by the query. PSQLException: No results were returned by the query.

DTS-RETRY-ERR-0355:PSQLException: An I/O error occurred while sending to the backend

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

解决方法:请排查数据库的状态、网络、防火墙(或安全设置)、驱动设置等,确保DTS可以正常连接数据库,然后重新启动DTS任务

报错示例

DTS-100047: retry 0 times, 1667 seconds, which exceed the supposed 43200 seconds cause: PSQLException: An I/O error occurred while sending to the backend. SocketException: Broken pipe (Write failed)

DTS-RETRY-ERR-0356:NotWritablePrimary

可能原因:DTS任务配置的目标库不是主节点,导致数据无法写入。

解决方法:重新配置DTS任务,目标端使用数据库的主节点。

报错示例

DTS-100047: retry 0 times, 1 seconds, which exceed the supposed 922337203685477**** seconds cause: SQLException: com.mongodb.MongoNotPrimaryException: Command failed with error 10107 (NotWritablePrimary): 'not master' on server ****

DTS-RETRY-ERR-0357:already exists with different case

可能原因:目标端存在名称仅大小写不同的数据库,导致数据写入冲突。

解决方法:在业务允许的前提下,清理目标端实例,然后重新启动DTS任务

说明

若为同步实例,可以使用修改同步对象功能将导致报错的对象从已选择对象移动至源库对象,提交本次修改;然后再使用修改同步对象功能将其重新添加至已选择对象,同时使用库表列名映射功能,将数据写入目标端的其他数据库中。

报错示例

DTS-100047: retry 0 times, 0 seconds, which exceed the supposed 922337203685477**** seconds cause: SQLException: com.mongodb.MongoWriteException: Write operation error on server 10.46.XX.XX:XX. Write error: WriteError{code=13297, message='db already exists with different case already have: [subway] trying to create [Subway]', details={}}. MongoWriteException: Write operation error on server 10.46.XX.XX:XX.. Write error: WriteError{code=13297, message='db already exists with different case already have: [subway] trying to create [Subway]', details={}}.

DTS-RETRY-ERR-0359:too many filtered rows

可能原因:待写入SelectDB数据库的数据存在问题,导致数据无法写入。

解决方法:根据报错信息中的ErrorUrl,排查并处理异常,然后重新启动DTS任务若异常无法解决,请通过钉钉(钉钉通讯客户端下载地址)进入到DTS客户交流钉钉群(群号:116655009709),进行咨询。

报错示例

DTS-100047: retry 2775 times, 43207 seconds, which exceed the supposed 43200 seconds cause: TransactionReplicateException: transaction-replicate: DTS-70003: 2 execute transaction has excess max transaction retry time [64] cause:Failed to stream load data to table: **** status is fail. Load result: ****

DTS-RETRY-ERR-0360:operation exceeded time limit

可能原因:DTS执行查询操作或写入数据超时。

解决方法:请排查MongoDB数据库实例的状态(如负载及慢SQL情况),确保DTS可以正常执行查询和写入操作,然后重新启动DTS任务

报错示例

DTS-31009: In process of processing data (recordRange: 561767791805127****) failed cause: FatalAnyAllException: common: DTS-100047: retry 22 times, 43506 seconds, which exceed the supposed 43200 seconds RuntimeException: com.mongodb.MongoExecutionTimeoutException: Executor error during getMore :: caused by :: operation exceeded time limit MongoExecutionTimeoutException: Executor error during getMore :: caused by :: operation exceeded time limit

DTS-RETRY-ERR-0361:Unknown table

可能原因:目标库中缺少用于接收数据的表。

解决方法:根据报错信息和源库的表结构,手动在目标库中创建对应的表,然后重新启动DTS任务

报错示例

DTS-31007: get table **** detail info failed after retrying. cause: FatalAnyAllException: common: DTS-100047: retry 4312 times, 43209 seconds, which exceed the supposed 43200 seconds RecoverableAnyAllException: replicate-selectdb: DTS-70002: get table **** detail info failed. SQLException: errCode = 2, detailMessage = Unknown table ****

DTS-RETRY-ERR-0362:Not support string len over than `string_type_length_soft_limit_bytes`

可能原因:待写入目标库的STRING类型数据的长度,超过了SelectDB数据库的限制。

解决方法:请根据待写入目标库的STRING类型数据的最大长度,适当调大SelectDB数据库的string_type_length_soft_limit_bytes参数,然后重新启动DTS任务

报错示例

DTS-100047: retry 52 times, 602 seconds, which exceed the supposed 600 seconds cause: IOException: Failed to stream load data to SelectDB.Key status is fail. Load result: **** add batch req success but status isn't ok, err: [E-1201]PStatus: (172.16.XX.XX)[E-1201]failed to append block: [NOT_IMPLEMENTED_ERROR]Not support string len over than `string_type_length_soft_limit_bytes` in vec engine., ****

DTS-RETRY-ERR-0363:Can't get text on a START_OBJECT

可能原因:目标Elasticsearch数据库的结构异常。

解决方法:根据报错信息,将目标索引中相应字段的类型更改为Object,然后重新启动DTS任务

报错示例

DTS-100047: retry 15 times, 28 seconds, which exceed the supposed 922337203685477**** seconds cause: IOException: es: DTS-10035: failed to parse field **** of type [text] in document with id '13312'. Preview of field's value: '****', Can't get text on a START_OBJECT at 1:2380 CriticalAnyAllException: es: DTS-10035: failed to parse field **** of type [text] in document with id '13312'. Preview of field's value: '****', Can't get text on a START_OBJECT at 1:2380

DTS-RETRY-ERR-0364:no such index

可能原因:目标Elasticsearch数据库中缺少索引。

解决方法:根据报错信息,在目标Elasticsearch数据库中补充缺少的索引,然后重新启动DTS任务

报错示例

DTS-100047: retry 15 times, 25 seconds, which exceed the supposed 922337203685477**** seconds cause: IOException: es: DTS-10035: no such index **** and **** contains [-*] which forbids automatic creation of the index CriticalAnyAllException: es: DTS-10035: no such index **** and **** contains [-*] which forbids automatic creation of the index

DTS-RETRY-ERR-0365:index read-only

可能原因:目标Elasticsearch数据库为只读模式,导致数据无法写入。

解决方法:将目标Elasticsearch数据库修改为可读写,然后重新启动DTS任务

报错示例

DTS-100047: retry 15 times, 57 seconds, which exceed the supposed 922337203685477**** seconds cause: IOException: es: DTS-10035: blocked by: [FORBIDDEN/12/index read-only / allow delete (api)]; CriticalAnyAllException: es: DTS-10035: blocked by: [FORBIDDEN/12/index read-only / allow delete (api)];

DTS-RETRY-ERR-0366:unable to authenticate user

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

解决方法

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

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

报错示例

unable to authenticate user [elastic]

DTS-RETRY-ERR-0367:in encoding "UTF8" has no equivalent in encoding "GBK" (.*)?

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

解决方法:修改目标库表的字符集(例如修改为GB18030),然后重新启动DTS任务

报错示例

DTS-100047: retry 4037 times, 43208 seconds, which exceed the supposed 43200 seconds cause: CriticalAnyAllException: framework: DTS-30011: currentRunningSQL: **** on conflict do nothing was aborted: ERROR: character with byte sequence 0xee 0x96 0x83 in encoding "UTF8" has no equivalent in encoding "GBK" Where: unnamed portal parameter $12 Call getNextException to see other errors in the batch. PSQLException: ERROR: character with byte sequence 0xee 0x96 0x83 in encoding "UTF8" has no equivalent in encoding "GBK" Where: unnamed portal parameter $12

DTS-RETRY-ERR-0368:alter table (.*)? canceling statement due to user request (.*)?

可能原因:DTS实例初始化失败。

解决方法:在业务低峰期(例如源库和目标库的CPU负载在30%以下),然后重新启动DTS任务

报错示例

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 0 times, 300019 seconds, which exceed the supposed 43200 seconds cause: FatalAnyAllException: common: DTS-100047: retry 0 times, 300019 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 0 times, 300019 seconds, which exceed the supposed 43200 seconds FatalAnyAllException: common: DTS-100047: retry 0 times, 300019 seconds, which exceed the supposed 43200 seconds PSQLException: ERROR: canceling statement due to user request

DTS-RETRY-ERR-0369:requested WAL segment (.*)? has already been removed

可能原因:源库的WAL日志已被移除。

解决方法:请联系源库的管理员(DBA)进行处理,然后重新启动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..: CriticalAnyAllException: postgresql-reader: DTS-52510: Fetch postgresql logical log failed IOException: org.postgresql.util.PSQLException: ERROR: requested WAL segment 00000002000000F000000013 has already been removed PSQLException: ERROR: requested WAL segment 00000002000000F000000013 has already been removed

DTS-RETRY-ERR-0370:password authentication failed for user (.*)?

可能原因:使用DTS任务配置的数据库账号和密码,无法成功连接至数据库。

解决方法

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

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

报错示例

DTS-100047: retry 1 times, 44134 seconds, which exceed the supposed 43200 seconds cause: PSQLException: FATAL: password authentication failed for user ****

DTS-RETRY-ERR-0371:must be owner of table (.*)?

可能原因:DTS任务配置的数据库账号权限不足(需要owner权限)。

解决方法:给DTS任务使用的数据库账号授予足够的权限,然后重新启动DTS任务;或使用权限充足的数据库账号配置DTS任务。

报错示例

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 0 times, 0 seconds, which exceed the supposed 43200 seconds cause: FatalAnyAllException: common: DTS-100047: retry 0 times, 0 seconds, which exceed the supposed 43200 seconds PSQLException: ERROR: must be owner of table **** CriticalAnyAllException: postgresql-reader: ****

DTS-RETRY-ERR-0372:jdbc-burst (.*)? Create connection failed (.*)?

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

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

报错示例

DTS-100047: retry 1 times, 45377 seconds, which exceed the supposed 43200 seconds cause: DBCommonException: jdbc-burst: DTS-61015: Create connection failed (url: ****, user: ****) PSQLException: The connection attempt failed. EOFException: null

DTS-RETRY-ERR-0373:create publication error for (.*)? PSQLException: ERROR: operation is not allowed on this node Hint: Connect to the coordinator and run it again.

可能原因:源库或目标库为PolarDB PostgreSQL分布式版。

解决方法:无,DTS暂不支持PolarDB PostgreSQL分布式版集群。

报错示例

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 CriticalAnyAllException: postgresql-reader: DTS-52514: create publication error for **** PSQLException: ERROR: operation is not allowed on this node Hint: Connect to the coordinator and run it again.

DTS-RETRY-ERR-0374:postgres logical log not find (.*)?

可能原因:DTS未在源库中找到对应位点的数据。

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

报错示例

DTS-100047: retry 0 times, 1001 seconds, which exceed the supposed 600 seconds cause: CriticalAnyAllException: dts-k-src: DTS-52111: Increment Context Is Not Running..: CriticalAnyAllException: postgresql-reader: DTS-52510: Fetch postgresql logical log failed CriticalAnyAllException: postgresql-reader: DTS-52511: postgres logical log not find

DTS-RETRY-ERR-0375:FATAL: terminating connection due to out of memory (.*)?

可能原因:数据库内存OOM(Out of Memory)。

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

报错示例

DTS-52111: Increment Context Is Not Running..: cause: CriticalAnyAllException: postgresql-reader: DTS-52510: Fetch postgresql logical log failed CriticalAnyAllException: postgresql-reader: DTS--0001: execute sql select **** failed, case by common: DTS-100047: retry 0 times, 401 seconds, which exceed the supposed 43200 seconds FatalAnyAllException: common: DTS-100047: retry 0 times, 401 seconds, which exceed the supposed 43200 seconds PSQLException: FATAL: terminating connection due to out of memory

DTS-RETRY-ERR-0376:function dt_sub is not supported, maybe is op_sub (.*)?

可能原因:ETL的数据处理语句填写错误,导致ETL执行失败。

解决方法

报错示例

DTS--0001: Error while parsing ETL script function dt_sub is not supported, maybe is op_sub cause: ParseException: function dt_sub is not supported, maybe is op_sub

DTS-RETRY-ERR-0378:An I/O error occurred while sending to the backend (.*)?

可能原因:由于DTS与目标库的网络通信超时,导致数据无法写入。

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

报错示例

DTS-100047: retry 11 times, 43315 seconds, which exceed the supposed 43200 seconds cause: CriticalAnyAllException: framework: DTS-30011: currentRunningSQL: **** on conflict do nothing was aborted: An I/O error occurred while sending to the backend. Call getNextException to see other errors in the batch. BatchUpdateException: Batch entry 0 **** on conflict do nothing was aborted: An I/O error occurred while sending to the backend. Call getNextException to see other errors in the batch. PSQLException: An I/O error occurred while sending to the backend. SocketTimeoutException: Read timed out

DTS-RETRY-ERR-0379:deadlock detected (.*)?

可能原因:DTS实例初始化失败。

解决方法:在业务低峰期(例如源库和目标库的CPU负载在30%以下),然后重新启动DTS任务

报错示例

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: **** failed, case by common: DTS-100047: retry 0 times, 2003 seconds, which exceed the supposed 43200 seconds FatalAnyAllException: common: DTS-100047: retry 0 times, 2003 seconds, which exceed the supposed 43200 seconds PSQLException: ERROR: deadlock detected Detail: Process 18023 waits for AccessShareLock on relation 122000 of database 16392; blocked by process 18028. Process 18028 waits for AccessExclusiveLock on relation 121960 of database 16392; blocked by process 18023. Hint: See server log for query details.

DTS-RETRY-ERR-0380:index row size (.*)? exceeds maximum (.*)? for index (.*)?

可能原因:目标库的表结构与源库不一致(待写入目标库的索引长度超过了该数据库的限制),导致数据无法写入到目标库。

解决方法:根据报错信息和源库的表结构,将目标库的表结构修改为与源库一致(或兼容),然后重新启动DTS任务

报错示例

DTS-100047: retry 3798 times, 43209 seconds, which exceed the supposed 43200 seconds cause: CriticalAnyAllException: framework: DTS-30011: currentRunningSQL: **** on conflict do nothing was aborted: ERROR: index row size 3368 exceeds maximum 2712 for index "company_recommend_t****" Call getNextException to see other errors in the batch. BatchUpdateException: Batch entry 0 **** values **** on conflict do nothing was aborted: ERROR: index row size 3368 exceeds maximum 2712 for index "company_recommend_t****" Call getNextException to see other errors in the batch. PSQLException: ERROR: index row size 3368 exceeds maximum 2712 for index "company_recommend_t****"

DTS-RETRY-ERR-0381:canceling statement due to statement timeout (.*)?

可能原因:DTS实例初始化失败。

解决方法:在业务低峰期(例如源库和目标库的CPU负载在30%以下),然后重新启动DTS任务

报错示例

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 0 times, 59975 seconds, which exceed the supposed 43200 seconds cause: FatalAnyAllException: common: DTS-100047: retry 0 times, 59975 seconds, which exceed the supposed 43200 seconds PSQLException: ERROR: canceling statement due to statement timeout CriticalAnyAllException: postgresql-reader: DTS--0001: alter table identity: ****/d failed, case by common: DTS-100047: retry 0 times, 59975 seconds, which exceed the supposed 43200 seconds FatalAnyAllException: common: DTS-100047: retry 0 times, 59975 seconds, which exceed the supposed 43200 seconds PSQLException: ERROR: canceling statement due to statement timeout

DTS-RETRY-ERR-0382:violates foreign key constraint (.*)?

可能原因:源库待同步或迁移的数据中包含外键,且目标库账号不足(不为高权限账号或者super权限账号)。

解决方法:手动将目标数据库中session_replication_role的参数值设置为replica,然后重新启动DTS任务。在DTS任务结束或释放后,您可以将session_replication_role的参数值改回origin

说明

如果未配置该参数,在特殊场景下(例如目标库存在级联更新、级联删除等操作,或目标库存在触发器等)可能会导致数据不一致。

报错示例

DTS-100047: retry 717 times, 7200 seconds, which exceed the supposed 7200 seconds cause: CriticalAnyAllException: framework: DTS-30011: currentRunningSQL: **** on conflict do nothing was aborted: ERROR: insert or update on table **** violates foreign key constraint **** is not present in table ****. Call getNextException to see other errors in the batch. BatchUpdateException: Batch entry 0 **** on conflict do nothing was aborted: ERROR: insert or update on table **** violates foreign key constraint **** is not present in table ****. Call getNextException to see other errors in the batch. PSQLException: ERROR: insert or update on table **** violates foreign key constraint **** is not present in table ****

DTS-RETRY-ERR-0383:value too long for type (.*)?

可能原因:目标库的表结构(例如列的类型或长度)与源库不一致,导致数据无法写入到目标库。

解决方法:根据报错信息和源库的表结构,将目标库的表结构修改为与源库一致(或兼容),然后重新启动DTS任务

报错示例

DTS-100047: retry 4297 times, 43200 seconds, which exceed the supposed 43200 seconds cause: CriticalAnyAllException: framework: DTS-30011: currentRunningSQL: **** on conflict do nothing,currentRow **** on conflict do nothing was aborted: ERROR: value too long for type character varying(17) Call getNextException to see other errors in the batch. BatchUpdateException: Batch entry 0 **** on conflict do nothing was aborted: ERROR: value too long for type character varying(17) Call getNextException to see other errors in the batch. PSQLException: ERROR: value too long for type character varying(17)

DTS-RETRY-ERR-0384:Function "TIMESTAMP" not found (.*)?

可能原因:当前DTS任务配置的过滤条件中,包含源库不存在的对象。

解决方法

  • 同步任务:使用修改同步对象功能修改过滤条件。更多信息,请参见后续操作

  • 迁移任务:请重新配置迁移任务,并使用正确的过滤条件。

报错示例

DTS-31009: In process of processing data (recordRange: 247513824836871****) failed cause: FatalAnyAllException: common: DTS-100047: retry 0 times, 0 seconds, which exceed the supposed 43200 seconds DbException: Function "TIMESTAMP" not found [90022-193] JdbcSQLException: Function "TIMESTAMP" not found [90022-193]

DTS-RETRY-ERR-0385:Could not find a server with specified targetServerType: primary (.*)?

可能原因:目标库发生主备切换,导致数据无法写入。

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

报错示例

DTS-100047: retry 1 times, 43335 seconds, which exceed the supposed 43200 seconds cause: DBCommonException: jdbc-burst: DTS-61015: Create connection failed **** PSQLException: Could not find a server with specified targetServerType: primary

DTS-RETRY-ERR-0386:syntax error at or near (.*)? alter table identity

可能原因:源库或目标库的表名包含特殊字符。

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

报错示例

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-00035: alter table identity: ****/d failed, case by common: DTS-100047: retry 0 times, 0 seconds, which exceed the supposed 43200 seconds cause: FatalAnyAllException: common: DTS-100047: retry 0 times, 0 seconds, which exceed the supposed 43200 seconds PSQLException: ERROR: syntax error at or near **** Position: 35 CriticalAnyAllException: postgresql-reader: DTS-00035: alter table identity: ****/d failed, case by common: DTS-100047: retry 0 times, 0 seconds, which exceed the supposed 43200 seconds FatalAnyAllException: common: DTS-100047: retry 0 times, 0 seconds, which exceed the supposed 43200 seconds PSQLException: ERROR: syntax error at or near ****

DTS-RETRY-ERR-0387:terminating connection due to administrator command (.*)?

可能原因:您断开了DTS与数据库之间的连接。

解决方法:请重新配置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_**** CriticalAnyAllException: postgresql-reader: DTS--0001: execute sql select prrelid from pg_public**** where prpubid = 6543770; failed, case by common: DTS-100047: retry 0 times, 0 seconds, which exceed the supposed 43200 seconds FatalAnyAllException: common: DTS-100047: retry 0 times, 0 seconds, which exceed the supposed 43200 seconds PSQLException: FATAL: terminating connection due to administrator command

DTS-RETRY-ERR-0388:index row size (.*)? exceeds btree version (.*)? maximum (.*)? for index

可能原因:目标库的表结构与源库不一致(待写入目标库的索引长度超过了该数据库的限制),导致数据无法写入到目标库。

解决方法:根据报错信息和源库的表结构,将目标库的表结构修改为与源库一致(或兼容),然后重新启动DTS任务

报错示例

DTS-100047: retry 4252 times, 43206 seconds, which exceed the supposed 43200 seconds cause: CriticalAnyAllException: framework: DTS-30011: currentRunningSQL: **** on conflict do nothing was aborted: ERROR: index row size 2808 exceeds btree version 4 maximum 2704 for index **** Detail: Index row references tuple (7968098,6) in relation ****. Hint: Values larger than 1/3 of a buffer page cannot be indexed. Consider a function index of an MD5 hash of the value, or use full text indexing. Call getNextException to see other errors in the batch. BatchUpdateException: Batch entry 0 **** on conflict do nothing was aborted: ERROR: index row size 2808 exceeds btree version 4 maximum 2704 for index ****" Detail: Index row references tuple (7968098,6) in relation ****. Hint: Values larger than 1/3 of a buffer page cannot be indexed. Consider a function index of an MD5 hash of the value, or use full text indexing. Call getNextException to see other errors in the batch. PSQLException: ERROR: index row size 2808 exceeds btree version 4 maximum 2704 for index **** Detail: Index row references tuple (7968098,6) in relation ****. Hint: Values larger than 1/3 of a buffer page cannot be indexed. Consider a function index of an MD5 hash of the value, or use full text indexing.

DTS-RETRY-ERR-0390:Invalid column index

可能原因:源库待同步或迁移的数据中,包含无效的索引。

解决方法

  • 同步任务:使用修改同步对象功能将包含无效索引的对象从同步对象中移除,然后重新启动DTS任务

  • 迁移任务:重新配置DTS任务,待迁移的对象不选择含无效索引的对象。

报错示例

DTS-52111: Increment Context Is Not Running..: cause: CriticalAnyAllException: oracle-reader: DTS-52340: Serializer redo log entry failed CriticalAnyAllException: oracle-reader: DTS--0001: execute sql select *** from *** where *** in (?) failed, case by common: DTS-100047: retry 0 times, 0 seconds, which exceed the supposed 43200 seconds FatalAnyAllException: common: DTS-100047: retry 0 times, 0 seconds, which exceed the supposed 43200 seconds CriticalAnyAllException: oracle-reader: DTS-52340: Invalid column index SQLException: Invalid column index

DTS-RETRY-ERR-0391:无法打开备份设备

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

解决方法

  • 同步任务:使用修改同步对象功能将包含无效索引的对象从同步对象中移除,然后重新启动DTS任务

  • 迁移任务:重新配置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..: CriticalAnyAllException: sqlserver-reader: DTS-52410: Sqlserver log fetch failed IOException: com.microsoft.sqlserver.jdbc.SQLServerException: 无法打开备份设备 'D:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\Backup\VNBU0-***-***-***'。出现操作系统错误 2(系统找不到指定的文件。)。 

DTS-RETRY-ERR-0392:InvalidWireTypeException: Protocol message tag had invalid wire type

可能原因:TiDB数据库的Kafka数据来源组件配置错误。

解决方法:请重新配置DTS任务,根据实际情况选择正确的Kafka数据来源组件

报错示例

DTS-31009: In process of processing data (recordRange: 8118513945741****) failed cause: FatalAnyAllException: common: DTS-100047: retry 0 times, 0 seconds, which exceed the supposed 43200 seconds RuntimeException: seek timestamp for topic [****-0] with timestamp [17386372****] failed InvalidWireTypeException: Protocol message tag had invalid wire type.

DTS-RETRY-ERR-0393:无法打开登录所请求的数据库(.*)?登录失败

可能原因:源库无法连接。

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

报错示例

com.microsoft.sqlserver.jdbc.SQLServerException: 无法打开登录所请求的数据库 "db01"。登录失败。 ClientConnectionId:9d0c3b2f-923a-46cd-****

DTS-RETRY-ERR-0394:用户(.*)?登录失败

可能原因

解决方法

源库无法连接。

请确保DTS可以正常连接源库,然后重新启动DTS任务

源库的日志已被清理。

请联系源库的管理员(DBA)进行处理,然后重新启动DTS任务;或者重新配置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..: CriticalAnyAllException: sqlserver-reader: DTS-52410: Sqlserver log fetch failed IOException: com.microsoft.sqlserver.jdbc.SQLServerException: 用户***登录失败。 ClientConnectionId:bec357eb-88ea-4fa6-a475-dcc07a**** SQLServerException: 用户***登录失败。

DTS-RETRY-ERR-0395:用户(.*)?没有运行 DBCC TRACEON 的权限

可能原因:数据库账号权限不足。

解决方法

  • 方法一:给DTS任务中使用的数据库账号授予足够的权限,然后重新启动DTS任务

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

报错示例

DTS-52110: SQLServerRecordExtractor Init Error: sqlserver-reader: DTS-00032: execute sql DBCC TRACEON(2537,-1) failed, case by common: DTS-100047: retry 0 times, 0 seconds, which exceed the supposed 43200 seconds cause: CriticalAnyAllException: sqlserver-reader: DTS-00032: execute sql DBCC TRACEON(2537,-1) failed, case by common: DTS-100047: retry 0 times, 0 seconds, which exceed the supposed 43200 seconds FatalAnyAllException: common: DTS-100047: retry 0 times, 0 seconds, which exceed the supposed 43200 seconds SQLServerException: 用户***没有运行 DBCC TRACEON 的权限。

DTS-RETRY-ERR-0397:An I/O error occurred while sending to the backend. SocketTimeoutException: Read timed out

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

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

报错示例

DTS-100047: retry 11 times, 43315 seconds, which exceed the supposed 43200 seconds cause: CriticalAnyAllException: framework: DTS-30011: currentRunningSQL: /* DTS-full-kv7n180xb34815h */insert into ****** on conflict do nothing was aborted: An I/O error occurred while sending to the backend. Call getNextException to see other errors in the batch. BatchUpdateException: Batch entry 0 ****** on conflict do nothing was aborted: An I/O error occurred while sending to the backend. Call getNextException to see other errors in the batch. PSQLException: An I/O error occurred while sending to the backend. SocketTimeoutException: Read timed out

DTS-RETRY-ERR-0398:Cannot get offset for timestamp

可能原因

解决方法

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

请先尝试修改DTS实例的位点,若异常无法解决,请根据实际情况选择如下两种解决方法中的一种。

  1. 查看源库中用于增量数据解析的日志(如BinlogRedolog等)时间范围是否包含该时间点。若包含,请尝试在后台重新读取数据;若不包含,请重新配置DTS任务。

  2. 重新配置DTS任务。

    重要

    请勿长时间暂停DTS任务。DTS任务暂停后,成功重新启动的最大期限为7天;如果源库的数据写入量较大,此期限将会缩短。

DTS任务失败过久,修复后DTS缓存模块中已没有相应位点的数据。

重新配置DTS任务。

重要

请勿长时间暂停DTS任务。DTS任务暂停后,成功重新启动的最大期限为7天;如果源库的数据写入量较大,此期限将会缩短。

全量迁移或全量同步持续时间较长,DTS可能已经清除全量任务启动后缓存的数据日志,导致用于增量解析的数据日志不完整。

说明

全量迁移或全量同步期间,DTS本地会循环存储源库近24小时或者50 GB的数据日志,用于增量数据解析。

重新配置DTS任务。

重要

配置DTS任务前,请评估迁移或同步数据量,如数据量较大,建议拆分成多个迁移或同步任务。

报错示例

DTS-073102: Record Crawler error. cause by [Cannot get offset for timestamp: 1733994****] About more information in ****

DTS-RETRY-ERR-0399:Cannot open backup device

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

解决方法

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

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

报错示例

DTS-100047: retry 0 times, 20124 seconds, which exceed the supposed 43200 seconds cause: CriticalAnyAllException: dts-k-src: DTS-52111: Increment Context Is Not Running..: CriticalAnyAllException: sqlserver-reader: DTS-52410: Sqlserver log fetch failed IOException: com.microsoft.sqlserver.jdbc.SQLServerException: Cannot open backup device **** Operating system error 2(The system cannot find the file specified.).

DTS-RETRY-ERR-0400:Cannot open database (.*)? requested by the login. The login failed

可能原因

解决方法

源库无法连接。

请确保DTS可以正常连接源库,然后重新启动DTS任务

源库的日志已被清理。

请联系源库的管理员(DBA)进行处理,然后重新启动DTS任务;或者重新配置DTS任务。

报错示例

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: sqlserver-reader: DTS-52410: Sqlserver log fetch failed IOException: com.microsoft.sqlserver.jdbc.SQLServerException: Cannot open database "****" requested by the login. The login failed. ClientConnectionId:778b469a-d689-4**** SQLServerException: Cannot open database "****" requested by the login. The login failed.