binlog日志和中继日志信息查看

x33g5p2x  于2022-07-13 转载在 其他  
字(3.2k)|赞(0)|评价(0)|浏览(541)

binlog日志和中继日志信息查看

查看二进制日志文件中的事件(查看binlog内容):

mysql> show binlog events;
+------------------+------+----------------+-----------+-------------+--------------------------------------------------------------+
| Log_name         | Pos  | Event_type     | Server_id | End_log_pos | Info                                                         |
+------------------+------+----------------+-----------+-------------+--------------------------------------------------------------+
| mysql-bin.000001 |    4 | Format_desc    |         1 |         126 | Server ver: 8.0.29, Binlog ver: 4                            |
| mysql-bin.000001 |  126 | Previous_gtids |         1 |         157 |                                                              |
| mysql-bin.000001 |  157 | Anonymous_Gtid |         1 |         234 | SET @@SESSION.GTID_NEXT= 'ANONYMOUS'                         |
| mysql-bin.000001 |  234 | Query          |         1 |         329 | use `mysql`; flush privileges                                |
| mysql-bin.000001 |  329 | Anonymous_Gtid |         1 |         406 | SET @@SESSION.GTID_NEXT= 'ANONYMOUS'                         |
| mysql-bin.000001 |  406 | Query          |         1 |         514 | create database test /* xid=62 */                            |
| mysql-bin.000001 |  514 | Anonymous_Gtid |         1 |         591 | SET @@SESSION.GTID_NEXT= 'ANONYMOUS'                         |
| mysql-bin.000001 |  591 | Query          |         1 |         702 | create database test1 /* xid=67 */                           |
| mysql-bin.000001 |  702 | Anonymous_Gtid |         1 |         779 | SET @@SESSION.GTID_NEXT= 'ANONYMOUS'                         |
| mysql-bin.000001 |  779 | Query          |         1 |         924 | GRANT REPLICATION CLIENT ON *.* TO 'slave'@'%' /* xid=133 */ |
| mysql-bin.000001 |  924 | Anonymous_Gtid |         1 |        1001 | SET @@SESSION.GTID_NEXT= 'ANONYMOUS'                         |
| mysql-bin.000001 | 1001 | Query          |         1 |        1112 | create database test2 /* xid=151 */                          |
+------------------+------+----------------+-----------+-------------+----------------------------------------

也可以指定binlog进行查看:

show binlog events in 'mysql-bin.000001';

指定binlog并指定从那个pos之后开始看:

show binlog events in 'mysql-binlog.000001' from 256;

查看中继日志信息:

mysql> show global variables like "%relay%";
+---------------------------+-----------------------------------------------+
| Variable_name             | Value                                         |
+---------------------------+-----------------------------------------------+
| max_relay_log_size        | 0                                             |
| relay_log                 | VM-0-22-centos-relay-bin                      |
| relay_log_basename        | /var/lib/mysql/VM-0-22-centos-relay-bin       |
| relay_log_index           | /var/lib/mysql/VM-0-22-centos-relay-bin.index |
| relay_log_info_file       | relay-log.info                                |
| relay_log_info_repository | TABLE                                         |
| relay_log_purge           | ON                                            |
| relay_log_recovery        | OFF                                           |
| relay_log_space_limit     | 0                                             |
| sync_relay_log            | 10000                                         |
| sync_relay_log_info       | 10000                                         |
+---------------------------+-----------------------------------------------+
11 rows in set (0.00 sec)

变量解释:
max_relay_log_size:

标记relay log允许的最大值,如果该值为0默认值为1G,如果不为0,则为标记的大小

relay_log:

定义relay_log的位置和名称,如果值为空,则默认位置在数据文件的目录datadir,文件名为host_name-relay-bin.nnnnnn

relay_log_basename

中继日志文件的名称和路径。名称是去掉后缀的名字

relay_log_index

定义relay_log的位置和名称

relay_log_info_file

设置relay-log.info的位置和名称(relay-log.info记录MASTER的binary_log的恢复位置和relay_log的位置)

relay_log_info_repository

确定从机的 relay_log 位置放在 FILE(relay-log.info)还是 TABLE (mysql.slave_relay_log_info),保证数据写入的一致性

relay_log_purge

开启或关闭在不需要的时候自动删除中继日志。

relay_log_recovery

当slave从库宕机后,假如relay-log损坏了,导致一部分中继日志没有处理,则自动放弃所有未执行的relay-log,并且重新从master上获取日志,这样就保证了relay-log的完整性。

relay_log_space_limit

防止中继日志写满磁盘,这里设置中继日志最大限额。但是会有主库崩溃,从机中继日志不全的问题。

sync_relay_log

slave的I/O线程每次接收到master发送过来的binlog日志都要写入系统
缓冲区,然后刷入relay log中继日志里,这样是最安全的,因为在崩溃的时候,你最多会丢失一个事务,但是这样也会造成磁盘的大量I/O。

sync_relay_log_info

这个参数和sync_relay_log参数一样,当设置为1时,slave的I/O线程每次接收到master发送过来的binlog日志都要写入系统缓冲区,然后刷入relay-log.info里,这样是最安全的,因为在崩溃的时候,你最多会丢失一个事务,但会造成磁盘的大量I/O。当设置为0时,并不是马上就刷入relay-log.info里,而是由操作系统决定何时来写入,虽然安全性降低了,但减少了大量的磁盘I/O操作。

相关文章