(4.5)mysql备份还原——深入解析二进制日志(1)binlog的3种工作模式与配置

(4.5)mysql备份还原——深入解析二进制日志(binlog)

关键词:二进制日志,binlog日志

1、binlog二进制日志简介

  这个文件记录了mysql数据库所有的dml,ddl语句事件(不包含select)。记录增删改,也可以记录SQL语句及行记录变化,还可以记录这些操作事件;

  三种日志的区别:

  (1)general log:记录数据库里的所有SQL操作记录

  (2)redo log:只记录innodb存储引擎的修改日志

  (3)binlog:只记录server层面内部的修改情况。--select /show 不记录

2、开启binlog二进制日志有什么好处?

  (1)mysql主从复制,通过binlog实现数据复制

  (2)数据恢复:可以基于时间点恢复,以及根据其进行增量与差异备份

3、mysql binlog的三种工作模式

 binlog_format

【3.1】row level(默认级别:mysql5.7.6之后+8.0)

  日志中记录每一行数据修改的情况;

  (1)有点:可以更方便查看每一条数据修改的细节  (2)缺点:数据量比较大

  使用场景:希望数据最安全,复制强一致。

【3.2】statement level(默认级别:Mysql5.7.6之前)

  记录每一条修改的SQL

  (1)优点:解决了数据量比较大的问题  (2)缺点:容易出现主从复制不一致

  使用场景:使用mysql的功能比较少,又不使用存储过程/触发器/函数

【3.3】mixed(混合模式)

  结合 row level 与statement level的优点

  不建议使用,还不如使用row level

4、配置mysql binlog二进制日志

4.1】查看
show variables like '%log_bin%';
show variables like '%binlog%';
show variables like '%server%';

【4.2】参数配置
[mysqld]
server_id=3306  #服务ID,主从必须不一致。(建议数字:ip+端口)  5.7.3以后版本,必须加
#目录必须存在且授权好,binlog为索引文件,实际文件会自动根据索引文件建立如binlog.0000001
log_bin=/mysql/log/3306/binlog    
log_bin_index=/mysql/log/3306/binlog.index     #不设置的话,会根据log_bin值名称自动生成binlog.index
binlog_format='row' #(row,statement,mixed)     #3种模式
binlog_rows_query_log_events=on #打开才能查看详细记录

猜你喜欢

转载自www.cnblogs.com/gered/p/10687319.html