binlog 初探

Binlog详解

  • Mysql的binlog日志作用是用来记录mysql内部增删改查等对mysql数据库有更新的内容的记录(CRUD等),但select或show等不会被binlog日志记录
  • 主要作用: 主要用于数据库的主从复制以及增量恢复

Binlog开启方式

  • 方式一:my.inf

log_bin=ON
log_bin_basename=/var/lib/mysql/mysql-bin
log_bin_index=/var/lib/mysql/mysql-bin.index

  • 方式二:

log-bin=/var/lib/mysql/mysql-bin
server-id=123454 [针对5.7及以上]
service mysqld restart [mysql重启]

Binlog三种模式

  • Row level
      日志中会记录每一行数据被修改的情况,然后在slave端对相同的数据进行修改。
  • Statement level(默认,公司首先)
      每一条被修改数据的sql都会记录到master的bin-log中,slave在复制的时候sql进程会解析成和原来master端执行过的相同的sql再次执行
      good:节约磁盘IO,提高新能; 不用存储过程、触发器、函数
      false:易出现主从复制不一致
  • Mixed(混合模式)

Binlog常用操作

  • 查看是否启用

show global variables like “binlog%”;

  • 查看指定binlog文件的内容

show binlog events in ‘mysql-bin.0000**’;

  • 查看当前正在写入的binlog文件

show master status\G;

  • 获取binlog文件列表

show binary logs;

  • mysqlbinlog工具查看
    • Mysqlbinlog功能是将Binlog日志转换成Mysql语句,默认情况下binlog日志是二进制文件,无法直接查看
参数描述
-d指定库的binlog
-r相当于重定向到指定文件
–start-position–stop-position按照指定位置精确解析binlog日志(精确),如不接–stop-positiion则一直到binlog日志结尾
–start-datetime–stop-datetime按照指定时间解析binlog日志(模糊,不准确),如不接–stop-datetime则一直到binlog日志结尾
案例:基于开始结束时间
> mysqlbinlog --start-datetime='2018-05-24 00:00:00' --stop-datetime='2018-05-24 23:59:59' -d database /var/lib/mysql/mysql-bin.000004
    原文作者:蚂蚁窝大梦想
    原文地址: https://www.jianshu.com/p/2586116c74a6
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