SHOW GLOBAL VARIABLES LIKE ‘log_bin%’; 结果返回不等于ON时代表关闭
可以通过my.ini配置文件(linux中为my.cnf) log-bin=mysql-bin //指定binlog日志文件的名称,可以根据实际需求进行命名。 binlog-format=ROW //设置binlog的格式,下面会解释这三种格式。
2.检查binlog格式
SHOW GLOBAL VARIABLES like ' binlog_format%’;
mysql binlog 分为三种模式(STATEMENT,ROW,MIXED)
SET GLOBAL binlog_format = 'ROW’;
SET GLOBAL binlog_row_metadata = ‘FULL’;//8.0版本以下不需要设置
现在准备工作完成,可以开始写代码订阅master节点去获取binlog信息了,再次之前我们先了解下 binlog的存储原理
3.多文件存储
mysql 将数据库更新操作对应的event记录到本地的binlog文件中,显然在一个文件中记录所有的 event是不可能的,过大的文件会给我们的运维带来麻烦,如删除一个大文件,在I/O调度方面会给我们带来不可忽视的资源开销。
因此,目前基本上所有支持本地文件存储的组件,如MQ、Mysql等,都会控制一个文件的大小。在数据量较多的情况下,就分配到多个文件进行存储。
在mysql中可以通过
show binlog events;
得到binlog的log_name(文件名)和大小以及pos(偏移量位置)
这两个会在后面发送dump到master节点去订阅的时候用到,代表从binlog的哪处位置开始订阅,master 就会在EventStream中发送此文件节点之后的所有数据库变更信息