Esta página lista os códigos de erro comuns retornados pelo PolarDB-X 1.0 e suas respectivas soluções.
Faixas de códigos de erro
|
Faixa |
Categoria |
|
TDDL-1094, TDDL-1305 |
Gerenciamento de sessões |
|
TDDL-4006–4007 |
Metadados de tabela |
|
TDDL-4100–4108 |
Conexões com instâncias de backend |
|
TDDL-4200–4203 |
Disponibilidade de shard de banco de dados e tempo limite de consulta |
|
TDDL-4400–4408 |
Sequências |
|
TDDL-4500–4518 |
Análise, otimização e validação de SQL |
|
TDDL-4600–4617 |
Execução de SQL e transações |
|
TDDL-4636, TDDL-4642 |
DDL |
|
TDDL-4994, TDDL-4998 |
Limitação de taxa de requisições e recursos não suportados |
|
TDDL-5001–5008 |
Transações distribuídas |
TDDL-4006 ERR_TABLE_NOT_EXIST
A tabela especificada não existe.
ERR-CODE: [TDDL-4006][ERR_TABLE_NOT_EXIST] Table '*****' doesn't exist.
A tabela não existe no PolarDB-X 1.0 ou o sistema falhou ao carregar os metadados correspondentes. Verifique se a tabela existe no PolarDB-X 1.0.
TDDL-4007 ERR_CANNOT_FETCH_TABLE_META
O PolarDB-X 1.0 falhou ao carregar os metadados de uma tabela.
ERR-CODE: [TDDL-4007][ERR_CANNOT_FETCH_TABLE_META] Table '*****' metadata
cannot be fetched because Table '*****.*****' doesn't exist.
Causas possíveis:
A tabela não foi criada.
A tabela no shard do banco de dados foi excluída ou renomeada manualmente.
O PolarDB-X 1.0 não consegue se conectar às instâncias de backend do ApsaraDB RDS for MySQL.
Verifique se a tabela existe e confirme se todas as instâncias de backend do ApsaraDB RDS for MySQL funcionam normalmente. Caso a tabela tenha sido excluída ou renomeada manualmente, use o recurso de restauração de dados do ApsaraDB RDS for MySQL para recuperar os dados.
TDDL-4100 ERR_ATOM_NOT_AVALILABLE
Uma instância de backend do ApsaraDB RDS for MySQL está indisponível.
ERR-CODE: [TDDL-4100][ERR_ATOM_NOT_AVALILABLE] Atom : ***** isNotAvailable
Quando o PolarDB-X 1.0 detecta problemas em uma instância de backend do ApsaraDB RDS for MySQL, ele bloqueia temporariamente o acesso a essa instância e retorna este erro. Verifique o status de todas as instâncias de backend do ApsaraDB RDS for MySQL e restaure aquelas que apresentarem anomalias.
Após a recuperação da instância, o PolarDB-X 1.0 restaura automaticamente o acesso a ela.
TDDL-4101 ERR_ATOM_GET_CONNECTION_FAILED_UNKNOWN_REASON
O PolarDB-X 1.0 falhou ao se conectar a uma instância de backend do ApsaraDB RDS for MySQL devido a um motivo desconhecido.
ERR-CODE: [TDDL-4101][ERR_ATOM_GET_CONNECTION_FAILED_UNKNOWN_REASON] Get
connection for db '*****' from pool failed. AppName:*****, Env:*****,
UnitName:null. Message from pool: wait millis 5000, active 0, maxActive 5.
You should look for the following logs which contains the real reason.
O PolarDB-X 1.0 estabelece conexões de backend de forma assíncrona. Este erro ocorre quando a tentativa de conexão atinge o tempo limite e a tarefa assíncrona não reporta nenhum erro específico. Na maioria dos casos, a instância de backend do ApsaraDB RDS for MySQL está em estado anormal. Verifique o status da instância para identificar a causa raiz.
TDDL-4102 ERR_ATOM_GET_CONNECTION_FAILED_KNOWN_REASON
O PolarDB-X 1.0 falhou ao se conectar a uma instância de backend do ApsaraDB RDS for MySQL. A mensagem de erro inclui o motivo específico.
ERR-CODE: [TDDL-4102][ERR_ATOM_GET_CONNECTION_FAILED_KNOWN_REASON] Get
connection for db '*****' failed because wait millis 5000, active 0,
maxActive 5
Causas possíveis:
O número de conexões com a instância de backend atingiu o limite.
A tentativa de conexão expirou.
A conexão foi rejeitada.
Analise o motivo específico na mensagem de erro e tome as medidas corretivas adequadas.
TDDL-4103 ERR_ATOM_CONNECTION_POOL_FULL
O pool de conexões de backend está cheio.
ERR-CODE: [TDDL-4103][ERR_ATOM_CONNECTION_POOL_FULL] Pool of DB '*****' is
full. Message from pool: wait millis 5000, active 5, maxActive 5.
AppName:*****, Env:*****, UnitName:null.
Causas possíveis:
Instruções SQL lentas mantêm conexões abertas por longos períodos, deixando poucas conexões disponíveis.
A aplicação não fecha as conexões com o banco de dados, causando vazamento de conexões.
Um grande volume de consultas entre bancos de dados executa em paralelo, e cada uma consome múltiplas conexões.
Como resolver:
Use um framework de pool de conexões, como Spring JDBC ou MyBatis.
Otimize instruções SQL lentas com base na análise de desempenho.
Use o recurso de divisão de leitura e escrita do PolarDB-X 1.0 para rotear consultas entre bancos de dados para nós somente leitura.
Atualize as especificações da instância do ApsaraDB RDS for MySQL para aumentar a capacidade de processamento do backend.
TDDL-4104 ERR_ATOM_CREATE_CONNECTION_TOO_SLOW
A conexão com uma instância de backend do ApsaraDB RDS for MySQL expirou.
ERR-CODE: [TDDL-4104][ERR_ATOM_CREATE_CONNECTION_TOO_SLOW] Get connection
for db '*****' from pool timeout. AppName:*****, Env:*****,
UnitName:null. Message from pool: wait millis 5000, active 3, maxActive 5.
Isso ocorre quando há um pico de requisições de conexão em um curto período ou quando o estabelecimento de uma única conexão demora demais. Provavelmente, a instância de backend do ApsaraDB RDS for MySQL está sob carga elevada. Ative o recurso de divisão de leitura e escrita do PolarDB-X 1.0 ou atualize as especificações da instância do ApsaraDB RDS for MySQL.
TDDL-4105 ERR_ATOM_ACCESS_DENIED
A instância de backend do ApsaraDB RDS for MySQL rejeitou a conexão do PolarDB-X 1.0.
ERR-CODE: [TDDL-4105][ERR_ATOM_ACCESS_DENIED] DB '*****' Access denied for
user '*****'@'*****'. AppName:*****, Env:*****, UnitName:null. Please
contact DBA to check.
Este erro acontece quando o nome de usuário ou a senha gerados automaticamente pelo PolarDB-X 1.0 para a instância de backend foram alterados manualmente. Também ocorre quando a instância de backend do ApsaraDB RDS for MySQL expirou ou a conta possui pagamentos pendentes. Renove a instância ou regularize o pagamento para restaurar o acesso.
TDDL-4106 ERR_ATOM_DB_DOWN
O PolarDB-X 1.0 não consegue se conectar a uma instância de backend do ApsaraDB RDS for MySQL.
ERR-CODE: [TDDL-4106][ERR_ATOM_DB_DOWN] DB '*****' cannot be connected.
AppName:*****, Env:*****, UnitName:null. It seems a very real possibility
that this DB IS DOWN. Please contact DBA to check.
A tentativa de conexão expirou ou não obteve resposta, o que geralmente indica falha na instância de backend do ApsaraDB RDS for MySQL. Verifique o status da instância e restaure-a.
TDDL-4108 ERR_VARIABLE_CAN_NOT_SET_TO_NULL_FOR_NOW
Não é possível definir uma variável do MySQL como NULL.
ERR-CODE: [TDDL-4108][ERR_VARIABLE_CAN_NOT_SET_TO_NULL_FOR_NOW] System
variable ***** can't set to null for now;
Algumas variáveis de sistema do MySQL não aceitam NULL como valor. Quando uma instrução SET tenta atribuir NULL a tal variável, o PolarDB-X 1.0 retorna este erro. Consulte os valores válidos da variável na documentação de variáveis de sistema do servidor MySQL e atribua um valor válido.
TDDL-4200 ERR_GROUP_NOT_AVALILABLE
Um shard de banco de dados do PolarDB-X 1.0 está indisponível.
ERR-CODE: [TDDL-4200][ERR_GROUP_NOT_AVALILABLE] The TDDL Group ***** is
running in fail-fast status, caused by this SQL:***** which threw a fatal
exception as *****.
Quando todas as instâncias de backend do ApsaraDB RDS for MySQL de um shard de banco de dados ficam inacessíveis, o PolarDB-X 1.0 coloca o shard no estado fail-fast. Solucione a falha da instância de backend com base nas informações de erro. Após a recuperação da instância, o PolarDB-X 1.0 sai automaticamente do estado fail-fast.
TDDL-4201 ERR_GROUP_NO_ATOM_AVALILABLE
Não há instâncias do ApsaraDB RDS for MySQL disponíveis para um shard de banco de dados.
ERR-CODE: [TDDL-4201][ERR_GROUP_NO_ATOM_AVALILABLE] All weights of DBs in
Group '*****' is 0. Weights is: *****.
Todas as instâncias de backend do shard estão indisponíveis ou o shard está no estado fail-fast. Verifique o status de todas as instâncias de backend do ApsaraDB RDS for MySQL e restaure aquelas que falharam.
TDDL-4202 ERR_SQL_QUERY_TIMEOUT
Uma consulta expirou nas instâncias de backend do ApsaraDB RDS for MySQL.
ERR-CODE: [TDDL-4202][ERR_SQL_QUERY_TIMEOUT] Slow query leads to a timeout
exception, please contact DBA to check slow sql. SocketTimout:*** ms,
Atom:*****, Group:*****, AppName:*****, Env:*****, UnitName:null.
O tempo de execução da instrução SQL excedeu o valor de socketTimeout da instância do PolarDB-X 1.0 (padrão: 900 segundos). Otimize a instrução SQL e adicione índices adequados nas instâncias de backend para melhorar o desempenho da consulta.
Se o erro persistir após a otimização, use um hint para definir um tempo limite temporário para a instrução específica:
/*TDDL:SOCKET_TIMEOUT=900000*/ SELECT * FROM dual;
O valor de SOCKET_TIMEOUT está em milissegundos. Para mais informações, consulte Especificar um período de tempo limite personalizado para uma instrução SQL.
TDDL-4203 ERR_SQL_QUERY_MERGE_TIMEOUT
Uma consulta distribuída expirou durante a mesclagem de resultados.
ERR-CODE: [TDDL-4203][ERR_SQL_QUERY_MERGE_TIMEOUT] Slow sql query leads to
a timeout exception during merging results, please optimize the slow sql.
The the default timeout is *** ms. DB is *****
A consulta varreu dados em vários shards de banco de dados e excedeu o tempo limite padrão de 900 segundos. Para otimizar a consulta:
Inclua a chave de shard na cláusula
WHEREpara limitar a execução a um shard específico.Adicione índices adequados nas instâncias de backend do ApsaraDB RDS for MySQL.
Elimine operações distribuídas custosas, como consultas JOIN entre bancos de dados e reordenação de resultados.
Caso o erro persista, use um hint para definir um tempo limite temporário:
/*TDDL:SOCKET_TIMEOUT=900000*/ SELECT * FROM dual;
O valor de SOCKET_TIMEOUT está em milissegundos. Para mais informações, consulte Especificar um período de tempo limite personalizado para uma instrução SQL.
TDDL-4400 ERR_SEQUENCE
Falha no processamento da sequência.
ERR-CODE: [TDDL-4400][ERR_SEQUENCE] Sequence : All dataSource faild to get value!
O PolarDB-X 1.0 falhou ao processar a sequência. A mensagem de erro específica aparece após Sequence :. Isso geralmente significa que uma falha na instância de backend do ApsaraDB RDS for MySQL tornou as tabelas relacionadas à sequência inacessíveis. Verifique o status de todas as instâncias de backend.
TDDL-4401 ERR_MISS_SEQUENCE
A sequência especificada não existe.
ERR-CODE: [TDDL-4401][ERR_MISS_SEQUENCE] Sequence '*****' is not found
Execute SHOW SEQUENCES para listar todas as sequências no PolarDB-X 1.0 e verifique o nome da sequência. Se a sequência não existir, crie-a:
CREATE SEQUENCE <sequence_name> [ START WITH <value> ]
[ INCREMENT BY <value> ] [ MAXVALUE <value> ]
[ CYCLE | NOCYCLE ]
Para mais informações, consulte Sequência.
TDDL-4403 ERR_MISS_SEQUENCE_TABLE_ON_DEFAULT_DB
A tabela de sequência não existe no banco de dados padrão.
ERR-CODE: [TDDL-4403][ERR_MISS_SEQUENCE_TABLE_ON_DEFAULT_DB] Sequence table
is not in default db.
A tabela sequence ou sequence_opt não foi encontrada no banco de dados de backend.
TDDL-4404 ERR_SEQUENCE_TABLE_META
O esquema da tabela de sequência é inválido.
ERR-CODE: [TDDL-4404][ERR_SEQUENCE_TABLE_META] the meta of sequence table
is error, some columns missed
Colunas obrigatórias estão ausentes na tabela sequence ou sequence_opt.
TDDL-4405 ERR_INIT_SEQUENCE_FROM_DB
Falha na inicialização da sequência.
ERR-CODE: [TDDL-4405][ERR_INIT_SEQUENCE_FROM_DB] init sequence manager
error: *****
O PolarDB-X 1.0 falhou ao inicializar a sequência. O erro específico aparece após init sequence manager error:. Verifique o status de todas as instâncias de backend do ApsaraDB RDS for MySQL.
TDDL-4407 ERR_OTHER_WHEN_BUILD_SEQUENCE
A tabela de sequência está inacessível.
ERR-CODE: [TDDL-4407][ERR_OTHER_WHEN_BUILD_SEQUENCE] error when build
sequence: *****
Ocorreu um erro ao acessar a tabela sequence ou sequence_opt. O erro específico aparece após error when build sequence:. Verifique o status de todas as instâncias de backend do ApsaraDB RDS for MySQL.
DDL-4408 ERR_SEQUENCE_NEXT_VALUE
Falha ao obter o próximo valor de uma sequência.
ERR-CODE: [TDDL-4408][ERR_SEQUENCE_NEXT_VALUE] error when get sequence's
next value, sequence is: *****, error: *****
Este erro ocorre ao recuperar um valor de sequência por meio de uma chave primária de incremento automático do PolarDB-X 1.0 ou da sintaxe <sequence_name>.NEXTVAL. O erro específico aparece após error:. Na maioria dos casos, uma instância de backend do ApsaraDB RDS for MySQL falhou ou está sob carga excessiva. Verifique o status e a carga de trabalho de todas as instâncias de backend.
TDDL-4500 ERR_PARSER
Não foi possível analisar a instrução SQL.
ERR-CODE: [TDDL-4500][ERR_PARSER] not support statement: '*****'
O PolarDB-X 1.0 suporta a sintaxe padrão SQL-92 e extensões compatíveis com MySQL. Verifique se a instrução está em conformidade com a sintaxe SQL e as especificações do MySQL suportadas pelo PolarDB-X 1.0. Para referência, consulte Limites de SQL e a referência de sintaxe SQL padrão.
TDDL-4501 ERR_OPTIMIZER
O otimizador falhou ao processar a instrução SQL.
ERR-CODE: [TDDL-4501][ERR_OPTIMIZER] optimize error by: Unknown column
'*****' in 'order clause'
O otimizador SQL converte instruções em uma árvore de sintaxe interna. Um erro lógico na instrução impede essa conversão. O erro específico aparece após optimize error by:. Corrija a instrução com base na descrição do erro.
TDDL-4502 ERR_OPTIMIZER_MISS_ORDER_FUNCTION_IN_SELECT
Uma coluna retornada por uma função na cláusula ORDER BY está ausente na cláusula SELECT.
ERR-CODE: [TDDL-4502][ERR_OPTIMIZER_MISS_ORDER_FUNCTION_IN_SELECT] Syntax
Error: orderBy/GroupBy Column ***** is not existed in select clause
No PolarDB-X 1.0, quando a cláusula ORDER BY contém uma função que retorna colunas (como RAND()), essas colunas também devem aparecer na cláusula SELECT. Adicione as colunas ausentes à cláusula SELECT.
TDDL-4504 ERR_OPTIMIZER_SELF_CROSS_JOIN
Uma consulta SELF JOIN não possui as condições obrigatórias de chave de shard.
ERR-CODE: [TDDL-4504][ERR_OPTIMIZER_SELF_CROSS_JOIN] self cross join case,
add shard column filter on right table
Para consultas SELF JOIN, a cláusula WHERE deve incluir a chave de shard tanto da tabela à esquerda quanto da tabela à direita. Adicione ambas as chaves de shard à cláusula WHERE.
TDDL-4506 ERR_MODIFY_SHARD_COLUMN
Chaves de shard não podem ser atualizadas com UPDATE.
ERR-CODE: [TDDL-4506][ERR_MODIFY_SHARD_COLUMN] Column '*****' is a sharding
key of table '*****', which is forbidden to be modified.
Atualizar uma chave de shard com UPDATE moveria dados entre shards, operação que o PolarDB-X 1.0 não consegue realizar atomicamente. Use DELETE seguido de INSERT para obter o mesmo resultado.
TDDL-4508 ERR_OPTIMIZER_NOT_ALLOWED_SORT_MERGE_JOIN
A operação sort-merge join não pode ser executada porque faltam condições de junção equivalentes.
ERR-CODE: [TDDL-4508][ERR_OPTIMIZER_NOT_ALLOWED_SORT_MERGE_JOIN] sort merge
join is not allowed when missing equivalent filter
Quando tabelas em uma consulta JOIN residem em diferentes instâncias do ApsaraDB RDS for MySQL, o PolarDB-X 1.0 usa o algoritmo sort-merge join, que exige condições equivalentes nas tabelas da esquerda e da direita. Adicione condições correspondentes de JOIN ou WHERE para ambas as tabelas.
TDDL-4509 ERR_OPTIMIZER_ERROR_HINT
A sintaxe do hint é inválida.
ERR-CODE: [TDDL-4509][ERR_OPTIMIZER_ERROR_HINT] Hint Syntax Error:
unexpected operation: *****.
O PolarDB-X 1.0 não conseguiu analisar o hint na instrução SQL. Para a sintaxe correta de hints, consulte a visão geral de hints.
TDDL-4510 ERR_CONTAINS_NO_SHARDING_KEY
A instrução SQL não contém a chave de shard obrigatória.
ERR-CODE: [TDDL-4510][ERR_CONTAINS_NO_SHARDING_KEY] Your SQL contains NO
SHARDING KEY '*****' for table '*****', which is not allowed in DEFAULT.
Se o recurso de varredura completa de tabela estiver desativado para uma tabela, toda consulta deve incluir a chave de shard na cláusula WHERE. A varredura completa de tabela é ativada por padrão quando o PolarDB-X 1.0 cria uma tabela. Se ela foi desativada manualmente, inclua a chave de shard em todas as consultas que acessarem a tabela.
TDDL-4511 ERR_INSERT_CONTAINS_NO_SHARDING_KEY
A instrução INSERT não contém a chave de shard.
ERR-CODE: [TDDL-4511][ERR_INSERT_CONTAINS_NO_SHARDING_KEY] Your INSERT SQL
contains NO SHARDING KEY '*****' for table '*****'.
Ao inserir dados em uma tabela fragmentada, a instrução INSERT deve incluir a chave de shard, a menos que a chave de shard seja uma chave primária de incremento automático. Adicione a chave de shard à instrução INSERT.
TDDL-4515 ERR_CONNECTION_CHARSET_NOT_MATCH
O conjunto de caracteres da conexão não suporta os caracteres usados na instrução.
ERR-CODE: [TDDL-4515][ERR_CONNECTION_CHARSET_NOT_MATCH] Caused by MySQL's
character_set_connection doesn't match your input charset. Partition DDL can
only take ASCII or chinese column name. If you want use chinese table or
column name, Make sure MySQL connection's charset support chinese character.
Use "set names xxx" to set correct charset.
O PolarDB-X 1.0 suporta caracteres chineses em nomes de tabelas e colunas. Este erro ocorre quando character_set_connection está definido como um conjunto de caracteres que não suporta caracteres chineses (por exemplo, latin1).
Verifique o conjunto de caracteres atual:
SHOW VARIABLES LIKE 'character_set_connection';
Mude para um conjunto de caracteres que suporte caracteres chineses:
SET NAMES <charset>;
Se você se conectar via Java Database Connectivity (JDBC), defina o parâmetro characterEncoding na string de conexão.
TDDL-4516 ERR_TRUNCATED_DOUBLE_VALUE_OVERFLOW
Houve estouro na conversão de ponto flutuante para inteiro.
ERR-CODE: [TDDL-4516][ERR_TRUNCATED_DOUBLE_VALUE_OVERFLOW] Truncated
incorrect DOUBLE value '*****' over column[*****]'s value range.
O resultado da conversão de um número de ponto flutuante para inteiro está fora do intervalo válido da coluna de destino. Verifique os tipos de dados das colunas afetadas e os parâmetros de entrada na instrução SQL.
TDDL-4517 ERR_MODIFY_SYSTEM_TABLE
Tabelas de sistema não podem ser modificadas.
ERR-CODE: [TDDL-4517][ERR_MODIFY_SYSTEM_TABLE] Table '*****' is PolarDB-XSYSTEM
TABLE, which is forbidden to be modified.
O PolarDB-X 1.0 reserva as seguintes tabelas de sistema, que não podem ser modificadas: sequence, sequence_opt, txc_undo_log e __DRDS__SYSTEM__LOCK__. Não use esses nomes ao criar tabelas para dados de negócios.
TDDL-4518 ERR_VALIDATE
Falha na validação de metadados.
ERR-CODE: [TDDL-4518][ERR_VALIDATE] Object 'optest1' not found
Quando um nó de computação recebe uma instrução SQL, ele valida a instrução em relação aos metadados existentes. Este erro significa que a tabela ou coluna referenciada não corresponde aos metadados armazenados. Verifique se os nomes de tabelas e colunas na instrução estão corretos.
TDDL-4600 ERR_FUNCTION
Falha na chamada de função.
ERR-CODE: [TDDL-4600][ERR_FUNCTION] function compute error by Incorrect
parameter count in the call to native function '*****'
A instrução SQL usa sintaxe inválida ou passa parâmetros inválidos para uma função. Verifique se o número e os tipos de dados dos parâmetros correspondem aos requisitos da função.
TDDL-4601 ERR_EXECUTOR
Ocorreu um erro inesperado durante a execução do SQL.
ERR-CODE: [TDDL-4601][ERR_EXECUTOR] only one column is supported in
distinct aggregate
Na maioria dos casos, uma instância de backend do ApsaraDB RDS for MySQL anormal causou este erro. Verifique o status de todas as instâncias de backend.
TDDL-4602 ERR_CONVERTOR
Falha na conversão de tipo de dados.
ERR-CODE: [TDDL-4602][ERR_CONVERTOR] convertor error by Unsupported convert:
[*****]
O PolarDB-X 1.0 não conseguiu converter um tipo de dados durante a execução do SQL. Verifique se a instrução SQL depende de conversão implícita de tipos e use valores explícitos do mesmo tipo.
TDDL-4603 ERR_ACCROSS_DB_TRANSACTION
Transações entre bancos de dados não são suportadas pela política de transação atual.
ERR-CODE: [TDDL-4603][ERR_ACCROSS_DB_TRANSACTION] Transaction accross db is
not supported in current transaction policy, transaction node is: {0}, but
this sql execute on: *****.
O PolarDB-X 1.0 suporta apenas transações de banco de dados único. Todas as instruções SQL dentro de uma transação devem ser roteadas para o mesmo shard de banco de dados do ApsaraDB RDS for MySQL. Garanta que as regras de encaminhamento direcionem todas as instruções da transação para o mesmo shard.
TDDL-4604 ERR_CONCURRENT_TRANSACTION
Transações aninhadas não são suportadas.
ERR-CODE: [TDDL-4604][ERR_CONCURRENT_TRANSACTION] Concurrent query is not
supported on transaction group, transaction group is: {0}.
O PolarDB-X 1.0 não suporta transações aninhadas. Iniciar mais de uma transação por vez na mesma conexão aciona este erro. Abstraia o gerenciamento de transações em um framework na camada de aplicação para evitar transações aninhadas.
TDDL-4606 ERR_QUERY_CANCLED
A instrução SQL foi cancelada.
ERR-CODE: [TDDL-4606][ERR_QUERY_CANCLED] Getting connection is not allowed
when query has been cancled, group is *****
Uma instrução KILL cancelou a instrução SQL em execução. Se este erro ocorrer frequentemente, verifique se algum cliente ou aplicação está emitindo instruções KILL.
TDDL-4607 ERR_INSERT_WHEN_UPDATE
A operação interna de DELETE e INSERT que substitui um UPDATE em uma chave de shard falhou.
ERR-CODE: [TDDL-4607][ERR_INSERT_WHEN_UPDATE] Insert new values error,
table is: *****, old Values: *****, new Values: *****
Quando o recurso de atualização de chave de shard está ativado, o PolarDB-X 1.0 reescreve instruções de UPDATE de chave de shard como operações de DELETE e INSERT. Na maioria dos casos, este erro significa que uma instância de backend do ApsaraDB RDS for MySQL falhou. Verifique o status de todas as instâncias de backend.
TDDL-4610 ERR_CONNECTION_CLOSED
A conexão está fechada.
ERR-CODE: [TDDL-4610][ERR_CONNECTION_CLOSED] connection has been closed
Após a falha de uma instrução em uma transação ou o cancelamento por uma instrução KILL, o PolarDB-X 1.0 fecha a conexão. Instruções subsequentes na mesma conexão retornam este erro. Feche a conexão e abra uma nova.
TDDL-4636 ERR_DDL_JOB_ERROR
A instrução DDL falhou.
ERR-CODE: [PXC-4636][ERR_DDL_JOB_ERROR] xxxx
Para etapas de solução de problemas, consulte Tratar exceções de DDL.
TDDL-4642 ERR_UNKNOWN_TABLE
A tabela não existe no banco de dados.
ERR-CODE: [PXC-4642][ERR_UNKNOWN_TABLE] Unknown table XX.XX
Verifique se a tabela existe no banco de dados atual.
TDDL-1305 ERR_UNKNOWN_SAVEPOINT
O savepoint especificado não existe.
ERR-CODE: [TDDL-1305][ERR_UNKNOWN_SAVEPOINT] SAVEPOINT ***** does not exist
Este erro é retornado quando uma instrução ROLLBACK TO SAVEPOINT ou RELEASE SAVEPOINT referencia um savepoint que nunca foi criado. Verifique o nome do savepoint usado na instrução SAVEPOINT.
TDDL-1094 ERR_UNKNOWN_THREAD_ID
O ID de sessão na instrução KILL não existe.
ERR-CODE: [TDDL-1094][ERR_UNKNOWN_THREAD_ID] Unknown thread id: *****
O ID de sessão especificado não existe ou a instrução SQL já terminou. Execute SHOW PROCESSLIST para obter o ID de sessão atual da instrução alvo e use esse ID na instrução KILL.
TDDL-4612 ERR_CHECK_SQL_PRIV
Permissões insuficientes para executar a instrução SQL.
ERR-CODE: [TDDL-4612][ERR_CHECK_SQL_PRIV] check user ***** on db *****
sql privileges failed.
O PolarDB-X 1.0 utiliza um sistema de contas e permissões semelhante ao do MySQL. A conta usada para executar a instrução não possui as permissões necessárias. Verifique as permissões da conta no banco de dados do PolarDB-X 1.0 e conceda as permissões necessárias no console do PolarDB-X 1.0.
TDDL-4613 ERR_INSERT_SELECT
Uma instrução INSERT ... SELECT falhou.
ERR-CODE: [TDDL-4613][ERR_INSERT_SELECT] insert error, table is: *****,
values: *****
O PolarDB-X 1.0 divide instruções INSERT ... SELECT entre bancos de dados em operações separadas de SELECT e INSERT em lote. Na maioria dos casos, este erro significa que uma instância de backend do ApsaraDB RDS for MySQL falhou. Verifique o status de todas as instâncias de backend.
TDDL-4614 ERR_EXECUTE_ON_MYSQL
Ocorreu um erro quando o PolarDB-X 1.0 executou a instrução SQL em uma instância de backend do ApsaraDB RDS for MySQL.
ERR-CODE: [TDDL-4614][ERR_EXECUTE_ON_MYSQL] Error occurs when execute on
GROUP '*****': Duplicate entry '*****' for key 'PRIMARY'
O final da mensagem de erro contém o erro retornado diretamente pela instância de backend. Erros comuns de backend incluem:
|
Erro de backend |
Significado |
|
|
Ocorreu um conflito de chave primária ao gravar na tabela. |
|
|
A tabela temporária usada pelo ApsaraDB RDS for MySQL está cheia. Redimensione a tabela temporária ou otimize a instrução SQL. |
|
|
Ocorreu um deadlock devido a conflitos de transações de escrita concorrentes. |
Resolva o problema com base na mensagem de erro específica do backend. Para referência, consulte a documentação de tratamento de erros do MySQL 5.6.
TDDL-4615 ERR_CROSS_JOIN_SIZE_PROTECTION
O número de linhas retornadas da tabela à direita em uma consulta JOIN distribuída excedeu o limite.
ERR-CODE: [TDDL-4615][ERR_CROSS_JOIN_SIZE_PROTECTION] across join table
size protection, check your sql or enlarge the limination size.
Quando o PolarDB-X 1.0 executa uma consulta JOIN distribuída usando nested loop join, grandes conjuntos de resultados da tabela à direita consomem memória significativa e afetam a estabilidade. O limite padrão é de 5.000 linhas da tabela à direita.
Otimize a instrução SQL para reduzir o conjunto de resultados da tabela à direita ou use o algoritmo sort-merge join.
Se for necessário aumentar o limite para uma instrução específica, considere as implicações de memória:
Com 100 KB por linha e 5.000 linhas, o join requer 500 MB de memória.
Executar a mesma consulta em cinco conexões simultâneas requer 2,5 GB.
Não aumente o limite para registros maiores que 100 KB.
Para substituir o limite em uma instrução específica, adicione um hint no início:
/*!TDDL:MAX_ROW_RETURN_FROM_RIGHT_INDEX_NESTED_LOOP=5100*/ SELECT ...
TDDL-4616 ERR_UNKNOWN_DATABASE
O nome do banco de dados especificado é inválido.
ERR-CODE: [TDDL-4616][ERR_UNKNOWN_DATABASE] Unknown database '*****'
O nome do banco de dados na instrução DDL não corresponde ao nome fornecido pelo PolarDB-X 1.0. Atualize a instrução DDL para usar o nome correto do banco de dados.
TDDL-4617 ERR_SUBQUERY_LIMIT_PROTECTION
O número de linhas retornadas por uma subconsulta excedeu o limite.
ERR-CODE: [TDDL-4617][ERR_SUBQUERY_LIMIT_PROTECTION] The number of rows
returned by the subquery exceeds the maximum number of 20000.
Quando uma subconsulta retorna mais de 20.000 linhas, o PolarDB-X 1.0 bloqueia a execução para proteger a estabilidade do sistema. Otimize a subconsulta para reduzir seu conjunto de resultados ou reescreva-a como uma consulta JOIN para que o PolarDB-X 1.0 possa usar um algoritmo mais eficiente, como sort-merge join.
TDDL-4994 ERR_FLOW_CONTROL
A limitação de taxa de requisições foi acionada.
ERR-CODE: [TDDL-4994][ERR_FLOW_CONTROL] [*****] flow control by *****
O número de requisições SQL processadas pelo PolarDB-X 1.0 atingiu o limite e a requisição atual foi rejeitada. Verifique se a taxa de pico de requisições está dentro do intervalo esperado.
TDDL-4998 ERR_NOT_SUPPORT
A sintaxe ou recurso SQL não é suportado.
ERR-CODE: [TDDL-4998][ERR_NOT_SUPPORT] ***** not support yet!
A sintaxe ou recurso SQL que você está usando não é suportado pelo PolarDB-X 1.0.
TDDL-5001 ERR_TRANS
Ocorreu um erro de transação.
ERR-CODE: [TDDL-5001][ERR_TRANS] Too many lines updated in statement.
Resolva o erro com base na mensagem específica:
Too many lines updated in statement: A instruçãoUPDATEexcede o limite de 1.000 linhas. Verifique a cláusulaWHERE. Para atualizar mais linhas em uma única transação, use o hint/*TDDL:UNDO_LOG_LIMIT={number}*/para aumentar o limite.-
Deferred execution is only supported in Flexible or XA Transaction: O recurso de execução adiada (/*TDDL:DEFER*/) exige que a política de transação esteja definida como Flexible ou XA. Execute a seguinte instrução para alterar a política antes de usar a execução adiada:SET drds_transaction_policy = <policy>;
TDDL-5002 ERR_TRANS_UNSUPPORTED
A sintaxe ou recurso usado na transação não é suportado.
ERR-CODE: [TDDL-5002][ERR_TRANS_UNSUPPORTED] Table without primary keys is not
supported.
O recurso ou sintaxe não é suportado para transações do PolarDB-X 1.0.
TDDL-5003 ERR_TRANS_LOG
Os logs de transação estão inacessíveis.
ERR-CODE: [TDDL-5003][ERR_TRANS_LOG] Failed to update transaction state: *****
Durante uma transação distribuída, o PolarDB-X 1.0 grava logs de transação nas instâncias de backend do ApsaraDB RDS for MySQL para garantir a atomicidade. Este erro significa que a leitura ou escrita do log de transação falhou. Verifique o status e a carga de trabalho de todas as instâncias de backend.
TDDL-5004 ERR_TRANS_NOT_FOUND
O ID de transação especificado não existe.
ERR-CODE: [TDDL-5008][ERR_TRANS_TERMINATED] Current transaction was killed
or timeout. You may need to set a longer timeout value.
A transação especificada foi encerrada por uma instrução KILL ou expirou. O período de tempo limite é controlado pelo parâmetro drds_transaction_timeout.
Se este erro for retornado devido a um tempo limite de transação, aumente o valor do tempo limite:
SET drds_transaction_timeout = <value_in_milliseconds>;
TDDL-5006 ERR_TRANS_COMMIT
O PolarDB-X 1.0 falhou ao confirmar uma transação.
ERR-CODE: [TDDL-5006][ERR_TRANS_COMMIT] Failed to commit primary group *****:
*****, TRANS_ID = *****
Quando uma confirmação falha, a transação é revertida automaticamente. TRANS_ID é o ID da transação. Na maioria dos casos, a causa subjacente é uma falha na instância de backend do ApsaraDB RDS for MySQL. Verifique o status e a carga de trabalho de todas as instâncias de backend.
TDDL-5007 ERR_TRANS_PARAM
O valor do parâmetro de transação é inválido.
ERR-CODE: [TDDL-5007][ERR_TRANS_PARAM] Illegal timeout value: *****
Um parâmetro de transação foi definido com um valor inválido. Por exemplo, drds_transaction_timeout foi definido como um número negativo. Verifique o intervalo de valores válidos para o parâmetro e defina-o corretamente.
TDDL-5008 ERR_TRANS_TERMINATED
A transação foi encerrada ou expirou.
ERR-CODE: [TDDL-5008][ERR_TRANS_TERMINATED] Current transaction was killed
or timeout. You may need to set a longer timeout value.
A transação foi encerrada por uma instrução KILL ou excedeu o tempo limite definido por drds_transaction_timeout. Se a causa for um tempo limite, aumente o valor do tempo limite:
SET drds_transaction_timeout = <value_in_milliseconds>;