Esse artigo faz parte da revista SQL Magazine edição 49. Clique aqui para ler todos os artigos desta edição

Imagem

Clique aqui para ler esse artigo em PDF.Imagem

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                       |       |

| log_queries_not_using_indexes   | OFF   |

| log_slave_updates               | OFF   |

| log_slow_queries                | OFF   |

| log_warnings                    | 1     |

+---------------------------------+-------+

8 rows in set (0.00 sec)

 

A partir da análise da Listagem 1 percebe-se que todos os logs estão desligados, com exceção do log de erro. Neste caso, o MySQL sempre apresenta o campo vazio ao lado da variável log_error, mas isto não significa que o mesmo está desligado.

Vale ressaltar que por padrão o MySQL armazena todos os arquivos de log dentro do diretório de dados do sistema. No processo de configuração dos logs pode-se indicar onde estes arquivos serão gerados, possibilitando assim organizá-los de forma mais adequada às configurações de discos do seu sistema.

Nas seções seguintes serão descritos cada um destes arquivos de log, salientando as suas características e descrevendo todas as suas propriedades.

...

Quer ler esse conteúdo completo? Tenha acesso completo