Todos os produtos
Search
Central de documentação

Data Transmission Service:DTS-RETRY-ERR (0601–0700)

Última atualização: Sep 23, 2026

Este tópico descreve as mensagens de erro do DTS de DTS-RETRY-ERR-0601 a DTS-RETRY-ERR-0700 e suas respectivas soluções.

Nota

Este tópico usa expressões regulares ((.*)?) para representar variáveis nas mensagens de erro.

DTS-RETRY-ERR-0601: could not write to file

Causa possível: O servidor do banco de dados PostgreSQL de origem está com espaço em disco insuficiente. Quando o DTS executa a replicação lógica, o banco de dados de origem tenta criar um arquivo de snapshot. Essa operação falha porque o dispositivo não tem mais espaço livre.

Solução: Libere espaço em disco no servidor PostgreSQL de origem para garantir armazenamento suficiente para a operação de replicação lógica. Após liberar espaço, reinicie a tarefa do DTS.

Exemplo de erro:

DTS-52111: Increment Context Is Not Running..: cause: CriticalAnyAllException: postgresql-reader: DTS-52510: Fetch postgresql logical log failed FatalAnyAllException: common: DTS-100047: retry 0 times, 5029990526 seconds, which exceed the supposed 43200 seconds IOException: org.postgresql.util.PSQLException: ERROR: could not write to file "pg_logical/snapshots/401-xxx.snap.xxx.tmp": No space left on device PSQLException: ERROR: could not write to file "pg_logical/snapshots/401-xxx.snap.xxx.tmp": No space left on device

DTS-RETRY-ERR-0602: CROSSSLOT Keys

Causa possível: O DTS está tentando executar um comando que envolve múltiplas chaves no cluster Redis de destino, mas essas chaves são distribuídas em slots diferentes. Esse erro geralmente ocorre quando os bancos de dados de origem e de destino possuem topologias inconsistentes. Por exemplo, a origem é uma instância Standard Edition e o destino é uma instância Cluster Edition.

Solução: Certifique-se de que os bancos de dados de origem e de destino tenham a mesma topologia.

Exemplo de erro:

redis.clients.jedis.exceptions.JedisDataException: CROSSSLOT Keys in request don't hash to the same slot

DTS-RETRY-ERR-0603: Database (.*)? cannot be opened due to inaccessible files or insufficient memory or disk space. See the SQL Server errorlog for details.

Causa possível: O banco de dados SQL Server de destino não pode ser aberto devido a problemas subjacentes de recursos. A causa específica pode ser arquivos de dados inacessíveis, memória insuficiente no servidor ou disco cheio.

Solução: Faça logon no servidor do banco de dados de destino e verifique o log de erros do SQL Server para identificar a causa detalhada da falha. Após resolver os problemas de permissão de arquivo, memória ou espaço em disco com base no log, reinicie a tarefa do DTS.

Exemplo de erro:

DTS-100047: retry 112 times, 1208 seconds, which exceed the supposed 1200 seconds cause: SQLServerException: Database 'xxx' cannot be opened due to inaccessible files or insufficient memory or disk space. See the SQL Server errorlog for details.

DTS-RETRY-ERR-0604: Database (.*)? is in transition. Try the statement later.

Causa possível: O banco de dados SQL Server de destino está em um estado de transição, como inicialização, recuperação ou failover. Temporariamente, ele não pode aceitar novas conexões ou operações.

Solução: Aguarde até que o banco de dados de destino conclua a operação atual e retorne ao estado de execução. Após confirmar que o banco de dados está disponível, reinicie a tarefa do DTS.

Exemplo de erro:

com.microsoft.sqlserver.jdbc.SQLServerException: Database 'xxx' is in transition. Try the statement later.

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

Causa possível: A conexão de replicação lógica com o banco de dados PostgreSQL de origem foi interrompida porque o valor de wal_sender_timeout foi excedido. Se o DTS não interagir com o banco de dados de origem por um longo período, por exemplo, ao filtrar muitas transações que não exigem sincronização, o banco de dados de origem pode fechar ativamente a conexão por não receber um heartbeat.

Solução: Conecte-se ao banco de dados de origem e defina o parâmetro wal_sender_timeout como 0 para desativar o mecanismo de timeout.

  1. Execute o seguinte comando SQL: ALTER SYSTEM SET wal_sender_timeout = '0';

  2. Recarregue a configuração: SELECT pg_reload_conf();

  3. Após modificar a configuração, reinicie a tarefa do DTS.

Exemplo de erro:

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

DTS-RETRY-ERR-0606: date format not recognized

Causa possível: O banco de dados Oracle de origem (source) contém dados em um formato de data que o DTS não consegue reconhecer ou analisar. Isso causa falha na extração completa de dados.

Solução: Com base no ROWID ou no conteúdo dos dados na mensagem de erro, localize a linha de dados anômala no banco de dados de origem e corrija-a para um formato de data padrão. Após corrigir os dados, reinicie a tarefa do DTS.

Exemplo de erro:

 DTS-30020: execute sql:/* DTS-full-dl0y6l2a214xxxx */SELECT xxx FROM "xxx"."xxx" --> (null, null) record range id = 48754756125982xxxx, fetchSize = 1024 cause: SQLDataException: ORA-01821: date format not recognized

DTS-RETRY-ERR-0607: Disperse target record field (.*)? failed

Causa possível: Durante o processamento de dados, o DTS não consegue converter o valor de um campo do banco de dados de origem para o tipo do campo correspondente no banco de dados de destino. Esse erro geralmente ocorre porque os tipos de campo nos bancos de dados de origem e de destino são incompatíveis, e o DTS não oferece suporte a esse tipo de conversão.

Solução: Verifique os tipos de dados do campo nos bancos de dados de origem e de destino. Por favor, modifique o schema da tabela de destino para torná-lo compatível ou exclua o campo da sincronização na tarefa do DTS. Após fazer os ajustes, reinicie a tarefa do DTS.

Exemplo de erro:

DTS-71001: Disperse target record field collectInfo BYTES nullable as collectInfo failed for record databaseName: xxx tableName:xxx {offset [35699] operationType [UPDATE],checkpoint [0@35699@160288815@12568@175275215xxx]} cause: ConcurrentModificationException: null

DTS-RETRY-ERR-0608: disperser is null

Causa possível: Ao converter tipos de dados, o DTS não encontra um conversor (disperser) para processar um campo específico. Esse erro geralmente é causado por tipos de campo incompatíveis entre as tabelas de origem e de destino.

Solução: Verifique e compare os schemas das tabelas dos campos incompatíveis nos bancos de dados de origem e de destino. Por favor, modifique o tipo do campo na tabela de destino para torná-lo compatível com a origem ou exclua o campo da sincronização na tarefa do DTS. Após fazer os ajustes, reinicie a tarefa do DTS.

Exemplo de erro:

DTS-61001: disperser is null, can not find disperser for field billing_date

DTS-RETRY-ERR-0609: document size is larger than maximum

Causa possível: Os dados a serem sincronizados contêm um único documento que excede o limite de tamanho máximo de 16 MB permitido pelo MongoDB. Isso impede a gravação do documento no banco de dados de destino.

Solução: Trate o documento com tamanho excessivo no banco de dados de origem de acordo com as necessidades do seu negócio. Por exemplo, divida-o ou exclua-o.

Exemplo de erro:

DTS-100047: retry 0 times, 0 seconds, which exceed the supposed 922337203685477xxxx seconds cause: SQLException: DTS full single insert oversize, throw exception and retry, caused by:Payload document size is larger than maximum of xxxx.

DTS-RETRY-ERR-0610: does not contain shard key

Causa possível: A coleção MongoDB de destino é uma coleção com shard, mas um registro a ser sincronizado não possui o campo de chave de shard obrigatório. Isso impede a gravação dos dados.

Solução: Verifique os dados de origem para garantir que todos os registros a serem sincronizados incluam o campo de chave de shard exigido pela tabela de destino.

Exemplo de erro:

DTS-100047: retry 0 times, 0 seconds, which exceed the supposed 922337203685477xxxx seconds cause: SQLException: com.mongodb.MongoWriteException: Write operation error on server 10.xxx.xxx.xxx:xxx. Write error: WriteError{code=61, message='document { xxx } does not contain shard key for pattern { brandId: 1.0, createTime: 1.0 }', details={}}. MongoWriteException: Write operation error on server 10.xxx.xxx.xxx:xxx. Write error: WriteError{code=61, message='document { xxx } does not contain shard key for pattern { brandId: 1.0, createTime: 1.0 }', details={}}.

DTS-RETRY-ERR-0611: Don't allow to dump binary log on standby instance

Causa possível: O DTS está configurado para se conectar a uma instância standby ou slave do banco de dados MySQL de origem. A configuração dessa instância standby proíbe conexões externas, como o DTS, de extrair seus binary logs.

Solução: Por favor, modifique as informações de conexão do banco de dados de origem na tarefa do DTS para apontar para a instância primária ou master do banco de dados de origem.

Exemplo de erro:

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..: mysql-reader: DTS-52200: process error failed cause: IOException: java.sql.SQLException: Don't allow to dump binary log on standby instance SQLException: Don't allow to dump binary log on standby instance CriticalAnyAllException: mysql-reader: DTS-52200: process error failed IOException: java.sql.SQLException: Don't allow to dump binary log on standby instance SQLException: Don't allow to dump binary log on standby instance

DTS-RETRY-ERR-0612: DTS-50019

Descrição do erro: O módulo writer do DTS não consegue ler dados do módulo de cache do DTS no momento especificado.

Causas e soluções possíveis:

  • Causa possível 1: A tarefa ficou pausada por muito tempo. Após reiniciar a tarefa, os dados no offset correspondente (por exemplo, 2021-05-20 21:17:51) não existem mais no módulo de cache do DTS.

    Nota

    A mensagem de erro exibe um timestamp UNIX. Use um mecanismo de busca para encontrar um conversor de timestamp UNIX e converta-o para UTC.

    Solução 1:

    • Método 1: Verifique os logs usados para análise de dados incrementais no banco de dados de origem, como binary logs ou redo logs, para determinar se o intervalo de tempo deles inclui esse momento.

    • Método 2: crie a tarefa novamente. Não pause a tarefa por um longo período. Uma tarefa que ficar pausada por mais de seis horas não poderá ser iniciada com sucesso.

  • Causa possível 2: A tarefa falhou e não foi corrigida por muito tempo. Após corrigir o problema, os dados no offset correspondente não existem mais no módulo de cache do DTS.

    Solução 2: crie a tarefa novamente. Se uma tarefa falhar, corrija o problema e retome a tarefa o mais rápido possível para evitar que ela se torne irrecuperável.

  • Causa possível 3: Durante a migração completa ou sincronização completa, o DTS armazena localmente as últimas 24 horas ou 50 GB de logs de dados do banco de dados de origem para análise de dados incrementais. Se a migração ou sincronização completa demorar muito, o DTS pode ter purgado os logs de dados em cache, resultando em logs incompletos para a análise incremental.

    Solução 3: crie a tarefa novamente. Antes de criar a tarefa, estime o volume de dados. Se o volume de dados for grande, divida-o em várias tarefas de migração ou sincronização.

