2.5.2 MySQL二进制日志介绍

MySQL二进制日志介绍

什么是 binary log

这个文件记录了mysql数据库所有的DDL和DML(除了数据查询语句 select)语句事件。用来记录数据库中发生的修改情况。
比如:数据的修改、表的创健建及修改等。

它既可以记录涉及修改的SQL,也可以记录数据修改的行变化记录,同时也记录了执行时间。
比如:
执行sql:update itpux set name='a' where id between l and 5
修改了5行记录

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

1) MySQL主从复制:
MySQL Replication 在 Master 端开启 binlog, Master把它的二进制日志传递给 slaves来达到 master-slave 数据一致的目的。
2)数据恢复
通过使用 mysqlbinlog工具来使恢复数据;
数据库宕机恢复使用;
异常操作,紧急恢复数据使用;

MySQL binlog的三种工作模式

(1) Row level
日志中会记录每一行数据被修改的情况,然后在slave端对相同的数据进行修改。
(2) Statement level(默认)
每一条被修改数据的sql都会记录到 master的bin-log中,slave在复制的时候sql进程会解析成和原来master端执行过的相同的sql再次执行
(3) Mixed(混合模式)
结合了 Row level和 Statement level的优点

设置 MySQL binlog模式

查看 MySQLbinlog模式
mysql> show variables like "binlog%";
binlog_format    ROW
vi my.cnf
binlog_format= 'ROW'
or
binlog_format='STATEMENT'
or
binlog_format='Mixed'











  



原文地址:https://www.cnblogs.com/wenyule/p/13710961.html