Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como ler arquivos de log binários do MySQL (BinLog) com mysqlbinlog


O servidor de banco de dados MySQL gera arquivos de log binários para cada transação nos bancos de dados, desde que o administrador não desabilite ou comente o parâmetro “log-bin” no arquivo de configuração my.cny. Os arquivos de log binários são gravados em formato binário. Embora os logs binários, ou também conhecidos como logbin, sejam usados ​​principalmente para fins de replicação do banco de dados MySQL, às vezes você pode precisar examinar ou ler o conteúdo dos logs binários em formato de texto, onde o utilitário mysqlbinlog será útil.

O arquivo de log binário, que normalmente tem nome com o formato host_name-bin.xxxxxx e armazenado no diretório /var/lib/mysql, não pôde ser aberto e lido imediatamente, pois está em formato binário ilegível. Para ler os logs binários em formato de texto, podemos usar o comando mysqlbinlog, que também é capaz de ler arquivos de log de retransmissão escritos por um servidor escravo em uma configuração de replicação. Os logs de retransmissão têm o mesmo formato dos arquivos de log binários.

Para usar o utilitário mysqlbinlog é simples, basta usar a seguinte sintaxe de comando para invocar mysqlbinlog após o login como root (senão você tem que especificar nome de usuário e senha) para shell via SSH:
mysqlbinlog [options] log_file ...

Portanto, para ler e exibir o conteúdo do arquivo de log binário chamado binlog.000001, use este comando:
mysqlbinlog binlog.000001

Os arquivos de log binários e seus dados provavelmente serão muito grandes, tornando quase impossível ler qualquer coisa na tela. No entanto, você pode canalizar a saída do mysqlbinlog para um arquivo que pode ser aberto para navegação posterior no editor de texto, usando o seguinte comando:
mysqlbinlog binlog.000001 > filename.txt

Para reduzir a quantidade de dados recuperados de logs binários, existem várias opções que podem ser usadas para limitar os dados retornados. Entre os úteis estão listados abaixo:

–start-datetime=datetime

Comece a ler o log binário no primeiro evento com um timestamp igual ou posterior ao argumento datetime. O valor datetime é relativo ao fuso horário local na máquina onde você executa mysqlbinlog. O valor deve estar em um formato aceito para os tipos de dados DATETIME ou TIMESTAMP. Por exemplo:
mysqlbinlog --start-datetime="2005-12-25 11:25:56" binlog.000001

–stop-datetime=datetime

Pare de ler o log binário no primeiro evento com um timestamp igual ou posterior ao argumento datetime. Essa opção é útil para recuperação pontual. Consulte a descrição da opção –start-datetime para obter informações sobre o valor datetime.

–start-position=N

Comece a ler o log binário no primeiro evento com uma posição igual ao argumento N. Essa opção se aplica ao primeiro arquivo de log nomeado na linha de comando.

–stop-position=N

Pare de ler o log binário no primeiro evento com uma posição igual ou maior que o argumento N. Essa opção se aplica ao último arquivo de log nomeado na linha de comando.

Para obter mais informações sobre o uso do mysqlbinlog, visite aqui.