Exemplo de erro:

DTS-31009: In process of processing data (recordRange: 15907394498750xxx) failed cause: FatalAnyAllException: common: 
DTS-100047: retry 0 times, 3 seconds, which exceed the supposed 43200 seconds CriticalAnyAllException: capture-as400: 
DTS-50019: Lost journal {timestampMs: 1752047995xxx} log {journalName: NBJRN, journalLibraryName: COASSYSTF1}

DTS-RETRY-ERR-0613: DTS-52061

Descrição do erro: O módulo writer do DTS não consegue ler dados do módulo de cache do DTS no momento especificado.

Causas e soluções possíveis:

  • Causa possível 1: A tarefa ficou pausada por muito tempo. Após reiniciar a tarefa, os dados no offset correspondente (por exemplo, 2021-05-20 21:17:51) não existem mais no módulo de cache do DTS.

    Nota

    A mensagem de erro exibe um timestamp UNIX. Use um mecanismo de busca para encontrar um conversor de timestamp UNIX e converta-o para UTC.

    Solução 1:

    • Método 1: Verifique os logs usados para análise de dados incrementais no banco de dados de origem, como binary logs ou redo logs, para determinar se o intervalo de tempo deles inclui esse momento.

    • Método 2: crie a tarefa novamente. Não pause a tarefa por um longo período. Uma tarefa que ficar pausada por mais de seis horas não poderá ser iniciada com sucesso.

  • Causa possível 2: A tarefa falhou e não foi corrigida por muito tempo. Após corrigir o problema, os dados no offset correspondente não existem mais no módulo de cache do DTS.

    Solução 2: crie a tarefa novamente. Se uma tarefa falhar, corrija o problema e retome a tarefa o mais rápido possível para evitar que ela se torne irrecuperável.

  • Causa possível 3: Durante a migração completa ou sincronização completa, o DTS armazena localmente as últimas 24 horas ou 50 GB de logs de dados do banco de dados de origem para análise de dados incrementais. Se a migração ou sincronização completa demorar muito, o DTS pode ter purgado os logs de dados em cache, resultando em logs incompletos para a análise incremental.

    Solução 3: crie a tarefa novamente. Antes de criar a tarefa, estime o volume de dados. Se o volume de dados for grande, divida-o em várias tarefas de migração ou sincronização.

Exemplo de erro:

DTS-31009: In process of processing data (recordRange: 15907394498750xxxx) failed cause: FatalAnyAllException: common: 
DTS-100047: retry 0 times, 161765 seconds, which exceed the supposed 43200 seconds RuntimeException: AS400DB2Source:journalFetcher-1: failed cause retrieve capture-as400: 
DTS-52061: {ReceiverName: NBRCV9xxxx, ReceiverLibrary: COASSYSTF1}'s journal receiver is deleted, That journal log isn't continuous

DTS-RETRY-ERR-0615: DTS-52722

Causa possível: A conta do banco de dados configurada para a tarefa do DTS não tem permissão para ler as tabelas necessárias.

Solução: Conceda permissões de leitura nos objetos de sincronização à conta usada pelo DTS. Após conceder as permissões, reinicie a tarefa do DTS.

Exemplo de erro:

DTS-31009: In process of processing data (recordRange: 456002531641996xxxx) failed cause: FatalAnyAllException: common: 
DTS-100047: retry 0 times, 81170 seconds, which exceed the supposed 43200 seconds RuntimeException: AS400DB2Source:JournalEntryParser: parser entry failed, cause capture-as400: DTS-52722: Read table xxx.xxx info error, case by [SQL0551] Not authorized to object xxx in xxx type *FILE. Cause . . . . . : An operation was attempted on object xxx in xxx type *FILE. This operation cannot be performed without the required authority. Recovery . . . : Obtain the required authority from either the security officer, the object owner, or a user that is authorized to the QIBM_DB_SECADM function. If you are not authorized to a logical file, obtain the authority to the based-on files of the logical file. Try the operation again.

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

Causa possível: As versões do Redis de origem e de destino são incompatíveis. Isso impede o DTS de migrar dados binários diretamente usando o comando RESTORE.

Solução: Não é possível resolver esse problema reiniciando a tarefa. Adote uma das seguintes medidas:

  • Ajuste a versão da instância Redis de destino para que seja compatível ou igual à versão de origem.

  • Reconfigure a tarefa do DTS e selecione o modo de sincronização completa e incremental.

Exemplo de erro:

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

DTS-RETRY-ERR-0617: ERR invalid DB index

Causa possível: O DTS tentou selecionar um DB inválido no Redis de destino.

Solução: Na configuração da tarefa do DTS, use o recurso de mapeamento de schema para mapear o DB de origem para um DB permitido no Redis de destino.

Exemplo de erro:

DTS-100047: retry 60 times, 601 seconds, which exceed the supposed 43200 seconds cause: RedisCannotRetryException: redis: DTS-10009: Exception in stage: [begin], errMsg: ERR invalid DB index JedisDataException: ERR invalid DB index

DTS-RETRY-ERR-0618: ERR-CODE: [TDDL-10000][ERR_X_PROTOCOL_BAD_PACKET]

Causa possível: O tamanho do pacote de dados enviado pelo DTS excede o limite de packet do banco de dados de destino.

Solução: Faça logon no banco de dados de destino e aumente o valor do parâmetro packet.

Exemplo de erro:

java.sql.BatchUpdateException: [19d7e170d4402000][26.xxx.xxx.xxx:xxx][pro_scrm]ERR-CODE: [TDDL-10000][ERR_X_PROTOCOL_BAD_PACKET] X-NIO-Client /26.xxx.xxx.xxx:xxx to /10.xxx.xxx.xxx:xxx sent packet length (81341097) exceeds the allowed maximum (67108864).

DTS-RETRY-ERR-0619: ERR-CODE: [TDDL-5311][ERR_GLOBAL_SECONDARY_INDEX_MODIFY_GSI_TABLE_DIRECTLY]

Causa possível: O DTS tentou modificar diretamente uma tabela de índice secundário global (GSI), mas o banco de dados de destino não permite essa operação.

Solução: Não é possível resolver esse problema reiniciando a tarefa. Um índice secundário global deve ser atualizado por meio de sua tabela primária. Verifique a configuração do objeto de sincronização para garantir que a sincronização inclua a tabela primária, e não a tabela GSI.

Exemplo de erro:

java.sql.BatchUpdateException: [1a0e2bffcfb3xxxx][172.xxx.xxx.xxx:xxx][sto_sitems]ERR-CODE: [TDDL-5311][ERR_GLOBAL_SECONDARY_INDEX_MODIFY_GSI_TABLE_DIRECTLY] Does not support modify global secondary index table 'xxxx'

DTS-RETRY-ERR-0622: Error on Send.This server does not host this topic-partition

Causa possível: Os metadados da partição de dados no DTS estão desatualizados. Esse erro geralmente é causado pela reinicialização ou migração de um componente interno, como o DStore.

Solução: Esse é um erro interno do DTS. Tente reiniciar a tarefa do DTS. Isso forçará a atualização dos metadados.

Exemplo de erro:

DTS-100047: retry 0 times, 0 seconds, which exceed the supposed 43200 seconds cause: RuntimeException: Error on Send.This server does not host this topic-partition. UnknownTopicOrPartitionException: This server does not host this topic-partition.

DTS-RETRY-ERR-0623: estimated need client-output-buffer

Causa possível: O buffer de saída do cliente alocado pelo Redis de origem para o DTS é insuficiente. Isso faz com que a conexão seja fechada ativamente para proteger o banco de dados de origem.

Solução: Com base no valor recomendado para estimated need client-output-buffer na mensagem de erro, aumente o valor dessa configuração no Redis de origem. Para instâncias do ApsaraDB for Redis, o buffer de saída do slave não pode ser modificado pela execução do comando CONFIG nem pela alteração de parâmetros. Recomendamos realizar a migração durante horários de menor pico de gravação ou atualizar as especificações da instância Redis de origem.

Exemplo de erro:

DTS-10015: Slave connection closed by source redis, Reach 90.00% hard-client-output-buffer-limit, current size: 1453056xxx, hard limit: 1610612xxx.RDB parse progress: 28.97%, already cost time: 209, estimated finish cost time: 721, remaining time: 512, current client-output-buffer: 1453056xxx, estimated need client-output-buffer: 478x.xxMB.

DTS-RETRY-ERR-0624: Expiring (.)? record(s) (.)?

Causa possível: Uma mensagem enviada pelo DTS para o cluster Kafka de destino não recebeu confirmação por um longo período, causando timeout da mensagem. Esse erro pode ser causado por um broker Kafka anômalo ou pela ausência da lista de permissões de endereços IP do DTS em todos os brokers.

Solução:

  • Verifique o status de integridade de todos os brokers no cluster Kafka de destino.

  • Por favor, confirme se a lista de permissões de endereços IP do DTS foi adicionada a todos os nós de broker no cluster Kafka.

  • Verifique se há alta latência ou perda de pacotes na conexão de rede entre o DTS e o cluster Kafka.

Exemplo de erro:

DTS-100047: retry 107 times, 43338 seconds, which exceed the supposed 43200 seconds cause: ExecutionException: com.xxx.kafka_thin_client1d0d0.common.errors.TimeoutException: Expiring xxx record(s) for dls_hr_ram_t_xxx_tp-22: 391390 ms has passed since last append TimeoutException: Expiring xxx record(s) for dls_hr_ram_t_xxx_tp-22: 391390 ms has passed since last append

DTS-RETRY-ERR-0625: Failed to calculate delete bitmap

