El registro binario de MySQL (binlog) usa el análisis (2): usa el comando mysqlbinlog para ver la información del registro

El registro binario de MySQL (binlog) usa el análisis (2): usa el comando mysqlbinlog para ver la información del registro

De forma predeterminada, el registro binlog es un archivo binario y no se puede ver directamente. La función del comando mysqlbinlog es convertir los registros binlog de Mysql en declaraciones Mysql. El formato del comando mysqlbinlog es el siguiente:

1. Funciones básicas

mysqlbinlog 日志文件名;

Descripción: muestra la información del archivo de registro directamente en la pantalla.

El resultado de la ejecución del comando es el siguiente:

[root@localhost wgx]# mysqlbinlog /var/lib/mysql/mysql-bin.000001
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
# at 4
#200703 11:57:47 server id 2  end_log_pos 123 CRC32 0x4f25334b 	Start: binlog v 4, server v 5.7.27-log created 200703 11:57:47 at startup
ROLLBACK/*!*/;
BINLOG '
u6z+Xg8CAAAAdwAAAHsAAAAAAAQANS43LjI3LWxvZwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAC7rP5eEzgNAAgAEgAEBAQEEgAAXwAEGggAAAAICAgCAAAACgoKKioAEjQA
AUszJU8=
'/*!*/;

.......

# at 692
#200703 12:05:38 server id 2  end_log_pos 692 CRC32 0x4b642e50 	Intvar
SET INSERT_ID=1/*!*/;
#200703 12:05:38 server id 2  end_log_pos 801 CRC32 0x8929f76f 	Query	thread_id=2	exec_time=0	error_code=0
SET TIMESTAMP=1593749138/*!*/;
insert into t2(name) values('Jack')
/*!*/;
# at 801
#200703 12:05:38 server id 2  end_log_pos 832 CRC32 0x6e8cf9f7 	Xid = 12
COMMIT/*!*/;
# at 832
#200703 12:06:15 server id 2  end_log_pos 879 CRC32 0x3497fb32 	Rotate to mysql-bin.000002  pos: 4
SET @@SESSION.GTID_NEXT= 'AUTOMATIC' /* added by mysqlbinlog */ /*!*/;
DELIMITER ;
# End of log file
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;

2. Exporte la información del archivo de registro a un archivo de texto.

Utilice el parámetro [-r] o el símbolo de redirección (>), el formato es el siguiente:

mysqlbinlog -r 日志文件名 文本文件名;
mysqlbinlog 日志文件名 > 文本文件名;

P.ej:

[root@localhost wgx]# mysqlbinlog /var/lib/mysql/mysql-bin.000001 > /tmp/log_bak001.sql
[root@localhost wgx]# mysqlbinlog -r /var/lib/mysql/mysql-bin.000001 /tmp/log_bak002.sql
[root@localhost wgx]# ls /tmp/
log_bak001.sql  log_bak002.sql

3. Exportar binlog de la base de datos

Utilice el parámetro [-d] para exportar la información de registro de una determinada operación de la base de datos, el formato es el siguiente:

mysqlbinlog -d 数据库名称 日志文件名 > 文本文件名;

Por ejemplo, exportar información de registro de operaciones relacionada con la base de datos [hist]:

[root@localhost wgx]# mysqlbinlog -d hist /var/lib/mysql/mysql-bin.000001 > /tmp/log_bak004.sql
[root@localhost wgx]# 

4. Salida de información de registro en la ubicación especificada

Utilice los parámetros [–start-position] y [–stop-position] para generar información de registro entre [–start-position] y [–stop-position].
Si se
omite la opción [–stop-position], se emitirá la información del registro desde [–start-position] hasta el final; si se omite la opción [–start-position], se generará el registro desde el principio hasta la [–stop-position] información;

Por ejemplo:
(1) Información de registro de salida entre 1315 y 1451:

[root@localhost wgx]# mysqlbinlog --start-position=1315 --stop-position=1451 /var/lib/mysql/mysql-bin.000001
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
# at 4
#200703 22:27:21 server id 2  end_log_pos 123 CRC32 0x41949ba4 	Start: binlog v 4, server v 5.7.27-log created 200703 22:27:21 at startup
# Warning: this binlog is either in use or was not closed properly.
ROLLBACK/*!*/;
BINLOG '
SUD/Xg8CAAAAdwAAAHsAAAABAAQANS43LjI3LWxvZwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAABJQP9eEzgNAAgAEgAEBAQEEgAAXwAEGggAAAAICAgCAAAACgoKKioAEjQA
AaSblEE=
'/*!*/;
# at 1315
#200703 22:36:34 server id 2  end_log_pos 1451 CRC32 0x8fb104a1 	Query	thread_id=4	exec_time=0	error_code=0
use `wgx`/*!*/;
SET TIMESTAMP=1593786994/*!*/;
SET @@session.pseudo_thread_id=4/*!*/;
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/;
SET @@session.sql_mode=1436549152/*!*/;
SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/;
/*!\C utf8 *//*!*/;
SET @@session.character_set_client=33,@@session.collation_connection=33,@@session.collation_server=33/*!*/;
SET @@session.lc_time_names=0/*!*/;
SET @@session.collation_database=DEFAULT/*!*/;
create table t1(id int primary key auto_increment,name char(20))
/*!*/;
SET @@SESSION.GTID_NEXT= 'AUTOMATIC' /* added by mysqlbinlog */ /*!*/;
DELIMITER ;
# End of log file
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;

