全部產品
Search
文件中心

Data Transmission Service:DTS-RETRY-ERR(0301~0400)

更新時間:Jun 13, 2025

本文為您介紹在配置DTS任務時,系統返回的報錯資訊(DTS-RETRY-ERR-0301至DTS-RETRY-ERR-0400)及其對應的解決方案。

說明

本文以Regex((.*)?)的形式表示報錯資訊中的變數。

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任務。

若異常無法解決,請聯絡阿里雲技術支援人員處理。

報錯樣本

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-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-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-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-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-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. 查看源庫中用於增量資料解析的日誌(如Binlog或Redolog等)時間範圍是否包含該時間點。若包含,請嘗試在後台重新讀取資料;若不包含,請重新設定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.