mysql binlog详解

 admin   2022-07-12 15:21   197 人阅读  0 条评论

binlog日志有两个最重要的使用场景。

1、mysql主从复制:mysql replication在master端开启binlog,master把它的二进制日志传递给slaves来达到master-slave数据一致的目的。

2、数据恢复:通过mysqlbinlog工具来恢复数据。

binlog日志包括两类文件:

1)、二进制日志索引文件(文件名后缀为.index)用于记录所有的二进制文件。

2)、二进制日志文件(文件名后缀为.00000*)记录数据库所有的DDL和DML(除了数据查询语句select)语句事件。

binlog开启方法

在/etc/my.cnf.d/mysql-server.cnf

[mysqld]区块添加

    log-bin=mysql-bin(也可指定二进制日志生成的路径,如:log-bin=/opt/Data/mysql-bin)
    server-id=1

    binlog_format=MIXED(加入此参数才能记录到insert语句)

查看binlog日志是否开启     mysql> show variables like 'log_%';

常用的binlog日志操作命令

1、查看所有binlog日志列表

    show master logs;

2、查看master状态,即最后(最新)一个binlog日志的编号名称,及其最后一个操作事件pos结束点(Position)值。

    show master status;

3、flush 刷新log日志,自此刻开始产生一个新编号的binlog日志文件;

    flush logs;

      注意:每当mysqld服务重启时,会自动执行此命令,刷新binlog日志;在mysqlddump备份数据时加-F选项也会刷新binlog日志;

4、重置(清空)所有binlog日志

    reset master;

查看binlog日志内容,常用有两种方式:

  1、使用mysqlbinlog自带查看命令法

    注意:

      a、binlog是二进制文件,普通文件查看器cat、more、vim等都无法打开,必须使用自带的mysqlbinlog命令查看。

      b、binlog日志与数据库文件在同目录中。

      c、在Mysql5.5以下版本使用mysqlbinlog命令时如果报错,就加上"--no-defaults"选项

上面这种办法读取出binlog日志的全文内容比较多,不容易分辨查看到pos点信息,下面介绍一种更为方便的查询命令:

    mysql> show binlog events [IN 'log_name'] [FROM pos] [LIMIT [offset,] row_count];

    参数解释:

      a、IN 'log_name':指定要查询的binlog文件名(不指定就是第一个binlog文件)

      b、FROM pos:指定从哪个pos起始点开始查起(不指定就是从整个文件首个pos点开始算)

      c、LIMIT【offset】:偏移量(不指定就是0)

      d、row_count :查询总条数(不指定就是所有行)


本文地址:https://liuchunjie.top/?id=390
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!

 发表评论


表情

还没有留言,还不快点抢沙发?