Causa possível: Quando o DTS grava dados no SelectDB de destino usando StreamLoad, ocorre um timeout ou erro dentro do SelectDB durante o cálculo do delete bitmap. Isso indica que a instância SelectDB de destino pode ter problemas de integridade ou contenção de bloqueios internos.

Solução: Verifique o status de execução, os logs e a carga da instância SelectDB de destino. Após confirmar que o banco de dados voltou ao normal, reinicie a tarefa do DTS.

Exemplo de erro:

java.io.IOException: Failed to stream load data to SelectDB.Key status is fail. Load result: {"Status":"Fail","Comment":"","BeginTxnTimeMs":28,"Message":"[DELETE_BITMAP_LOCK_ERROR]TStatus: errCode = 301, detailMessage = Failed to calculate delete bitmap. Timeout. Unfinished mark: 392787086xxx=23524707046653xxx","NumberUnselectedRows":0,"CommitAndPublishTimeMs":0,"Label":"DTS-SelectDB-Sink2ea489f7-1684-xxxx-xxxx-9c6adc2e36d0","LoadBytes":2285539,"StreamLoadPutTimeMs":17,"NumberTotalRows":10240,"WriteDataTimeMs":70024,"ReceiveDataTimeMs":118,"TxnId":2352470704665xxxx,"LoadTimeMs":220693,"TwoPhaseCommit":"false","ReadDataTimeMs":1,"NumberLoadedRows":10240,"NumberFilteredRows":0}

DTS-RETRY-ERR-0626: Failed to create upload session with tunnel endpoint

Causa possível: O DTS não consegue criar um canal de upload de dados para a tabela MaxCompute de destino. Esse erro geralmente é causado por problemas de rede ou pela indisponibilidade do serviço de destino.

Solução: Verifique a conexão de rede entre o DTS e o serviço (service) MaxCompute. Após confirmar que a rede está estável e o service MaxCompute está normal, reinicie a tarefa do DTS.

Exemplo de erro:

DTS-70004: execute upload failed, may try it again cause: TransactionReplicateException: transaction-replicate: DTS-70003: 5 execute transaction has excess max transaction retry time [100] cause:odps: DTS-11014: Failed to get the upload session for Prd_IOT_DataWorks.ods_t_ord_affiliated_deduction_log caused by ErrorCode=Local Error, ErrorMessage=Failed to create upload session with tunnel endpoint xxx ErrorCode=Local Error, ErrorMessage=Failed to create upload session with tunnel endpoint xxx CriticalAnyAllException: odps: DTS-11014: Failed to get the upload session for Prd_IOT_DataWorks.ods_t_ord_affiliated_deduction_log caused by ErrorCode=Local Error, ErrorMessage=Failed to create upload session with tunnel endpoint xxx ErrorCode=Local Error, ErrorMessage=Failed to create upload session with tunnel endpoint xxx...

DTS-RETRY-ERR-0627: failed to parse field

Causa possível: Os dados de um campo no banco de dados de origem não correspondem ao tipo de mapeamento definido no Elasticsearch (ES) de destino. Isso causa falha na análise dos dados pelo ES e a rejeição da operação de gravação. Por exemplo, esse erro ocorre se uma string for gravada em um campo definido como tipo long.

Solução: Verifique os dados de origem e o mapeamento do ES de destino para garantir a compatibilidade dos tipos de dados. Escolha uma das opções:

  • Corrija os dados de origem.

  • Por favor, modifique o mapeamento do índice do ES de destino e reimporte os dados.

Exemplo de erro:

DTS-100047: retry 15 times, 43 seconds, which exceed the supposed 922337203685477xxxx seconds cause: IOException: es: DTS-10035: [1:412] failed to parse field [xxx.xxx] of type [long] in document with id 'xxx'. Preview of field's value: 'xxx', For input string: "xxx" CriticalAnyAllException: es: DTS-10035: [1:412] failed to parse field [xxx.xxx] of type [long] in document with id 'xxx'. Preview of field's value: 'xxx', For input string: "xxx"

DTS-RETRY-ERR-0628: fetch target schema from target table (.*)? failed

Causa possível: O DTS não consegue obter as informações de schema da tabela do banco de dados de destino. Isso pode ocorrer porque a tabela de destino não existe ou a conta do banco de dados usada pelo DTS não tem permissões suficientes para que você visualize o schema da tabela.

Solução:

  1. Por favor, confirme se a tabela existe no banco de dados de destino.

  2. Verifique e garanta que a conta de sincronização do DTS tenha permissões DESCRIBE ou equivalentes para a tabela.

  3. Após confirmar, reinicie a tarefa do DTS.

Exemplo de erro:

DTS-100047: retry 0 times, 0 seconds, which exceed the supposed 43200 seconds cause: AnyCoreException: framework: DTS-31008: fetch target schema from target table xxx.xxx failed

DTS-RETRY-ERR-0629: file (.)? cannot be read at this time ORA-01110: data file (.)?

Causa possível: Ao ler do banco de dados Oracle de origem, o DTS não consegue ler um arquivo de dados (.dbf). Isso geralmente ocorre porque a conta do DTS não tem permissões de acesso ao tablespace onde o arquivo está localizado, ou o banco de dados está em recuperação e o arquivo está offline.

Solução: Verifique o status do banco de dados Oracle de origem para garantir que ele esteja aberto e funcionando normalmente. Além disso, confirme se a conta usada pelo DTS tem permissão para acessar os tablespaces necessários. Após confirmar, reinicie a tarefa do DTS.

Exemplo de erro:

DTS-30020: execute sql:/* DTS-full-xa7m7590u2xxxx */SELECT xxx FROM xxx.xxx --> (null, null) record range id = 25182463197225xxxx, fetchSize = 1024 cause: SQLException: ORA-00376: file xxx cannot be read at this time ORA-01110: data file 13: 'xxx'

DTS-RETRY-ERR-0630: get table read lock timeout

Causa possível: Quando o DTS grava dados no SelectDB de destino usando StreamLoad, a operação falha porque não consegue obter um bloqueio de leitura na tabela dentro do período de timeout. Isso geralmente indica que há operações DDL de longa duração ou outras tarefas de bloqueio na tabela de destino.

Solução: Verifique a instância SelectDB de destino em busca de operações de longa duração, como ALTER TABLE. Após a conclusão das tarefas de bloqueio, reinicie a tarefa do DTS.

Exemplo de erro:

java.io.IOException: Failed to stream load data to SelectDB.Key status is fail. Load result: {"Status":"Fail","Comment":"","BeginTxnTimeMs":11,"Message":"[ANALYSIS_ERROR]TStatus: errCode = 2, detailMessage = get table read lock timeout, database=xxx,table=xxx","NumberUnselectedRows":0,"CommitAndPublishTimeMs":0,"Label":"DTS-SelectDB-Sink1b0aec5d-xxxx-xxxx-b9f1-9a1e62dde118","LoadBytes":0,"StreamLoadPutTimeMs":60000,"NumberTotalRows":0,"WriteDataTimeMs":0,"ReceiveDataTimeMs":0,"TxnId":2581391489973xxxx,"LoadTimeMs":0,"TwoPhaseCommit":"false","ReadDataTimeMs":0,"NumberLoadedRows":0,"NumberFilteredRows":0}

DTS-RETRY-ERR-0631: given ts is smaller than oldest message's ts, some binlogs may lose

Causa possível: O DTS tenta extrair dados a partir de um timestamp de início especificado no Kafka de origem (usado para TiDB Binlog), mas a mensagem mais antiga no Kafka é posterior a esse timestamp. Isso significa que os logs incrementais necessários foram purgados.

Solução: Verifique a política de retenção para dados do TiDB Binlog no Kafka de origem e garanta que o período de retenção seja longo o suficiente.

Exemplo de erro:

DTS-31009: In process of processing data (recordRange: 776029846907125xxxx) failed cause: FatalAnyAllException: common: DTS-100047: retry 0 times, 0 seconds, which exceed the supposed 43200 seconds RuntimeException: seek timestamp for topic [xxx] with timestamp [1747724390xxx] failed RuntimeException: given ts is smaller than oldest message's ts, some binlogs may lose, given ts: 1747724390xxx, oldest ts: 1747726918xxx

DTS-RETRY-ERR-0632: got sequence entry (.)? for toast chunk (.)?

Causa possível: Ocorreu um erro de lógica interna no banco de dados PostgreSQL de origem ao processar dados de objetos grandes (TOAST). Isso fez com que o DTS recebesse entradas de log fora de ordem ou inesperadas. Esse é um erro específico do banco de dados.

Solução: Esse é um erro interno do banco de dados. Verifique o status de integridade e os logs de erro do banco de dados PostgreSQL de origem.

Exemplo de erro:

DTS-52111: Increment Context Is Not Running..: cause: CriticalAnyAllException: postgresql-reader: DTS-52510: Fetch postgresql logical log failed FatalAnyAllException: common: DTS-100047: retry 58 times, 600947 seconds, which exceed the supposed 600 seconds IOException: org.postgresql.util.PSQLException: ERROR: got sequence entry xxx for toast chunk xxx instead of seq 0 PSQLException: ERROR: got sequence entry xxx for toast chunk xxx instead of seq 0

DTS-RETRY-ERR-0633: Got timeout reading communication packets

Causa possível: Ocorreu um timeout de leitura na conexão de rede entre o DTS e o banco de dados MySQL de origem. Isso geralmente é causado por alta latência de rede, instabilidade ou um servidor de banco de dados com alta carga que responde lentamente.

Solução: Solucione problemas na qualidade do link de rede entre o DTS e o banco de dados de origem. Se a rede estiver normal, verifique a carga no servidor do banco de dados. Reiniciar a tarefa do DTS pode resolver problemas transitórios de rede.

Exemplo de erro:

com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Got timeout reading communication packets

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

Causa possível: A lista de permissões de endereços IP do banco de dados de destino não inclui o endereço IP do servidor DTS, o que faz com que o banco de dados rejeite a conexão.

Solução: Adicione o endereço IP do servidor DTS à lista de permissões de endereços IP da instância do banco de dados de destino.

Exemplo de erro:

java.sql.SQLException: null, message from server: "Host '100.xxx.xxx.xxx' is not allowed to connect to this xxx server"

DTS-RETRY-ERR-0636: ignore with global index not supported

Causa possível: A tabela no banco de dados PolarDB-X 2.0 de destino possui um índice global, e a instrução INSERT IGNORE usada pelo DTS não é suportada nesse caso.

