Todos os produtos
Search
Central de documentação

ApsaraDB RDS:FAQ about the general query log of ApsaraDB RDS for MySQL

Última atualização: Jun 26, 2026

O log de consultas gerais registra todas as instruções SQL executadas na instância: consultas, inserções, atualizações e exclusões. Em instâncias com alta carga de trabalho, esse log pode crescer rapidamente, causar esgotamento do armazenamento, contenção de bloqueios e aumentar o tempo de recuperação após falhas.

Por padrão, o ApsaraDB RDS for MySQL armazena o log de consultas gerais no formato TABLE . Logs armazenados no formato FILE não podem ser consultados nem baixados, pois o acesso direto ao sistema de arquivos da instância não é permitido. O parâmetro log_output controla o formato de saída do log de consultas gerais e do log de consultas lentas. Como o RDS utiliza um mecanismo de rotação que exige o formato TABLE para logs de consultas lentas, o log de consultas gerais também deve usar o formato TABLE .

Visão geral dos parâmetros de log

Parâmetro

Padrão

Descrição

general_log

OFF

Ativa ou desativa o log de consultas gerais

log_output

TABLE

Formato de saída. TABLE grava em mysql.general_log; FILE grava no sistema de arquivos (baixe não suportado no RDS)

general_log_size (somente leitura)

Métrica de monitoramento que indica o tamanho atual da tabela do log de consultas gerais

Por que o log de consultas gerais consome todo o espaço de armazenamento?

Em instâncias com alto tráfego ou sem limpeza recente, o log de consultas gerais cresce indefinidamente. Para verificar se essa é a causa, visualize o uso de armazenamento da instância e procure um valor elevado em general_log_size.

Para recuperar espaço de armazenamento, siga as etapas em Limpar o log de consultas gerais.

Por que vejo muitas conexões no estado "Waiting for table level lock"?

Execute SHOW PROCESSLIST ou consulte a tabela innodb_trx para verificar. Se muitas conexões exibirem Waiting for table level lock combinadas com alta contagem de conexões e utilização elevada de CPU, provavelmente o log de consultas gerais é a causa.

Como o log é armazenado como tabela, as threads gravam nele de forma serial. Cada gravação adquire um bloqueio de metadados (MDL) e um bloqueio no nível da tabela. Sob alto volume de gravações, esses bloqueios formam fila e impedem outras conexões.

Desative o log de consultas gerais para interromper novas contenções de bloqueio e limpe a tabela de log. Consulte Limpar o log de consultas gerais.

Por que minha instância demora muito para se recuperar após um desligamento inesperado?

Quando uma instância é desligada inesperadamente, uma marca de falha é definida no log de consultas gerais. Na próxima reinicialização, o MySQL inicia automaticamente um processo de recuperação da tabela de log. Quanto maior a tabela, mais longa será a recuperação. Durante esse período, a instância fica indisponível, o que aumenta o Objetivo de Tempo de Recuperação (RTO).

Manter o log de consultas gerais desativado durante operações normais e limpar a tabela regularmente mantém a tabela pequena e acelera a recuperação.

Limpar o log de consultas gerais

  1. Desative o log de consultas gerais: defina o parâmetro general_log como OFF. Isso impede a gravação de novas entradas no log. Para obter instruções, consulte Definir parâmetros da instância.

  2. Conecte-se à instância com uma conta privilegiada e execute:

    TRUNCATE TABLE mysql.general_log;

    Após a conclusão do comando, verifique o resultado na página de monitoramento da instância. O valor de general_log_size deve cair para próximo de zero.

O comando TRUNCATE TABLE mysql.general_log não é suportado em instâncias do ApsaraDB RDS for MySQL 5.6. Entre em contato com o suporte para limpar o log no MySQL 5.6.

Melhores práticas

Mantenha o log de consultas gerais desativado durante operações normais. Ative-o apenas temporariamente para depuração ou solução de problemas. Em seguida, limpe-o e desative-o imediatamente.

Para análise e auditoria contínua de SQL, utilize uma das alternativas abaixo:

  • **(Recomendado) SQL Explorer and Audit**: Registra e analisa automaticamente as instruções SQL executadas. Os dados de auditoria ficam armazenados no Database Autonomy Service (DAS), sem consumir espaço de armazenamento da instância RDS ou afetar seu desempenho.

  • Log de consultas gerais temporário: Ative o log de consultas gerais provisoriamente, consulte a tabela de log e, ao terminar, desative-o e limpe-o:

    SELECT * FROM mysql.general_log;

Próximas etapas