Topik ini menjelaskan pesan error (DTS-RETRY-ERR-0701 hingga DTS-RETRY-ERR-0800) yang mungkin muncul saat Anda mengonfigurasi task DTS dan menyediakan solusi yang sesuai.
Pada topik ini, ekspresi reguler (.*)? digunakan untuk menunjukkan variabel dalam pesan error.
DTS-RETRY-ERR-0701: There are not any columns in table (.*)?
Kemungkinan penyebab: DTS tidak dapat menulis data karena tabel MaxCompute tujuan tidak memiliki definisi kolom. Error ini biasanya terjadi jika informasi kolom tidak dikonfigurasi dengan benar setelah tabel dibuat.
Solusi: Periksa dan perbaiki skema tabel pada tabel MaxCompute tujuan. Pastikan kolom yang diperlukan telah didefinisikan. Setelah skema tabel diperbaiki, restart task DTS.
Contoh error:
DTS-100047: retry 120 times, 1200 seconds, which exceed the supposed 1200 seconds cause: RecoverableAnyAllException: transaction-replicate: DTS-70004: execute upload failed, may try it again CriticalAnyAllException: framework: DTS-30018: SchemaManager: There are not any columns in table xxxDTS-RETRY-ERR-0702: There is insufficient system memory in resource pool (.*)? to run this query.
Kemungkinan penyebab: Kolam sumber daya internal database SQL Server tujuan tidak memiliki memori yang cukup untuk mengeksekusi kueri yang dikirim oleh DTS. Hal ini menunjukkan bahwa server database kekurangan sumber daya sistem.
Solusi: Periksa penggunaan memori dan kondisi keseluruhan instans SQL Server tujuan. Anda mungkin perlu mengoptimalkan konfigurasi database, menonaktifkan layanan yang tidak penting, atau menambah kapasitas memori server. Setelah sumber daya database kembali normal, restart task DTS.
Contoh error:
com.microsoft.sqlserver.jdbc.SQLServerException: There is insufficient system memory in resource pool 'xxx' to run this query.DTS-RETRY-ERR-0703: This slot has been invalidated because it exceeded the maximum reserved size
Kemungkinan penyebab: Slot replikasi logis yang dibuat di database PostgreSQL sumber untuk sinkronisasi inkremental DTS melebihi batas ukuran maksimumnya. Akibatnya, database secara otomatis membatalkan dan membersihkan slot replikasi tersebut, sehingga log inkremental yang dibutuhkan oleh DTS telah hilang.
Solusi: Tingkatkan batas parameter database sumber untuk menyediakan lebih banyak ruang bagi retensi log. Setelah parameter tersebut dimodifikasi, buat ulang task DTS.
Contoh error:
DTS-52510: Fetch postgresql logical log failed FatalAnyAllException: common: DTS-100047: retry 60 times, 613155 seconds, which exceed the supposed 43200 seconds CriticalAnyAllException: postgresql-reader:
DTS-52512: postgres open replication steam failed PSQLException: ERROR: can no longer get changes from replication slot "dts_sync_z0sv5l76xxxx" Detail: This slot has been invalidated because it exceeded the maximum reserved size.DTS-RETRY-ERR-0704: Too many parts
Kemungkinan penyebab: Data baru tidak dapat ditulis karena tabel ClickHouse tujuan memiliki terlalu banyak partisi (parts).
Solusi: Periksa kondisi instans ClickHouse tujuan. Anda dapat mengoptimalkan kebijakan merge tabel atau menyesuaikan desain kunci partisi. Setelah jumlah partisi kembali normal, restart task DTS.
Contoh error:
DTS-70003: 9 execute transaction has excess max transaction retry time [64] cause:transaction-replicate:
DTS-70004: EXEC statement failed, may try it again cause: RecoverableAnyAllException: transaction-replicate: DTS-70004: EXEC statement failed, may try it again SQLException: ClickHouseEngine(9): meet error, insertSQL:insert into `xxx`.`xxx` () values (),
error detail message:Code: 252. DB::Exception: Too many parts (100079) in all partitions in total in table 'xxx'.
This indicates wrong choice of partition key. The threshold can be modified with 'max_parts_in_total' setting in element in config.xml or with per-table se...DTS-RETRY-ERR-0705: TopicMessageType validate failed
Kemungkinan penyebab: Jenis pesan topik RocketMQ tujuan tidak sesuai dengan jenis yang dibutuhkan oleh DTS. DTS memerlukan pesan terurut (FIFO), tetapi topik dikonfigurasi untuk pesan normal (NORMAL).
Solusi: Periksa dan ubah jenis pesan topik RocketMQ tujuan agar memenuhi persyaratan sinkronisasi task DTS. Pesan terurut biasanya diperlukan untuk memastikan konsistensi data. Kemudian, restart task DTS.
Contoh error:
DTS-70026: execute ddl failed cause: FatalAnyAllException: common: DTS-100047: retry 15 times, 15 seconds, which exceed the supposed xxx seconds MQBrokerException: CODE: 13 DESC: TopicMessageType validate failed, the expected type is NORMAL, but actual type is FIFO BROKER: 10.xxx.xxx.xxx:xxx For more information, please visit the url, https://rocketmq.apache.org/docs/bestPractice/06FAQDTS-RETRY-ERR-0706: Transaction (Process ID (.*)?) was deadlocked on lock | communication buffer resources with another process and has been chosen as the deadlock victim. Rerun the transaction.
Kemungkinan penyebab: Terjadi deadlock dengan transaksi lain saat DTS menulis data ke SQL Server tujuan.
Solusi: Deadlock sering kali merupakan masalah sporadis yang terjadi selama konkurensi database tinggi. Periksa database tujuan untuk aplikasi atau kueri lain yang memegang lock dalam waktu lama dan lakukan optimasi. Kemudian, restart task DTS.
Kemungkinan penyebab:
DTS-70003: 12 execute transaction has excess max transaction retry time [64] cause:transaction-replicate:
DTS-70004: EXEC statement failed, may try it again cause: RecoverableAnyAllException: transaction-replicate: DTS-70004: EXEC statement failed, may try it again SQLServerException: Transaction (Process ID xxx) was deadlocked on lock | communication buffer resources with another process and has been chosen as the deadlock victim. Rerun the transaction.DTS-RETRY-ERR-0707: trigger '(.*)?' is invalid and failed re-validation
Kemungkinan penyebab: Saat DTS menulis data ke tabel Oracle tujuan, pemicu yang diaktifkan tidak valid atau gagal divalidasi ulang.
Solusi: Nonaktifkan atau hapus pemicu yang terkait dengan tabel yang disinkronkan di database Oracle tujuan. Setelah tindakan ini selesai, restart task DTS.
Contoh error:
DTS-100047: retry 4315 times, 43202 seconds, which exceed the supposed 43200 seconds cause: CriticalAnyAllException: framework: DTS-30011: currentRunningSQL: /* DTS-full-e6at6t7926axxx */insert into "xxx"."xxx"() VALUES (),currentRow:xxx,
reason: ORA-04098: trigger 'xxx.xxx' is invalid and failed re-validation BatchUpdateException: ORA-04098: trigger 'xxx.xxx' is invalid and failed re-validationDTS-RETRY-ERR-0708: unable to allocate (.*)? bytes of shared memory
Kemungkinan penyebab: Kolam bersama (shared pool) database Oracle tujuan tidak memiliki memori yang cukup. Database tidak dapat mengalokasikan memori yang dibutuhkan untuk operasi SQL yang dieksekusi oleh DTS.
Solusi: Ini adalah masalah sumber daya di sisi server database. Tingkatkan ukuran shared pool (SHARED_POOL_SIZE) database Oracle atau bersihkan shared pool. Setelah tindakan ini selesai, restart task DTS.
Contoh error:
DTS-70002: Failed to get foreign key of CREDITLOANDB.CODE_LIBRARY cause: SQLException: ORA-04031: unable to allocate xxx bytes of shared memory ("shared pool","xxx") DTS-RETRY-ERR-0709: unable to extend index (.*)? by (.*)? in tablespace (.*)?
Kemungkinan penyebab: Ruang tabel (tablespace) database Oracle tujuan penuh, sehingga indeks tidak dapat diperluas saat data ditulis.
Solusi: Tambahkan file data ke ruang tabel yang disebutkan dalam pesan error atau tingkatkan ukuran file data yang sudah ada. Kemudian, restart task DTS.
Contoh error:
DTS-077100: Record Replicator error in table INTIME.STR_COM_DAY. cause by [java.sql.SQLException: ORA-01654: unable to extend index xxx by xxx in tablespace xxx ] About more information in [https://yq.aliyun.com/articles/508049].DTS-RETRY-ERR-0710: unable to extend table (.*)? by (.*)? in tablespace (.*)?
Kemungkinan penyebab: Ruang tabel (tablespace) database Oracle tujuan penuh, sehingga tabel tidak dapat diperluas saat data ditulis.
Solusi: Tambahkan file data ke ruang tabel yang disebutkan dalam pesan error atau tingkatkan ukuran file data yang sudah ada. Kemudian, restart task DTS.
Contoh error:
DTS-30011: currentRunningSQL: /* DTS-full-i1js7421a9ixxx */insert into "xxx"."xxx"() VALUES (),currentRow:xxx, reason: ORA-01653: unable to extend table xxx by xxx in tablespace xxx cause: BatchUpdateException: ORA-01653: unable to extend table xxx by xxx in tablespace xxxDTS-RETRY-ERR-0711: Unexpected end of file from server
Kemungkinan penyebab: Koneksi antara DTS dan server ClickHouse tujuan terputus secara tak terduga, sehingga transfer data menjadi tidak lengkap. Error ini biasanya disebabkan oleh masalah jaringan atau node ClickHouse yang tidak normal.
Solusi: Periksa kondisi dan log error server ClickHouse. Atasi masalah konektivitas jaringan antara DTS dan ClickHouse. Merestart task DTS akan mencoba melakukan koneksi ulang.
Contoh error:
java.sql.SQLException: Unexpected end of file from server, server ClickHouseNode [uri=http://10.xxx.xxx.xxx:xxx/tpcc]@603276966DTS-RETRY-ERR-0712: unknown table
Kemungkinan penyebab: DTS mencoba menulis data ke database SelectDB (Doris) tujuan, tetapi tabel yang ditentukan tidak ada di database tujuan.
Solusi: Periksa apakah objek sinkronisasi dikonfigurasi dengan benar untuk task DTS. Pastikan tabel yang sesuai telah dibuat di database tujuan.
Contoh error:
DTS-100047: retry 3755 times, 43208 seconds, which exceed the supposed 43200 seconds cause: TransactionReplicateException: transaction-replicate: DTS-70003: 16 execute transaction has excess max transaction retry time [64] cause:Failed to stream load data to table: xxx status is fail.
Load result: {"Status":"Fail","Comment":"","BeginTxnTimeMs":0,"Message":"[NOT_FOUND]TStatus: errCode = 7, detailMessage = unknown table, tableName=xxx","NumberUnselectedRows":0,"CommitAndPublishTimeMs":0,"Label":"DTS-SelectDB-Sink2dfxxxx-72f8-4cbf-a475-36f7ddaxxxx","LoadBytes":0,"StreamLoadPutTimeMs":0,"NumberTotalRows":0,"WriteDataTimeMs":0,"TxnId":-1,"LoadTimeMs":0,"TwoPhaseCommit":"false","ReadDataTimeMs":0,"NumberLoadedRows":0,"NumberFilteredRows":0} IOException: Failed to stream load data to table: xxxx status is fail. DTS-RETRY-ERR-0713: unsupport operationType: TIDB_WATERMARK
Kemungkinan penyebab: DTS tidak mendukung pemrosesan event WATERMARK yang dihasilkan oleh TiCDC. Error ini biasanya terjadi karena atribut enable-tidb-extension diaktifkan untuk TiCDC.
Solusi: Ubah file konfigurasi TiCDC untuk mengatur parameter enable-tidb-extension menjadi false. Kemudian, restart TiCDC dan task DTS.
Contoh error:
DTS-31009: In process of processing data (recordRange: 602980062876xxx) failed cause: FatalAnyAllException: common: DTS-100047: retry 0 times, 0 seconds, which exceed the supposed 43200 seconds RuntimeException: java.lang.RuntimeException: unsupport operationType: TIDB_WATERMARK RuntimeException: unsupport operationType: TIDB_WATERMARKDTS-RETRY-ERR-0715: waitResult/ReDispatch
Kemungkinan penyebab: Terjadi timeout saat menunggu hasil penulisan ketika DTS menulis data ke instans AnalyticDB for MySQL 3.0 tujuan. Hal ini menunjukkan bahwa instans AnalyticDB for MySQL 3.0 tujuan mungkin sedang mengalami beban tinggi atau memproses data secara lambat.
Solusi: Periksa status berjalan, beban, dan kueri lambat pada instans AnalyticDB for MySQL 3.0 tujuan. Setelah instans kembali normal, restart task DTS.
Contoh error:
DTS-100047: retry 0 times, 72788 seconds, which exceed the supposed 43200 seconds cause: TransactionReplicateException: transaction-replicate: DTS-70003: 9 execute transaction has excess max transaction retry time [64] cause:transaction-replicate:
DTS-70004: EXEC statement failed, may try it again RecoverableAnyAllException: transaction-replicate: DTS-70004: EXEC statement failed, may try it again SQLException: ADB30Engine(9): meet error, insertSQL:/*dts_id=dtszqva11ali3xxxx*/replace into `xxx`.`xxx` () values (),
error detail message:[40001, 202507151205071921xxxx190034533xxxx] waitResult/ReDispatch : deadline=17525526xxxx,syncTimeoutMills=300000 SQLException: [40001, 202507151205071921xxxx190034533xxxx] waitResult/ReDispatch : deadline=17525526xxxx,syncTimeoutMills=300000DTS-RETRY-ERR-0716: xlog flush request
Kemungkinan penyebab: Saat DTS membaca log transaksi (XLOG) dari database PostgreSQL sumber, database melaporkan error I/O internal. Hal ini menunjukkan bahwa permintaan flush log tidak terpenuhi.
Solusi: Segera periksa kondisi, performa I/O disk, dan log error database PostgreSQL sumber. Setelah masalah terselesaikan, restart task DTS.
Contoh error:
DTS-31009: In process of processing data (recordRange: 293226462284xxx) failed cause: FatalAnyAllException: common: DTS-100047: retry 0 times, 0 seconds, which exceed the supposed 43200 seconds CriticalAnyAllException: framework:
DTS-31009: read source data error PSQLException: ERROR: xlog flush request xxx is not satisfied --- flushed only to xxx Where: writing block 134 of relation pg_tblspc/16386/PG_11_201809051/16385/21573