binlog(The Binary Log)用于记录用户对数据库更新的SQL语句信息,例如数据库的增删改语句都会记录到binlog里,不会记录查询语句。默认状况下,binlog日志是二进制格式的,不能使用查看文本工具的命令(好比,cat,vi等)查看,而使用mysqlbinlog解析查看。mysql的binlog日志是被设计用来做主从备份或者数据恢复用的。mysql
1. mysql提供了三种不一样的binlog记录形式:sql
STATEMENT 语句模式(默认):日志中记录了全部的执行的sql语句,从库在执行的时候,从新执行相应sql便可。可是由于不记录语句执行的上下文,在从库执行某些语句(好比存储过程)的时候,有些语句不必定能成功执行致使丢失数据
ROW 行模式:日志中记录每一行每一个字段的变化,能清楚记录每行数据的变化历史,主从丢失数据的状况大大下降,可是缺点是会产生大量的binlog占用存储空间
MIX 混合模式:在 Mixed 模式下,MySQL 会根据执行的每一条具体的 SQL 语句来区分对待记录的日志形式,也就是在 statement 和 row 之间选择一种。好比遇到表结构变动的时候就会以 statement 模式来记录,若是 SQL 语句确实就是 update 或者 delete 等修改数据的语句,那么仍是会记录全部行的变动。目前这种模式其实就是由mysql来选择到底用哪一种模式记录。数据库
2. 如何开启binlog日志功能
在mysql的配置文件my.cnf中,增长log_bin参数便可开启binlog日志,也能够经过赋值来指定binlog日志的文件名
log_bin = /application/mysql/logs/dadong-binapp
3. 查看binlog状况
工具
show variables like 'log_bin' //查看本身的mysql是否打开了binlog选项 show variables like 'binlog_format' //查看binlog的格式 show binary logs //获取binlog列表 show master logs //获取binlog列表 show master status //查看正在写入的binlog
4. 查看binlogspa
若是binlog的格式是STATEMENT,show binlog event的方式是能够看到sql语句的
若是row模式的话只能经过mysqlbinlog工具进行查看,mysqlbinlog也是mysql dba经常使用的备份恢复数据的工具。该工具须要登陆到数据库主机使用: mysqlbinlog [options] log_file.net
---------------------
做者:frog4
来源:CSDN
原文:https://blog.csdn.net/frog4/article/details/80280149
版权声明:本文为博主原创文章,转载请附上博文连接!设计