Solução: Essa é uma limitação do banco de dados. Se o seu negócio permitir, considere excluir o índice global da tabela de destino ou alterar a tabela particionada para uma tabela não particionada. Após modificar o schema do banco de dados, reinicie a tarefa do DTS.

Exemplo de erro:

DTS-30011: currentRunningSQL: /* DTS-full-ch7c7pjz16mxxxx */insert ignore into `xxx`.`xxx`() VALUES (),currentRow:,
reason: ignore with global index not supported cause: BatchUpdateException: ignore with global index not supported SQLException: ignore with global index not supported

DTS-RETRY-ERR-0638: immediate shutdown in progress - no operations are permitted

Causa possível: O banco de dados Oracle ao qual o DTS está tentando se conectar está em processo de desligamento imediato, durante o qual nenhuma nova operação é aceita.

Solução: Aguarde até que o banco de dados Oracle conclua o desligamento e seja reiniciado. Após o banco de dados retomar o serviço normal, reinicie a tarefa do DTS.

Exemplo de erro:

java.sql.SQLRecoverableException: ORA-01089: immediate shutdown in progress - no operations are permitted

DTS-RETRY-ERR-0639: insufficient privileges

Causa possível: A conta que o DTS usa para se conectar ao banco de dados Oracle de origem não tem as permissões necessárias, como a permissão para acessar visualizações do dicionário de dados do sistema, como sys.USER$.

Solução: Para mais informações, consulte Limits and preparations for Oracle databases. Conceda todas as permissões necessárias à conta dedicada do DTS para o banco de dados Oracle de origem.

Exemplo de erro:

DTS-52110: OracleRecordExtractor Init Error: oracle-reader: DTS-52050: Mirror Meta error, cause: CriticalAnyAllException: oracle-reader: DTS-52050: Mirror Meta error, CriticalAnyAllException: oracle-reader: DTS-52050: Mirror meta failed CriticalAnyAllException: oracle-reader: DTS--0002: execute sql SELECT USER#,NAME,TYPE# FROM sys.USER$ failed, case by common: DTS-100047: retry 4307 times, 43200410 seconds, which exceed the supposed 43200 seconds FatalAnyAllException: common: DTS-100047: retry 4307 times, 43200410 seconds, which exceed the supposed 43200 seconds SQLSyntaxErrorException: ORA-01031: insufficient privileges

DTS-RETRY-ERR-0640: Insufficient result space to convert uniqueidentifier value to char.

Causa possível: Quando o DTS lê dados do SQL Server, o espaço de buffer interno para armazenar o resultado da conversão de um tipo uniqueidentifier é insuficiente. Isso pode ser um problema interno causado pela falha do DTS em sincronizar metadados tempestivamente após uma alteração DDL.

Solução: Confirme se uma alteração DDL foi feita e tente reiniciar a tarefa do DTS.

Exemplo de erro:

DTS-31009: read source data error cause: SQLServerException: Insufficient result space to convert uniqueidentifier value to char.

DTS-RETRY-ERR-0641: invalid input syntax for type money

Causa possível: Os bancos de dados de origem e de destino têm unidades diferentes para o tipo money. Isso faz com que a string de formato de moeda gravada pelo DTS (como ¥118,971.00) seja rejeitada pelo banco de dados de destino.

Solução: Verifique e unifique as configurações de formato de moeda nos bancos de dados de origem e de destino. Após corrigir as configurações, reinicie a tarefa do DTS.

Exemplo de erro:

DTS-100047: retry 180 times, 1802 seconds, which exceed the supposed 1800 seconds cause: CriticalAnyAllException: framework: DTS-30011: currentRunningSQL: /* DTS-full-jw3c85ox14cxxxx */insert into "xxx"."xxx"() values () on conflict do nothing,currentRow:, 
reason: Batch entry 0 /* DTS-full-jw3c85ox14cxxxx */insert into "xxx"."xxx"() values () on conflict do nothing was aborted: ERROR: invalid input syntax for type money: "¥118.971.00" Call getNextException to see other errors in the batch. BatchUpdateException: Batch entry 0 /* DTS-full-jw3c85ox14cxxx */insert into "xxx"."xxx"() values () on conflict do nothing was aborted: ERROR: invalid input syntax for type money: "¥118.971.00" Call getNextException to see other errors in the batch. PSQLException: ERROR: invalid input syntax for type money: "¥118.971.00"

DTS-RETRY-ERR-0642: invalid username/password; logon denied

Causa possível: O nome de usuário ou a senha usados pelo DTS para se conectar ao banco de dados Oracle estão incorretos.

Solução: Verifique e atualize a conta e a senha do banco de dados Oracle na configuração da tarefa do DTS para garantir que estejam corretos e válidos. Após confirmar, reinicie a tarefa do DTS.

Exemplo de erro:

java.sql.SQLException: ORA-01017: invalid username/password; logon denied

DTS-RETRY-ERR-0643: (.*)? is an identity column defined as GENERATED ALWAYS

Causa possível: Uma coluna na tabela PostgreSQL de destino é definida como uma coluna de identidade GENERATED ALWAYS. Esse tipo de coluna não permite a inserção explícita de valores. No entanto, o DTS está tentando gravar um valor do banco de dados de origem nessa coluna.

Solução: Não é possível resolver esse problema reiniciando a tarefa. Por favor, modifique o schema da tabela de destino. Por exemplo, altere a coluna para GENERATED BY DEFAULT ou exclua essa coluna da sincronização no mapeamento de colunas do DTS.

Exemplo de erro:

DTS-30011: currentRunningSQL: /* DTS-full-nezi7395167xxxx */insert into "xxx"."xxx"() values () on conflict do nothing,currentRow:xxx, reason: Batch entry 0 /* DTS-full-nezi7395167xxx */insert into "xxx"."xxx"() values (xxx) on conflict do nothing was aborted: ERROR: cannot insert a non-DEFAULT value into column "id" Detail: Column "id" is an identity column defined as GENERATED ALWAYS. Hint: Use OVERRIDING SYSTEM VALUE to override. Call getNextException to see ...

DTS-RETRY-ERR-0644: (.*)? is INTEGER, but it's defined as STRING in table meta

Causa possível: O tipo de uma coluna de chave primária nos dados a serem sincronizados (por exemplo, INTEGER) não corresponde ao tipo de metadados definido no Tablestore de destino (por exemplo, STRING).

Solução: Verifique e unifique o tipo de dados de origem com a definição de schema da tabela do Tablestore de destino. Após corrigir o problema, reinicie a tarefa do DTS.

Exemplo de erro:

DTS-100047: retry 0 times, 1 seconds, which exceed the supposed 43200 seconds cause: ClientException: The type of primary key column 'xxx' is INTEGER, but it's defined as STRING in table meta.

DTS-RETRY-ERR-0645: java.net.UnknownHostException

Causa possível: O servidor DTS não consegue resolver o nome de domínio configurado para o banco de dados de origem por meio de dns (DNS).

Solução: Verifique se o endereço de conexão do banco de dados de origem está correto. Além disso, confirme se o nome de domínio pode ser resolvido normalmente no ambiente de rede onde o servidor DTS está localizado.

Exemplo de erro:

java.sql.SQLException: java.net.UnknownHostException: database-instance-1.c96cqe6wxxxx.ap-southeast-1.rds.xxx.com

DTS-RETRY-ERR-0646: java.sql.SQLException: Binary log is not open

Causa possível: O banco de dados de origem não ativou o binary logging conforme o esperado.

Solução: Verifique e garanta que o recurso de binary logging esteja corretamente ativado no banco de dados de origem. Após confirmar, reinicie a tarefa do DTS.

Exemplo de erro:

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

DTS-RETRY-ERR-0647: java.sql.SQLException: Not Support Unusing binary logging.

Causa possível: O banco de dados MySQL de origem não ativou o binary logging, que é obrigatório para a sincronização incremental do DTS.

Solução: Faça logon no banco de dados MySQL de origem, verifique e ative o binary logging e, em seguida, reinicie a tarefa do DTS.

Exemplo de erro:

java.sql.SQLException: Not Support Unusing binary logging.

DTS-RETRY-ERR-0648: java.sql.SQLException: The requested gtid transaction no longer exists and may have been cleaned up

Causa possível: Durante a sincronização incremental, o offset GTID exigido pelo DTS não existe mais nos arquivos de binary log do MySQL de origem. Isso geralmente ocorre porque os arquivos de binary log foram purgados automaticamente pelo banco de dados.

Solução: Estenda o período de retenção do binary log do banco de dados de origem. Após corrigir o problema, reconfigure a tarefa do DTS para sincronizar desde o início.

Exemplo de erro:

DTS-100047: retry 0 times, 1101 seconds, which exceed the supposed 43200 seconds cause: CriticalAnyAllException: dts-k-src: DTS-52111: Increment Context Is Not Running..: mysql-reader: DTS-52200: process error failed cause: IOException: java.sql.SQLException: The requested gtid transaction no longer exists and may have been cleaned up SQLException: The requested gtid transaction no longer exists and may have been cleaned up CriticalAnyAllException: mysql-reader: DTS-52200: process error failed IOException: java.sql.SQLException: The requested gtid transaction no longer exists and may have been cleaned up SQLException: The requested gtid transaction no longer exists and may have been cleaned up

DTS-RETRY-ERR-0649: java.sql.SQLNonTransientConnectionException: Got timeout reading communication packets

Causa possível: Ocorreu um timeout de rede quando o DTS estava lendo a resposta do banco de dados MySQL de origem. Isso pode ser causado por latência de rede ou alta carga no banco de dados.

Solução: Verifique a condição da rede entre o DTS e o banco de dados de origem e investigue a carga de desempenho do banco de dados de origem. Reiniciar a tarefa do DTS pode resolver problemas transitórios.

Exemplo de erro:

java.sql.SQLNonTransientConnectionException: Got timeout reading communication packets

DTS-RETRY-ERR-0650: java.sql.SQLNonTransientConnectionException: Server shutdown in progress

Causa possível: O servidor do banco de dados MySQL de origem está desligando e não aceita mais nenhuma operação.

Solução: Verifique o status do banco de dados de origem. Após ele concluir o processo de desligamento e reinicialização e retomar o serviço, reinicie a tarefa do DTS.

Exemplo de erro:

java.sql.SQLNonTransientConnectionException: Server shutdown in progress

DTS-RETRY-ERR-0651: LeaderNotAvailableException