(2) Información de registro de salida desde el principio del archivo a 154

[root@localhost wgx]# mysqlbinlog --stop-position=154 /var/lib/mysql/mysql-bin.000001
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
# at 4
#200703 22:27:21 server id 2  end_log_pos 123 CRC32 0x41949ba4 	Start: binlog v 4, server v 5.7.27-log created 200703 22:27:21 at startup
# Warning: this binlog is either in use or was not closed properly.
ROLLBACK/*!*/;
BINLOG '
SUD/Xg8CAAAAdwAAAHsAAAABAAQANS43LjI3LWxvZwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAABJQP9eEzgNAAgAEgAEBAQEEgAAXwAEGggAAAAICAgCAAAACgoKKioAEjQA
AaSblEE=
'/*!*/;
# at 123
#200703 22:27:21 server id 2  end_log_pos 154 CRC32 0xa490108e 	Previous-GTIDs
# [empty]
SET @@SESSION.GTID_NEXT= 'AUTOMATIC' /* added by mysqlbinlog */ /*!*/;
DELIMITER ;
# End of log file
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;

(3) Información de registro de salida desde 1741 hasta el final del archivo

[root@localhost wgx]# mysqlbinlog --start-position=1741 /var/lib/mysql/mysql-bin.000001
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
# at 4
#200703 22:27:21 server id 2  end_log_pos 123 CRC32 0x41949ba4 	Start: binlog v 4, server v 5.7.27-log created 200703 22:27:21 at startup
# Warning: this binlog is either in use or was not closed properly.
ROLLBACK/*!*/;
BINLOG '
SUD/Xg8CAAAAdwAAAHsAAAABAAQANS43LjI3LWxvZwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAABJQP9eEzgNAAgAEgAEBAQEEgAAXwAEGggAAAAICAgCAAAACgoKKioAEjQA
AaSblEE=
'/*!*/;
# at 1741
#200703 22:36:51 server id 2  end_log_pos 1772 CRC32 0x1d33aa48 	Xid = 44
COMMIT/*!*/;
SET @@SESSION.GTID_NEXT= 'AUTOMATIC' /* added by mysqlbinlog */ /*!*/;
DELIMITER ;
# End of log file
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
5. Salida de información de registro dentro de un rango de tiempo especificado

Utilice los parámetros [–start-datetime] y [–stop-datetime] para generar la información de registro entre [–start-datetime] y [–stop-datetime].
Si se
omite la opción [–stop-datetime], se generará la información del registro desde [–start-datetime] hasta el final; si se omite la opción [–start-datetime], se generará la información del registro desde el principio hasta el [–stop-datetime] información;

Se omiten ejemplos.

6. Convierta el binlog cuyo formato de registro es ROW en una declaración pseudo SQL anotada

Usando el parámetro [-v], el binlog con el formato de registro de ROW se puede convertir en declaraciones pseudo SQL anotadas.

Por ejemplo: envíe directamente la información del archivo de registro en formato FILA de la siguiente manera:

[root@Mysql11 ~]# mysqlbinlog --start-position=509 --stop-position=845 /var/lib/mysql/mysql-bin.000001

..........

# at 509
#200703 22:24:26 server id 1  end_log_pos 581 CRC32 0xa68d8aed 	Query	thread_id=2	exec_time=0	error_code=0
SET TIMESTAMP=1593786266/*!*/;
SET @@session.pseudo_thread_id=2/*!*/;
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/;
SET @@session.sql_mode=1436549152/*!*/;
SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/;
/*!\C utf8 *//*!*/;
SET @@session.character_set_client=33,@@session.collation_connection=33,@@session.collation_server=33/*!*/;
SET @@session.lc_time_names=0/*!*/;
SET @@session.collation_database=DEFAULT/*!*/;
BEGIN
/*!*/;
# at 581
#200703 22:24:26 server id 1  end_log_pos 629 CRC32 0x220d2e02 	Table_map: `hist`.`t2` mapped to number 113
# at 629
#200703 22:24:26 server id 1  end_log_pos 845 CRC32 0x4cd0e798 	Update_rows: table id 113 flags: STMT_END_F

BINLOG '
mj//XhMBAAAAMAAAAHUCAAAAAHEAAAAAAAEABGhpc3QAAnQyAAID/gL+PAICLg0i
mj//Xh8BAAAA2AAAAE0DAAAAAHEAAAAAAAEAAgAC///8AQAAAAVKb2huefxlAAAABUpvaG55/AIA
AAADVG9t/GYAAAADVG9t/AMAAAAESmFja/xnAAAABEphY2v8BAAAAAVNZXJyefxoAAAABU1lcnJ5
/AUAAAAEUm9zZfxpAAAABFJvc2X8BgAAAAR3YW5n/GoAAAAEd2FuZ/wHAAAABXpoYW5n/GsAAAAF
emhhbmf8CAAAAAJsafxsAAAAAmxp/AkAAAAEemhhb/xtAAAABHpoYW+Y59BM
'/*!*/;
ROLLBACK /* added by mysqlbinlog */ /*!*/;
SET @@SESSION.GTID_NEXT= 'AUTOMATIC' /* added by mysqlbinlog */ /*!*/;
DELIMITER ;
# End of log file
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;

El archivo de registro en formato ROW escribe una transacción en el registro en forma binaria. La información de registro en formato ROW es incomprensible, incluso con la herramienta mysqlbinlog. Utilice el parámetro [-v] para convertir la descripción binaria de la transacción en una forma SQL similar y mostrarla.
Utilice el parámetro [-v] para generar información de registro:

[root@Mysql11 ~]# mysqlbinlog -v --start-position=509 --stop-postion=845 /var/lib/mysql/mysql-bin.000001
mysqlbinlog: [ERROR] unknown variable 'stop-postion=845'
[root@Mysql11 ~]# mysqlbinlog --base64-output='decode-rows' -v --start-position=509 --stop-position=845 /var/lib/mysql/mysql-bin.000001
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
# at 509
#200703 22:24:26 server id 1  end_log_pos 581 CRC32 0xa68d8aed 	Query	thread_id=2	exec_time=0	error_code=0
SET TIMESTAMP=1593786266/*!*/;
SET @@session.pseudo_thread_id=2/*!*/;
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/;
SET @@session.sql_mode=1436549152/*!*/;
SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/;
/*!\C utf8 *//*!*/;
SET @@session.character_set_client=33,@@session.collation_connection=33,@@session.collation_server=33/*!*/;
SET @@session.lc_time_names=0/*!*/;
SET @@session.collation_database=DEFAULT/*!*/;
BEGIN
/*!*/;
# at 581
#200703 22:24:26 server id 1  end_log_pos 629 CRC32 0x220d2e02 	Table_map: `hist`.`t2` mapped to number 113
# at 629
#200703 22:24:26 server id 1  end_log_pos 845 CRC32 0x4cd0e798 	Update_rows: table id 113 flags: STMT_END_F
### UPDATE `hist`.`t2`
### WHERE
###   @1=1
###   @2='Johny'
### SET
###   @1=101
###   @2='Johny'
### UPDATE `hist`.`t2`
### WHERE
###   @1=2
###   @2='Tom'
### SET
###   @1=102
###   @2='Tom'
### UPDATE `hist`.`t2`
### WHERE
###   @1=3
###   @2='Jack'
### SET
###   @1=103
###   @2='Jack'
### UPDATE `hist`.`t2`
### WHERE
###   @1=4
###   @2='Merry'
### SET
###   @1=104
###   @2='Merry'
### UPDATE `hist`.`t2`
### WHERE
###   @1=5
###   @2='Rose'
### SET
###   @1=105
###   @2='Rose'
### UPDATE `hist`.`t2`
### WHERE
###   @1=6
###   @2='wang'
### SET
###   @1=106
###   @2='wang'
### UPDATE `hist`.`t2`
### WHERE
###   @1=7
###   @2='zhang'
### SET
###   @1=107
###   @2='zhang'
### UPDATE `hist`.`t2`
### WHERE
###   @1=8
###   @2='li'
### SET
###   @1=108
###   @2='li'
### UPDATE `hist`.`t2`
### WHERE
###   @1=9
###   @2='zhao'
### SET
###   @1=109
###   @2='zhao'
ROLLBACK /* added by mysqlbinlog */ /*!*/;
SET @@SESSION.GTID_NEXT= 'AUTOMATIC' /* added by mysqlbinlog */ /*!*/;
DELIMITER ;
# End of log file
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;

Supongo que te gusta

Origin blog.csdn.net/weixin_44377973/article/details/107117185
Recomendado
Clasificación