Clique aqui para ler esse artigo em PDF.
Mecanismos de logs e auditoria em MySQL
Dentre as várias atividades desenvolvidas pelo administrador de banco de dados (DBA), uma das mais importantes é o diagnóstico de problemas de execução do SGBD, bem como o monitoramento das operações realizadas pelos usuários do banco.
O SBGD deve prover mecanismos que permitam aos DBAs auditar os comandos executados, a fim de diagnosticar eventuais exclusões e/ou alterações indevidas de dados. Além disto, para efeito de otimização e ajustes de parâmetros do sistema, é muito importante ter-se uma métrica clara de quais os comandos são submetidos ao banco. Desta forma, é possível atuar nas consultas mais complexas e mais freqüentes no intuito de reduzir o seu tempo de execução, eliminando assim os gargalos de desempenho.
O MySQL provê mecanismos para gravar as consultas em arquivos (log), permitindo assim a visualização de toda a atividade do servidor. Existem quatro arquivos de log no MySQL que armazenam informações variadas acerca da execução do SGBD.
Neste artigo, serão apresentados o log de erro, o query log, o slow log e o log binário. O objetivo é apresentar as funcionalidades de cada um destes logs, bem como apresentar uma configuração recomendada para os mesmos. Além disto, serão apresentados os métodos para ligar e desligar estes logs, possibilitando a utilização de um perfil mais adequado para cada tipo de aplicação.
Configurações iniciais dos arquivos de log
Até a versão 5.0 do MySQL, todos os logs são gravados em arquivos. Portanto, habilitar estes logs acarreta uma sobrecarga em termos de operações de I/O do sistema operacional, que são instruções em geral lentas. Além disto, há uma demanda por espaço em disco, uma vez que mais informações serão gravadas durante a execução do SGBD.
As configurações padrão do MySQL trazem todos os logs desabilitados para que o mesmo possa ser utilizado sem um consumo excessivo de disco. A exceção para isto é o log de erro, que estará sempre habilitado e não há como mudar este comportamento, pois este log é de extrema importância para a detecção de falhas do sistema, conforme descrito na seção seguinte.
As configurações de log podem ser examinadas utilizando-se o comando SHOW VARIABLES, conforme ilustra a Listagem 1.
Listagem 1. Visualizando as configurações de log do MySQL.
mysql> SHOW VARIABLES LIKE "log%";
+---------------------------------+-------+
| Variable_name | Value |
+---------------------------------+-------+
| log | OFF |
| log_bin | OFF |
| log_bin_trust_function_creators | OFF |
| log_error " [...] continue lendo...