Causa possível: O cluster Kafka de destino está passando por uma migração de partição, o que torna a partição temporariamente indisponível para gravação. Isso geralmente é acionado pela reinicialização de um nó do cluster ou por flutuações de rede.

Solução: Esse problema geralmente é temporário. Tente reiniciar a tarefa do DTS. O DTS tentará novamente a conexão e recuperará as informações mais recentes do líder da partição.

Exemplo de erro:

java.util.concurrent.ExecutionException: com.xxx.kafka_thin_client1d0d0.common.errors.LeaderNotAvailableException: There is no leader for this topic-partition as we are in the middle of a leadership election.

DTS-RETRY-ERR-0652: listener does not currently know of SID given in connect descriptor

Causa possível: O listener do banco de dados Oracle de origem não reconhece o ID do sistema (SID) especificado na solicitação de conexão do DTS. Isso pode ocorrer porque o SID está configurado incorretamente, a instância do banco de dados não está em execução ou não está registrada no listener.

Solução: Verifique as informações de conexão do banco de dados de origem para garantir que o SID esteja correto. Além disso, confirme se o banco de dados Oracle e seu serviço de listener estão funcionando normalmente. Após confirmar, reinicie a tarefa do DTS.

Exemplo de erro:

java.sql.SQLException: Listener refused the connection with the following error: ORA-12505, TNS:listener does not currently know of SID given in connect descriptor

DTS-RETRY-ERR-0653: MySQLSyntaxErrorException: Result consisted of more than one row

Causa possível: Quando o DTS executou uma operação que deveria afetar apenas uma única linha no banco de dados MySQL de destino, o banco de dados retornou múltiplas linhas. Esse erro geralmente indica que a tabela de destino contém dados duplicados, o que provavelmente é causado pela ausência de uma chave primária ou restrição de unicidade.

Solução: Verifique a tabela de destino, localize e limpe os dados duplicados com base na chave primária do negócio. Além disso, garanta que a tabela de destino tenha uma restrição de chave primária ou índice único correto.

Exemplo de erro:

DTS-100047: retry 3106 times, 43203 seconds, which exceed the supposed 43200 seconds cause: CriticalAnyAllException: framework: DTS-30011: currentRunningSQL: /* DTS-full-y5jg7pd1138xxxx */insert ignore into `xxx`.`xxx`() VALUES (),currentRow:xxx, reason: Result consisted of more than one row BatchUpdateException: Result consisted of more than one row MySQLSyntaxErrorException: Result consisted of more than one row

DTS-RETRY-ERR-0654: new row for relation (.*)? violates check constraint

Causa possível: Um registro da origem não satisfaz uma restrição CHECK definida na tabela PostgreSQL de destino.

Solução: Localize e corrija os dados no banco de dados de origem que não estão em conformidade com a regra de negócio. Alternativamente, se a lógica do negócio permitir, considere modificar ou remover a restrição CHECK da tabela de destino. Após ajustar os dados ou o schema da tabela, reinicie a tarefa do DTS.

Exemplo de erro:

DTS-100047: retry 4247 times, 43207 seconds, which exceed the supposed 43200 seconds cause: CriticalAnyAllException: framework: DTS-30011: currentRunningSQL: /* DTS-full-j87z7m2b16dxxxx */insert into "xxx"."xxx"() values () on conflict do nothing,currentRow:xxx, reason: Batch entry 32 /* DTS-full-j87z7m2b16dxxxx */insert into "xxx"."xxx"() values () on conflict do nothing was aborted: ERROR: new row for relation "xxx" violates check constraint "xxx_constraint" Detail: Failing row contains (). Call getNextException to see other errors in the batch. 
BatchUpdateException: Batch entry 32 /* DTS-full-j87z7m2b16dxxxx */insert into "xxx"."xxx"() values (xxx) on conflict do nothing was aborted: ERROR: new row for relation "xxx" violates check constraint "xxx_constraint" Detail: Failing row contains (). Call getNextException to see other errors in the batch. PSQLException: ERROR: new row for relation "xxx" violates check constraint "xxx_constraint" Detail: Failing row contains ().

DTS-RETRY-ERR-0655: No more data to read from socket

Causa possível: A conexão de rede entre o DTS e o banco de dados Oracle foi fechada inesperadamente. Isso pode ser causado por um processo anômalo no lado do banco de dados, por um dispositivo de rede, como um firewall, que encerra a sessão devido a um timeout de ociosidade, ou por uma interrupção transitória de rede.

Solução: Verifique a estabilidade da rede entre o DTS e o servidor Oracle e confirme se nenhum firewall está interrompendo conexões persistentes. Além disso, verifique o log de alertas do Oracle em busca de erros no lado do servidor. Reiniciar a tarefa do DTS geralmente resolve problemas transitórios.

Exemplo de erro:

DTS-30020: execute sql:/* DTS-full-etzf7t4x24xxxxx */SELECT /*+ index("xxx" SYS_C0044122) */ xxx FROM xxx WHERE xxx --> (null, [Lcom.alibaba.amp.any.record.value.Value;@20510xxx) record range id = 712551168722599xxxx, fetchSize = 1024 cause: SQLRecoverableException: No more data to read from socket

DTS-RETRY-ERR-0656: no privileges on tablespace (.*)?

Causa possível: A conta conectada ao banco de dados Oracle de destino não tem permissão para criar objetos no tablespace especificado.

Solução: Conceda permissões no tablespace relevante à conta do banco de dados de destino usada pelo DTS.

Exemplo de erro:

DTS-100047: retry 4314 times, 43201 seconds, which exceed the supposed 43200 seconds cause: CriticalAnyAllException: framework: DTS-30011: currentRunningSQL: /* DTS-full-r87i6i04j33xxxx */insert into "xxx"."xxx"() VALUES (),currentRow:xxx, reason: ORA-01950: no privileges on tablespace 'xxx' BatchUpdateException: ORA-01950: no privileges on tablespace 'xxx'

DTS-RETRY-ERR-0657: no privileges on tablespace (.*)?

Causa possível: A conta conectada ao banco de dados de destino não tem permissão para criar objetos no tablespace especificado.

Solução: Conceda permissões no tablespace relevante à conta do banco de dados de destino usada pelo DTS.

Exemplo de erro

DTS-30011: currentRunningSQL: /* DTS-full-q0yy62nq16fxxx */insert into "xxx"."xxx"() VALUES (),currentRow:null, reason: ORA-01950: no privileges on tablespace 'xxx' cause: BatchUpdateException: ORA-01950: no privileges on tablespace 'xxx'

DTS-RETRY-ERR-0658: No route to host (Host unreachable)

Causa possível: O DTS não consegue encontrar uma rota de rede para o host do banco de dados de origem, o que causa a falha na conexão. Isso geralmente é causado por configuração de rede incorreta, políticas de firewall ou falta de roteamento entre sub-redes.

Solução: Verifique a configuração de rede e a conectividade entre o servidor DTS e o servidor do banco de dados de origem. Tente usar o comando ping ou telnet no servidor DTS para testar a acessibilidade do host de destino.

Exemplo de erro:

java.sql.SQLException: java.net.NoRouteToHostException: No route to host (Host unreachable)

DTS-RETRY-ERR-0659: Not allowed to perform current operation on async materialized view

Causa possível: O DTS tentou gravar dados em uma visualização materializada assíncrona no SelectDB (Doris) de destino usando StreamLoad, mas essa operação não é permitida. Os dados devem ser gravados na tabela base.

Solução: Por favor, modifique a configuração da tarefa do DTS para definir o objeto de sincronização como a tabela base que corresponde à visualização materializada assíncrona, e não a própria visualização materializada.

Exemplo de erro:

DTS-70003: 29 execute transaction has excess max transaction retry time [64] cause:Failed to stream load data to table: xxx.xxx status is fail. Load result: {"Status":"Fail","Comment":"","BeginTxnTimeMs":0,"Message":"[ANALYSIS_ERROR]TStatus: errCode = 2, detailMessage = Not allowed to perform current operation on async materialized view","NumberUnselectedRows":0,"CommitAndPublishTimeMs":0,"Label":"DTS-SelectDB-Sink4b5a1dcd-xxx-xxx-88ad-d9ce08bcf343","LoadBytes":0,"StreamLoadPutTimeMs":0,"NumberTotalRows":0,"WriteDataTimeMs":0,"ReceiveDataTimeMs":0,"TxnId":-1,"LoadTimeMs":0,"TwoPhaseCommit":"false","ReadDataTimeMs":0,"NumberLoadedRows":0,"NumberFilteredRows":0} cause: IOException: Failed to stream load data to table: xxx.xxx status is fail. Load result: {"Status":"Fail","Comment":"","BeginTxnTimeMs":0,"Message":"[ANALYSIS_ERROR]TStatus: errCode = 2, detailMessage = Not allowed to perform current operatio...

DTS-RETRY-ERR-0660: not enough space. (NOT_ENOUGH_SPACE)

Causa possível: A instância ClickHouse de destino ou o nó em que ela está hospedada possui espaço em disco insuficiente. Ela não consegue reservar a memória necessária nem gravar dados para a operação de gravação.

Solução: Verifique a capacidade de armazenamento da instância ClickHouse de destino e libere ou expanda o espaço em disco.

Exemplo de erro:

DTS-100047: retry 1044 times, 43202 seconds, which exceed the supposed 43200 seconds cause: TransactionReplicateException: transaction-replicate: DTS-70003: 5 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: ClickHouseEngine(5): meet error, insertSQL:insert into `xxx`.`xxx` () values (), error detail message:Code: 243. DB::Exception: Cannot reserve 1.00 MiB, not enough space. (NOT_ENOUGH_SPACE) (version 23.8.16.1) , server ClickHouseNode [uri=http://10.xxx.xxx.xxx:xxx/x_magnet_dev]@-184683xxxx SQLException: Code: 243. DB::Exception: Cannot reserve 1.00 MiB, not enough space. (NOT_ENOUGH_SPACE) (version 23.8.16.1) , server ClickHouseNode [uri=http://10.xxx.xxx.xxx:xxx/x_magnet_dev]@-184683xxx IOException: Code: 243. DB::Exception: Cannot reserve 1.00 MiB, not enough space. (NOT_ENOUGH_SPACE) (version 23.8.16.1)

DTS-RETRY-ERR-0661: not support exactly-once with thread id mode

Causa possível: A tarefa do DTS está configurada com o recurso Exactly-Once write, mas o GTID não está ativado no banco de dados de origem. Esse modo depende fortemente do GTID para garantir a unicidade da transação.

Solução: Ative o recurso GTID para o banco de dados de origem.

Exemplo de erro:

DTS-11005: not support exactly-once with thread id mode

DTS-RETRY-ERR-0662: Not support fetch backup log MissActiveLogException

Causa possível: Quando o DTS lê logs incrementais do banco de dados de origem, ele descobre que os logs necessários, incluindo logs ativos e de backup, foram purgados.

Solução: Estenda o período de retenção de backup do log de transações do banco de dados de origem.

Exemplo de erro:

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

DTS-RETRY-ERR-0663: Object (.)? in library (.)? not found

Causa possível: O DTS não consegue encontrar o objeto especificado, como um arquivo de log Journal, no banco de dados de origem. Isso geralmente significa que os logs exigidos pelo DTS foram purgados ou movidos.

Solução: Verifique a política de gerenciamento de logs do banco de dados de origem para garantir que o período de retenção de logs seja longo o suficiente.

Exemplo de erro:

DTS-31009: In process of processing data (recordRange: 456002531641996xxxx) failed cause: FatalAnyAllException: common: DTS-100047: retry 0 times, 276393 seconds, which exceed the supposed 43200 seconds RuntimeException: AS400DB2Source:journalFetcher-0: failed cause false; rc=0x501 CPF9801: Object xxx in library xxx not found.

DTS-RETRY-ERR-0664: ODPS partition exception - maximum (.)? partitions allowed, or more than (.)? partitions created

Causa possível: O número de partições na tabela MaxCompute de destino atingiu o limite superior, ou uma única operação tentou criar mais partições do que o limite permitido por operação.

Solução: Verifique sua estratégia de particionamento para evitar a criação de muitas partições. Pode ser necessário limpar partições históricas desnecessárias ou otimizar o design dos campos de partição.

Exemplo de erro:

DTS-70004: execute upload failed, may try it again cause: TransactionReplicateException: transaction-replicate: DTS-70003: 17 execute transaction has excess max transaction retry time [100] cause:ODPS-0110061: Failed to run ddltask - Modify DDL meta encounter exception : ODPS-0123031:ODPS partition exception - maximum xxx partitions allowed, or more than xxx partitions created OdpsException: ODPS-0110061: Failed to run ddltask - Modify DDL meta encounter exception : ODPS-0123031:ODPS partition exception - maximum xxx partitions allowed, or more than xxx partitions created

DTS-RETRY-ERR-0665: Operation is not allowed under READ-ONLY mode!

Causa possível: A instância AnalyticDB for MySQL 3.0 de destino está atualmente no modo somente leitura, e o DTS não consegue gravar dados.

Solução: Verifique o status da instância AnalyticDB for MySQL 3.0 de destino.

Exemplo de erro:

java.sql.SQLException: [xxx, 202507301xxxx41921680681130315111xxxx] Operation is not allowed under READ-ONLY mode!

DTS-RETRY-ERR-0666: ORACLE initialization or shutdown in progress

Causa possível: O banco de dados Oracle ao qual o DTS está tentando se conectar está em processo de inicialização ou desligamento e está temporariamente indisponível.

Solução: Aguarde até que o banco de dados Oracle conclua seu processo de inicialização ou desligamento e retome o serviço normal. Em seguida, reinicie a tarefa do DTS.

Exemplo de erro:

java.sql.SQLRecoverableException: ORA-01033: ORACLE initialization or shutdown in progress

DTS-RETRY-ERR-0669: org.bson.json.JsonParseException

Causa possível: A condição de filtro configurada para o MongoDB de origem na tarefa do DTS não é uma string de formato JSON válida.

Solução: Verifique e corrija a instrução JSON na condição de filtro da tarefa do DTS para garantir que sua sintaxe esteja correta.

Exemplo de erro:

org.bson.json.JsonParseException: Invalid JSON input. Position: 2. Character: '“'.

DTS-RETRY-ERR-0670: PROCEDURE (.*)? does not exist

Causa possível: Os dados sincronizados pelo DTS acionaram uma operação no banco de dados MySQL de destino, como um trigger, que tentou chamar uma stored procedure inexistente.

Solução: Verifique o banco de dados de destino para garantir que a stored procedure necessária tenha sido criada, ou remova a lógica, como triggers, que chama a stored procedure. Após corrigir o problema, reinicie a tarefa do DTS.

Exemplo de erro:

DTS-100047: retry 4290 times, 43205 seconds, which exceed the supposed 43200 seconds cause: CriticalAnyAllException: framework: DTS-30011: currentRunningSQL: /* DTS-full-lsqb6q1p18txxx */insert ignore into `xxx`.`xxx`() VALUES (),currentRow:xxx, reason: PROCEDURE xxx.xxx does not exist BatchUpdateException: PROCEDURE xxx.xxx does not exist SQLSyntaxErrorException: PROCEDURE xxx.xxx does not exist

DTS-RETRY-ERR-0671: Project: (.*)? Slot Quota Exceeded

Causa possível: Os recursos de computação (slots) consumidos pelo MaxCompute de destino excederam sua cota.

Solução: Verifique o uso de recursos do projeto MaxCompute. Aguarde até que outras tarefas liberem recursos ou aumente a cota de slots do projeto. Após confirmar, reinicie a tarefa do DTS.

Exemplo de erro:

DTS-70004: execute upload failed, may try it again cause: TransactionReplicateException: transaction-replicate: DTS-70003: 12 execute transaction has excess max transaction retry time [100] cause:odps: DTS-11014: Failed to get the upload session for xxx.xxx caused by RequestId=20250601131605b381c40b05d6xxxx, ErrorCode=SlotExceeded, ErrorMessage=Region: cn-zhangjiakou Project: xxx Slot Quota Exceeded. Total:300, Acquired:349RequestId=20250601131605b381c40b05d6xxxx, ErrorCode=SlotExceeded, ErrorMessage=Region: cn-zhangjiakou Project: xxxx Slot Quota Exceeded. Total:300, Acquired:349 CriticalAnyAllException: odps: DTS-11014: Failed to get the upload session for xxx.xxx caused by RequestId=20250601131605b381c40b05d6xxxx, ErrorCode=SlotExceeded, ErrorMessage=Region: cn-zhangjiakou Project: xxx Slot Quota Exceeded. Total:3...

DTS-RETRY-ERR-0672: Query was selected to stop by OvercommitTracker

Causa possível: A instância ClickHouse de destino encerrou a consulta do DTS devido ao seu mecanismo interno OvercommitTracker, que foi acionado por excesso de alocação de memória (overcommitment).

Solução: Verifique o uso de memória e a carga da instância ClickHouse de destino. Pode ser necessário otimizar consultas, aumentar a memória do nó ou atualizar o tipo de instância.

Exemplo de erro:

java.sql.BatchUpdateException: Code: 241. DB::Exception: Memory limit (total) exceeded: would use xxx GiB (attempt to allocate chunk of xxx bytes), maximum: xxx GiB. OvercommitTracker decision: Query was selected to stop by OvercommitTracker.: (avg_value_size_hint = xxx, avg_chars_size = xxx, limit = xxx): (while reading column order_sn): (while reading from part /clickhouse/xxx/xxx/store/xxx/c3ff3852-5f5d-xxx-xxx-95e34f91fdf8/all_xxx/ in table xxx (c3ff3852-5f5d-xxx-xxx-95e34f91fdf8) located on disk default of type local, from mark 192 with max_rows_to_read = xxx): While executing MergeTreeThread: while pushing to view xxx (2b1cfb37-6694-xxx-xxx-785513b23836). (MEMORY_LIMIT_EXCEEDED) (version 23.8.16.1) , server ClickHouseNode [uri=http://10.xxx.xxx.xxx:xxx/default]@742123xxx

DTS-RETRY-ERR-0673: READONLY You can't write against a read only replica.

Causa possível: O DTS está configurado para gravar dados em um nó de réplica Redis somente leitura.

Solução: Por favor, modifique a configuração de destino da tarefa do DTS para apontar para o nó master do Redis.

Exemplo de erro:

redis.clients.jedis.exceptions.JedisDataException: READONLY You can't write against a read only replica.

DTS-RETRY-ERR-0674: RecordTooLargeException

Causa possível: O tamanho de uma mensagem que o DTS está tentando enviar para o Kafka de destino excede o limite máximo de tamanho de entrega de mensagens do Kafka.

Solução: Verifique os dados de origem para confirmar se há registros que contêm campos com tamanho excessivo, como campos TEXT ou BLOB muito grandes. Se os dados estiverem normais, aumente o limite máximo de tamanho de entrega de mensagens do Kafka de destino. Você também pode configurar o mapeamento de colunas de objetos na tarefa do DTS para excluir os campos que estão causando o excesso de tamanho da mensagem.

Exemplo de erro:

DTS-100047: retry 4102 times, 43206 seconds, which exceed the supposed 43200 seconds cause: ExecutionException: com.xxx.kafka_thin_xxx.common.errors.RecordTooLargeException: The request included a message larger than the max message size the server will accept. RecordTooLargeException: The request included a message larger than the max message size the server will accept.

DTS-RETRY-ERR-0675: rejected execution of primary operation

Causa possível: O Elasticsearch de destino acionou um mecanismo de circuit breaker devido à pressão excessiva de recursos, como alto uso de cpu (CPU), memória ou disco, e rejeitou a solicitação de gravação do DTS.

Solução: Verifique o status de integridade e a carga de recursos do Elasticsearch de destino. Pode ser necessário escalar o cluster, otimizar índices ou reduzir a taxa de gravação.

Exemplo de erro:

DTS-100047: retry 15 times, 219 seconds, which exceed the supposed 922337203685477xxxx seconds cause: IOException: es: DTS-10035: Index error: rejected execution of primary operation [coordinating_and_primary_bytes=xxx, replica_bytes=0, all_bytes=xxx, primary_operation_bytes=xxx, max_coordinating_and_primary_bytes=xxx] CriticalAnyAllException: es: DTS-10035: Index error: rejected execution of primary operation [coordinating_and_primary_bytes=xxx, replica_bytes=0, all_bytes=141360231, primary_operation_bytes=xxx, max_coordinating_and_primary_bytes=xxx]

DTS-RETRY-ERR-0676: Requests rate limit exceeded

Causa possível: A taxa de gravação do DTS para a instância Elasticsearch de destino excedeu o limite de frequência de solicitações do serviço.

Solução: Defina um limite de taxa de sincronização razoável na configuração da tarefa do DTS ou atualize a instância Elasticsearch de destino para obter maior capacidade de throughput.

Exemplo de erro:

DTS-100047: retry 15 times, 79 seconds, which exceed the supposed 922337203685477xxx seconds cause: IOException: es: DTS-10035: Index error: Error from remote service: {"error": {"code": "Throttling.RateQuota", "message": "Requests rate limit exceeded, please try again later."}} CriticalAnyAllException: es: DTS-10035: Index error: Error from remote service: {"error": {"code": "Throttling.RateQuota", "message": "Requests rate limit exceeded, please try again later."}}

DTS-RETRY-ERR-0677: rollback segment number (.)? with name "(.)?" too small

Causa possível: Esse é um erro Oracle ORA-01555: snapshot too old. A consulta completa executada pelo DTS demorou muito. Durante esse tempo, ocorreram muitas alterações de dados no banco de dados de origem. Como resultado, o Oracle não pôde usar as informações UNDO para construir uma visualização de dados consistente a partir do momento de início da consulta.

Solução: Aumente o tamanho do tablespace UNDO no banco de dados Oracle de origem.

Exemplo de erro:

DTS-31009: In process of processing data (recordRange: 868490004694617xxxx) failed cause: FatalAnyAllException: common: DTS-100047: retry 0 times, 48910 seconds, which exceed the supposed 43200 seconds CriticalAnyAllException: framework: DTS-31009: read source data error SQLException: ORA-01555: snapshot too old: rollback segment number xxx with name "xxx" too small

DTS-RETRY-ERR-0678: routing is required

Causa possível: O índice Elasticsearch de destino exige que um valor _routing seja fornecido quando os documentos são gravados, mas a tarefa do DTS não configurou uma regra de roteamento correspondente.

Solução: Na tarefa do DTS, configure o campo de roteamento correto com base no design do seu índice Elasticsearch.

Exemplo de erro:

DTS-100047: retry 15 times, 15 seconds, which exceed the supposed 922337203685477xxxx seconds cause: IOException: es: DTS-10035: routing is required for [xxx]/[xxx] CriticalAnyAllException: es: DTS-10035: routing is required for [xxx]/[xxx]

DTS-RETRY-ERR-0679: Row size too large

Causa possível: O tamanho total de uma linha que o DTS tentou gravar excede o limite máximo de tamanho de linha da tabela MySQL de destino.

Solução: Verifique e otimize os schemas das tabelas de origem e de destino. Altere alguns campos VARCHAR longos para os tipos TEXT ou BLOB, pois os dados nesses tipos não são totalmente contabilizados no limite de tamanho da linha. Após modificar o schema da tabela, reinicie a tarefa do DTS.

Exemplo de erro:

DTS-100047: retry 112 times, 1203 seconds, which exceed the supposed 1200 seconds cause: CriticalAnyAllException: framework: DTS-30011: currentRunningSQL: /* DTS-full-dedl7sabm8gxxxx */insert ignore into `xxx`.`xxx`() VALUES (),currentRow:xxx, reason: Row size too large (> xxx). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline. BatchUpdateException: Row size too large (> xxx). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline. MySQLSyntaxErrorException: Row size too large (> xxx). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.

DTS-RETRY-ERR-0680: Running in read-only mode

Causa possível: A instância do banco de dados MySQL de destino está atualmente no modo somente leitura (read_only=ON), e o DTS não consegue gravar dados.

Solução: Verifique o status do banco de dados de destino, defina-o para o modo de leitura e gravação e, em seguida, reinicie a tarefa do DTS.

Exemplo de erro:

DTS-100047: retry 4201 times, 43203 seconds, which exceed the supposed 43200 seconds cause: CriticalAnyAllException: framework: DTS-30011: currentRunningSQL: /* DTS-full-ia8o8et1129xxxx */insert ignore into `xxx`.`xxx`() VALUES (),currentRow:null, reason: Running in read-only mode BatchUpdateException: Running in read-only mode SQLException: Running in read-only mode

DTS-RETRY-ERR-0681: Schema (.*)? not found

Causa possível: Quando o DTS acessa o banco de dados, ele não consegue encontrar o schema especificado, que é equivalente a um banco de dados ou usuário em alguns bancos de dados. Isso pode ocorrer porque o schema não existe ou a conta do DTS não tem permissão para acessá-lo.

Solução: Garanta que o nome do schema configurado no DTS esteja correto e que a conta do DTS tenha permissão para acessar o schema.

Exemplo de erro:

DTS-31009: In process of processing data (recordRange: 232142460080776xxxx) failed cause: FatalAnyAllException: common: DTS-100047: retry 0 times, 2 seconds, which exceed the supposed 43200 seconds DbException: Schema "xxx" not found [90079-193] JdbcSQLException: Schema "xxx" not found [90079-193]

DTS-RETRY-ERR-0682: Server shutdown in progress

Causa possível: O servidor do banco de dados MySQL de origem está desligando e não aceita mais nenhuma operação.

Solução: Verifique o status do banco de dados de origem. Após ele concluir o processo de desligamento e reinicialização e retomar o serviço, reinicie a tarefa do DTS.

Exemplo de erro:

DTS-31009: read source data error cause: MySQLNonTransientConnectionException: Server shutdown in progress

DTS-RETRY-ERR-0683: set connection_id fail

Causa possível: O DTS falhou ao definir o connection_id ao se conectar a um PolarDB Multi-master Cluster (Limitless) Edition. Isso pode indicar que a versão ou configuração do banco de dados de destino não suporta essa operação específica.

Solução: Esse é um problema de compatibilidade entre o DTS e uma versão específica do banco de dados. Confirme se o banco de dados suporta essa operação.

Exemplo de erro:

DTS-70032: set connection_id fail exceed retry time=4, threadid=4294963209, biId=264, adaptedBiId=9, fatal error, let's exit

DTS-RETRY-ERR-0684: SQLException: could not find next log

Causa possível: Ao ler os arquivos de binary log do MySQL de origem em sequência, o DTS não consegue encontrar o próximo arquivo esperado. Por exemplo, não consegue encontrar .000906 após mysql-bin.000905. Isso geralmente significa que os arquivos de binary log foram purgados manual ou automaticamente pelo banco de dados.

Solução: Estenda a política de retenção de binary log do banco de dados de origem. Você precisa reiniciar a tarefa do DTS ou retomar a tarefa pulando o offset, o que acarreta risco de perda de dados.

Exemplo de erro:

DTS-100047: retry 0 times, 1000 seconds, which exceed the supposed 43200 seconds cause: CriticalAnyAllException: dts-k-src: DTS-52111: Increment Context Is Not Running..: mysql-reader: DTS-52200: process error failed cause: IOException: java.sql.SQLException: could not find next log; the first event 'mysql-bin.000345' at 763652xxx, the last event read from './mysql-bin.000905' at 1073755xxx, the last byte read from './mysql-bin.000905' at 1073755xxx. SQLException: could not find next log; the first event 'mysql-bin.000345' at 763652xxx, the last event read from './mysql-bin.000905' at 1073755xxx, the last byte read from './mysql-bin.000905' at 1073755xxx. CriticalAnyAllException: mysql-reader: DTS-52200: process error failed IOException: java.sql.SQLException: could not find next log; the first event 'mysql-bin.000345' at 763652xxx, the last event read from './mysql-bin.000905' at 1073755xxx, the last byte read from './mysql-bin.000905' at 1073755xxx. SQLException: could not find next log; the first event 'mysql-bin.000345' at 763652xxx, the last event read from './mysql-bin.000905' at 1073755xxx, the last byte read from './mysql-bin.000905' at 1073755xxx.

DTS-RETRY-ERR-0685: SQLException: Operand should contain 1 column

Causa possível: Na consulta SQL construída pelo DTS, uma subconsulta retornou mais de uma coluna, enquanto seu contexto permite apenas uma única coluna. Isso geralmente ocorre quando o DTS está configurado com uma condição de filtro que contém um erro de sintaxe.

Solução: Verifique a condição de filtro configurada para o objeto de origem na tarefa do DTS e garanta que ela esteja em conformidade com a sintaxe SQL, especialmente o uso de subconsultas.

Exemplo de erro:

DTS-31009: In process of processing data (recordRange: 692535449456161xxxx) failed cause: FatalAnyAllException: common: DTS-100047: retry 4296 times, 43209 seconds, which exceed the supposed 43200 seconds CriticalAnyAllException: framework: DTS-30020: execute sql:/* DTS-full-h78o5f6927bxxxx */SELECT xxx FROM xxx WHERE ( xxx ) --> (null, null) record range id = 692535449456161xxx, fetchSize = -214748xxx SQLException: Operand should contain 1 column(s)

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

Causa possível: Durante a comunicação criptografada por SSL entre o DTS e o banco de dados PostgreSQL de origem, uma mensagem inesperada que não está em conformidade com o protocolo SSL foi recebida, causando falha no handshake.

Solução: Verifique se há anormalidades na rede entre o DTS e o banco de dados de origem. Após confirmar, reinicie a tarefa do DTS.

Exemplo de erro:

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

DTS-RETRY-ERR-0687: STANDBY_MAX_DATA_DELAY of (.*)? seconds exceeded

Causa possível: O DTS está conectado a um banco de dados standby Oracle que está configurado com um modo de proteção de dados. A latência de sincronização entre os bancos de dados primário e standby excedeu o limiar definido pelo parâmetro STANDBY_MAX_DATA_DELAY. Isso fez com que o banco de dados standby rejeitasse a consulta para garantir a consistência dos dados.

Solução: Verifique e resolva o problema de latência entre os bancos de dados Oracle primário e standby. Alternativamente, se o seu negócio permitir, considere conectar-se ao banco de dados primário para sincronização.

Exemplo de erro:

java.sql.SQLException: ORA-03172: STANDBY_MAX_DATA_DELAY of xxx seconds exceeded

DTS-RETRY-ERR-0688: String or binary data would be truncated in table (.)?, column '(.)?. Truncated value

Causa possível: O comprimento de um campo nos dados de origem excede o comprimento máximo da coluna correspondente na tabela SQL Server de destino. Isso faz com que os dados sejam truncados ao serem gravados.

Solução: Compare os schemas das tabelas de origem e de destino. Aumente o comprimento da coluna correspondente na tabela de destino (por exemplo, de VARCHAR(50) para VARCHAR(200)) para acomodar os dados de origem. Após modificar o schema da tabela, reinicie a tarefa do DTS.

Exemplo de erro:

java.sql.BatchUpdateException: String or binary data would be truncated in table 'xxx', column 'xxx'. Truncated value: 'xxx'.

DTS-RETRY-ERR-0689: Subquery returned more than 1 value.

Causa possível: Uma instrução SQL executada pelo DTS contém uma subconsulta que retornou mais de um valor quando usada como uma expressão, o que não é permitido em SQL. Isso geralmente é causado por triggers ou lógica de chave estrangeira no banco de dados de destino que acionam uma subconsulta problemática quando o DTS grava dados.

Solução: Verifique a lógica automatizada no banco de dados de destino relacionada às tabelas sincronizadas, como triggers e chaves estrangeiras. Garanta que elas não produzam esse tipo de erro quando o DTS grava dados. Recomendamos desativar essa lógica durante a sincronização ou migração.

Exemplo de erro:

com.microsoft.sqlserver.jdbc.SQLServerException: Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.

DTS-RETRY-ERR-0690: Table has no partition for value

Causa possível: O valor da chave de partição para os dados que o DTS está tentando gravar não possui uma partição correspondente na tabela particionada MySQL de destino.

Solução: Com base nos valores da chave de partição dos dados de origem, verifique e modifique a definição de partição da tabela de destino para garantir que todos os dados possíveis possam ser roteados para uma partição apropriada. Por exemplo, adicione novas partições para intervalos de tempo futuros.

Exemplo de erro:

DTS-077100: Record Replicator error in table xxx. cause by [java.sql.SQLException: Table has no partition for value from column_list] About more information in [https://xxx].

DTS-RETRY-ERR-0691: table not found

Causa possível: O DTS tentou gravar dados no SelectDB (Doris) de destino, mas a tabela especificada não existe no banco de dados de destino.

Solução: Verifique se o objeto de sincronização configurado na tarefa do DTS está correto e garanta que a tabela correspondente tenha sido criada no banco de dados de destino.

Exemplo de erro:

java.io.IOException: Failed to stream load data to SelectDB.Key status is fail. Load result: {"Status":"Fail","Comment":"","BeginTxnTimeMs":0,"Message":"[NOT_FOUND]TStatus: errCode = 7, detailMessage = table not found, tableName=xxx","NumberUnselectedRows":0,"CommitAndPublishTimeMs":0,"Label":"DTS-SelectDB-Sinkc16c2c5d-xxx-xxx-xxx-5a647cb41cf1","LoadBytes":0,"StreamLoadPutTimeMs":0,"NumberTotalRows":0,"WriteDataTimeMs":0,"ReceiveDataTimeMs":0,"TxnId":-1,"LoadTimeMs":0,"TwoPhaseCommit":"false","ReadDataTimeMs":0,"NumberLoadedRows":0,"NumberFilteredRows":0}

DTS-RETRY-ERR-0692: the database system is in recovery mode

Causa possível: O banco de dados PostgreSQL ao qual o DTS está tentando se conectar está atualmente no modo de recuperação e não pode aceitar conexões normais.

Solução: Aguarde até que o banco de dados conclua o processo de recuperação. Após o banco de dados retomar o serviço normal, reinicie a tarefa do DTS.

Exemplo de erro:

org.postgresql.util.PSQLException: FATAL: the database system is in recovery mode

DTS-RETRY-ERR-0693: the database system is not yet accepting connections

Causa possível: O banco de dados PostgreSQL ao qual o DTS está tentando se conectar está inicializando, mas ainda não atingiu um estado de recuperação consistente no qual possa aceitar conexões.

Solução: Aguarde até que o banco de dados conclua seu processo de inicialização. Após o banco de dados retomar o serviço normal, reinicie a tarefa do DTS.

Exemplo de erro:

org.postgresql.util.PSQLException: FATAL: the database system is not yet accepting connections Detail: Consistent recovery state has not been yet reached.

DTS-RETRY-ERR-0694: the database system is starting up

Causa possível: O banco de dados PostgreSQL ao qual o DTS está tentando se conectar está em processo de inicialização e temporariamente não pode aceitar conexões.

Solução: Aguarde até que o banco de dados termine a inicialização. Após o banco de dados retomar o serviço normal, reinicie a tarefa do DTS.

Exemplo de erro:

org.postgresql.util.PSQLException: FATAL: the database system is starting up

DTS-RETRY-ERR-0695: The index entry of length (.)? bytes for the index (.)? exceeds the maximum length of (.*)? bytes

Causa possível: Na linha a ser inserida ou atualizada, os valores combinados de uma ou mais colunas fazem com que o comprimento total da entrada de índice exceda o comprimento máximo de chave de índice permitido pelo SQL Server (por exemplo, xxx bytes para um índice não clusterizado).

Solução: Verifique os dados de origem em busca de valores excessivamente longos. Encurte o comprimento dos dados dos campos relevantes ou redesenhe o índice da tabela de destino para evitar a inclusão de colunas muito longas no índice.

Exemplo de erro:

com.microsoft.sqlserver.jdbc.SQLServerException: Operation failed. The index entry of length xxx bytes for the index 'xxx' exceeds the maximum length of xxx bytes.

DTS-RETRY-ERR-0696: The INSERT permission was denied on the object (.*)?

Causa possível: A conta usada pelo DTS para se conectar ao banco de dados SQL Server de destino não tem permissão para realizar operações INSERT na tabela especificada.

Solução: Conceda permissão INSERT nas tabelas relevantes à conta do banco de dados de destino usada pelo DTS.

Exemplo de erro:

java.sql.BatchUpdateException: The INSERT permission was denied on the object 'xxx', database 'xxx', schema 'xxx'.

DTS-RETRY-ERR-0697: The SELECT would examine more than (.*)? rows

Causa possível: Uma consulta executada pelo DTS em um nó somente leitura de índice columnstore do PolarDB deve examinar mais linhas do que o limiar definido pelo parâmetro RDS_AP_THREHOLD. O banco de dados rejeitou a consulta para evitar problemas de desempenho.

Solução: Aumente o valor do parâmetro RDS_AP_THREHOLD para o banco de dados PolarDB de destino, ou defina a sessão como SET SQL_AP_SELECTS=ON. Após fazer o ajuste, reinicie a tarefa do DTS.

Exemplo de erro:

DTS-30020: execute sql:/* DTS-full-d1gc8s3615zxxx */SELECT xxx FROM xxx --> (null, null) record range id = 271169604478094xxxx, fetchSize = -214748xxxx cause: SQLException: The SELECT would examine more than RDS_AP_THREHOLD rows; SET SQL_AP_SELECTS=ON or redirect to AP node.

DTS-RETRY-ERR-0698: The slave is connecting using CHANGE MASTER TO MASTER_AUTO_POSITION = 1, but the master has purged binary logs

Causa possível: O DTS está usando o modo GTID para replicação, mas o arquivo de binary log que contém o offset GTID inicial necessário foi purgado no servidor MySQL de origem.

Solução: Aumente imediatamente o período de retenção do binary log do banco de dados MySQL de origem.

Exemplo de erro:

DTS-100047: retry 0 times, 1000 seconds, which exceed the supposed 43200 seconds cause: CriticalAnyAllException: dts-k-src: DTS-52111: Increment Context Is Not Running..: mysql-reader: DTS-52200: process error failed cause: IOException: java.sql.SQLException: The slave is connecting using CHANGE MASTER TO MASTER_AUTO_POSITION = 1, but the master has purged binary logs containing GTIDs that the slave requires. Replicate the missing transactions from elsewhere, or provision a new slave from backup. Consider increasing the master's binary log expiration period. The GTID set sent by the slave is '487e509d-316f-xxx-xxx-00163e257207:1-xxxx', and the missing transactions are '487e509d-316f-xxx-xxx-00163e257207:125941-xxx'. SQLException: The slave is connecting using CHANGE MASTER TO MASTER_AUTO_POSITION = 1, but the master has purged binary logs containing GTIDs that the slave requires. Replicate the missing transactions from elsewhere, or provision a new slave from backup. Consider increasing the master's binary log expiration period. The GTID set sent by the slave is '487e509d-xxxx-xxx-xxx-00163e257207:1-125xxxx', and the missing transactions are '487e509d-xxx-xxx-xxxx-00163e257207:125941-12xxx'. CriticalAnyAllException: mysql-reader: DTS-52200: process error failed IOException: java.sql.SQLException: The slave is connecting using CHANGE MASTER TO MASTER_AUTO_POSITION = 1, but the master has purged binary logs containing GTIDs that the slave requires. Replicate the missing transactions from elsewhere, or provision a new slave from backup. Consider increasing the master's binary log expiration period. The GTID set sent by the slave is '487e509d-xxx-xxx-xxx-00163e257207:1-125xxx', and the missing transactions are '487e509d-xxx-xxx-xxx-00163e257207:125941-12xxx'. SQLException: The slave is connecting using CHANGE MASTER TO MASTER_AUTO_POSITION = 1, but the master has purged binary logs containing GTIDs that the slave requires. Replicate the

DTS-RETRY-ERR-0699: The specified download session id does not exist.

Causa possível: O ID de sessão usado pelo DTS para baixar dados do MaxCompute expirou ou é inválido.

Solução: Esse é um problema de sessão transitório. Tente reiniciar a tarefa do DTS. O DTS criará automaticamente uma nova sessão de download.

Exemplo de erro:

RequestId=20250626174326a181c40b04xxxx, ErrorCode=NoSuchDownload, ErrorMessage=The specified download session id does not exist.

DTS-RETRY-ERR-0700: The specified table has been modified since the download initiated.

Causa possível: Durante o processo de carregamento de dados do MaxCompute pelo DTS, o schema da tabela de destino foi modificado (por exemplo, pela execução de ALTER TABLE). Isso fez com que a sessão de download se tornasse inválida.

Solução: Não execute operações DDL na tabela de destino no MaxCompute durante uma sincronização completa do DTS.

Exemplo de erro:

DTS-31009: In process of processing data (recordRange: 788966514532706xxx) failed cause: CriticalAnyAllException: odps: DTS-11014: odps getRecordReader error,project:xxx table:xxx FatalAnyAllException: common: DTS-100047: retry 2535 times, 43206 seconds, which exceed the supposed 43200 seconds TunnelException: RequestId=202507290629070934c40b02fxxx, ErrorCode=TableModified, ErrorMessage=The specified table has been modified since the download initiated. Try initiate another download.