Acessar os logs gerais e de consultas lentas do MariaDB - Amazon Relational Database Service

Acessar os logs gerais e de consultas lentas do MariaDB

É possível gravar o log de consultas lentas do MariaDB e o log geral em um arquivo ou uma tabela de banco de dados definindo parâmetros em seu grupo de parâmetros de banco de dados. Para obter informações sobre como criar e modificar um grupo de parâmetros de banco de dados, consulte Grupos de parâmetros para Amazon RDS. Você deve definir esses parâmetros antes de visualizar o log de consultas lentas ou o log geral no console do Amazon RDS ou usando a API do Amazon RDS, a AWS CLI ou os SDKs da AWS.

Você pode controlar o registro em log do MariaDB usando os parâmetros nessa lista:

  • slow_query_log ou log_slow_query: para criar o log de consultas lentas, defina como 1. O padrão é 0.

  • general_log: para criar o log geral, defina como 1. O padrão é 0.

  • long_query_time ou log_slow_query_time: para evitar que as consultas de execução rápida sejam registradas no log de consultas lentas, especifique um valor para o tempo de execução de consultas mais curto a ser registrado, em segundos. O padrão é 10 segundos; o mínimo é 0. Se log_output = FILE, você poderá especificar um valor de ponto flutuante com resolução por microssegundo. Se log_output = TABLE, você deverá especificar um valor inteiro com a segunda resolução. Apenas as consultas cujo tempo de execução excede o valor long_query_time ou log_slow_query_time são registradas em log. Por exemplo, definir long_query_time ou log_slow_query_time como 0,1 impede que qualquer consulta que seja executada por menos de 100 milissegundos seja registrada.

  • log_queries_not_using_indexes: para registrar todas as consultas que não usam um índice no log de consultas lentas, defina esse parâmetro como 1. O padrão é 0. As consultas que não usam um índice são registradas em log, mesmo que seu tempo de execução seja inferior ao valor do parâmetro long_query_time.

  • log_output option: você pode especificar uma das seguintes opções para o parâmetro log_output:

    • TABLE (padrão): grava consultas gerais na tabela mysql.general_log e consultas lentas na tabela mysql.slow_log.

    • FILE: grave logs de consultas gerais e lentas no sistema de arquivos. Arquivos de log são rotacionados de hora em hora.

    • NONE: desabilite o registro em log.

Quando o registro em log está habilitado, o Amazon RDS faz o rodízio de logs de tabelas ou exclui arquivos de log em intervalos regulares. Essa medida é uma precaução para reduzir a possibilidade de um arquivo de log grande bloquear o uso do banco de dados ou afetar a performance. O registro em log FILE e TABLE abordam o rodízio e a exclusão da seguinte maneira:

  • Quando o registro em log FILE está habilitado, os arquivos de log são examinados a cada hora, e os arquivos de log com mais de 24 horas são excluídos. Em alguns casos, o tamanho do arquivo de log combinado restante após a exclusão pode exceder o limite de 2% do espaço alocado da instância de um banco de dados. Nesses casos, os arquivos de log maiores são excluídos até que o tamanho de arquivo de log não exceda o limite.

  • Quando o registro de TABLE estiver ativado, em alguns casos as tabelas de log serão rotacionadas a cada 24 horas. Essa alternância ocorrerá se o espaço utilizado pelos logs de tabelas for superior a 20% do espaço de armazenamento alocado. Isso também ocorrerá se o tamanho de todos os logs combinados for superior a 10 GB. Se a quantidade de espaço usada por uma instância de banco de dados for maior que 90% do espaço de armazenamento alocado da instância de banco de dados, os limites para a alternância do log serão reduzidos. As tabelas de logs serão, então, alternadas se o espaço utilizado pelos logs de tabelas for superior a 10% do espaço de armazenamento alocado. Eles também serão alternados se o tamanho de todos os logs combinados for superior a 5 GB.

    Quando as tabelas de log são revezadas, a tabela de log atual é copiada para uma tabela de log de backup e as entradas na tabela de log atual são removidas. Se a tabela de log de backup já existir, então ela será excluída antes que a tabela de log atual seja copiada ao backup. Você pode consultar a tabela de log de backup, se necessário. A tabela de log de backup para a tabela mysql.general_log é denominada mysql.general_log_backup. A tabela de log de backup para a tabela mysql.slow_log é denominada mysql.slow_log_backup.

    Você pode rotacionar a tabela mysql.general_log chamando o procedimento mysql.rds_rotate_general_log. Você pode rotacionar a tabela mysql.slow_log chamando o procedimento mysql.rds_rotate_slow_log.

    Os logs de tabelas são rotacionados durante um upgrade de versão do banco de dados.

O Amazon RDS registra o rodízio dos logs TABLE e FILE em um evento do Amazon RDS e envia uma notificação para você.

Para trabalhar com os logs no console do Amazon RDS, na API do Amazon RDS, na CLI do Amazon RDS ou nos SDKs da AWS, defina o parâmetro log_output como FILE. Como o log de erros do MariaDB, esses arquivos de log são rotacionados por hora. Os arquivos de log que foram gerados durante as 24 horas anteriores são retidos.

Para obter mais informações sobre os log de consultas gerais e de consultas lentas, acesse os seguintes tópicos na documentação do MariaDB: