sql >> Base de Datos >  >> RDS >> Mysql

Cómo leer archivos de registro binarios de MySQL (BinLog) con mysqlbinlog

El servidor de base de datos MySQL genera archivos de registro binarios para cada transacción a las bases de datos, siempre que el administrador no deshabilite o comente el parámetro "log-bin" en el archivo de configuración my.cny. Los archivos de registro binarios se escriben en formato binario. Aunque los registros binarios, o también conocidos como logbin, se utilizan principalmente para fines de replicación de bases de datos MySQL, a veces es posible que necesite examinar o leer el contenido de los registros binarios en formato de texto, donde la utilidad mysqlbinlog será útil.

El archivo de registro binario, que normalmente tiene un nombre con el formato host_name-bin.xxxxxx y se almacena en el directorio /var/lib/mysql, no se pudo abrir ni leer de inmediato porque está en un formato binario ilegible. Para leer los registros binarios en formato de texto, podemos utilizar el comando mysqlbinlog, que también puede leer archivos de registro de retransmisión escritos por un servidor esclavo en una configuración de replicación. Los registros de retransmisión tienen el mismo formato que los archivos de registro binarios.

Usar la utilidad mysqlbinlog es simple, simplemente use la siguiente sintaxis de comando para invocar mysqlbinlog después de iniciar sesión como root (de lo contrario, debe especificar el nombre de usuario y la contraseña) para shell a través de SSH:

mysqlbinlog [options] log_file ...

Entonces, para leer y mostrar el contenido del archivo de registro binario llamado binlog.000001, use este comando:

mysqlbinlog binlog.000001

Es probable que los archivos de registro binarios y sus datos sean muy grandes, lo que hace que sea casi imposible leer nada en la pantalla. Sin embargo, puede canalizar la salida de mysqlbinlog a un archivo que se puede abrir para navegar más tarde en el editor de texto, usando el siguiente comando:

mysqlbinlog binlog.000001 > filename.txt

Para reducir la cantidad de datos recuperados de los registros binarios, existen varias opciones que se pueden usar para limitar los datos que se devuelven. Entre los útiles se enumeran a continuación:

–start-datetime=fechahora

Comience a leer el registro binario en el primer evento que tenga una marca de tiempo igual o posterior al argumento de fecha y hora. El valor de fecha y hora es relativo a la zona horaria local en la máquina donde ejecuta mysqlbinlog. El valor debe estar en un formato aceptado para los tipos de datos DATETIME o TIMESTAMP. Por ejemplo:

mysqlbinlog --start-datetime="2005-12-25 11:25:56" binlog.000001

–stop-datetime=datetime

Deje de leer el registro binario en el primer evento que tenga una marca de tiempo igual o posterior al argumento de fecha y hora. Esta opción es útil para la recuperación de un punto en el tiempo. Consulte la descripción de la opción –start-datetime para obtener información sobre el valor de fecha y hora.

–posición-inicial=N

Comience a leer el registro binario en el primer evento que tenga una posición igual al argumento N. Esta opción se aplica al primer archivo de registro nombrado en la línea de comando.

–stop-position=N

Deje de leer el registro binario en el primer evento que tenga una posición igual o mayor que el argumento N. Esta opción se aplica al último archivo de registro nombrado en la línea de comandos.

Para obtener más información sobre el uso de mysqlbinlog, visite aquí.