码迷,mamicode.com
首页 > 数据库 > 详细

MySQL binlog

时间:2019-06-25 11:39:45      阅读:131      评论:0      收藏:0      [点我收藏+]

标签:设计   mil   主从备份   上下文   文本   tps   statement   复数   upd   

binlog(The Binary Log)用于记录用户对数据库更新的SQL语句信息,例如数据库的增删改语句都会记录到binlog里,不会记录查询语句。默认情况下,binlog日志是二进制格式的,不能使用查看文本工具的命令(比如,cat,vi等)查看,而使用mysqlbinlog解析查看。mysql的binlog日志是被设计用来作主从备份或者数据恢复用的。

 

mysql提供了三种不同的binlog记录形式:

STATEMENT 语句模式(默认):日志中记录了所有的执行的sql语句,从库在执行的时候,重新执行相应sql即可。但是因为不记录语句执行的上下文,在从库执行某些语句(比如存储过程)的时候,有些语句不一定能成功执行导致丢失数据
ROW 行模式:日志中记录每一行每个字段的变化,能清楚记录每行数据的变化历史,主从丢失数据的情况大大降低,但是缺点是会产生大量的binlog占用存储空间
MIX 混合模式:在 Mixed 模式下,MySQL 会根据执行的每一条具体的 SQL 语句来区分对待记录的日志形式,也就是在 statement 和 row 之间选择一种。比如遇到表结构变更的时候就会以 statement 模式来记录,如果 SQL 语句确实就是 update 或者 delete 等修改数据的语句,那么还是会记录所有行的变更。目前这种模式其实就是由mysql来选择到底用哪种模式记录,可以点此了解https://dev.mysql.com/doc/refman/5.6/en/binary-log-mixed.html

如何开启binlog日志功能

 

你可以通过以下命令查看自己的mysql的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

 

如果binlog的格式是STATEMENT,show binlog event的方式是可以看到sql语句的
如果row模式的话只能通过mysqlbinlog工具进行查看,mysqlbinlog也是mysql dba常用的备份恢复数据的工具。该工具需要登录到数据库主机使用:
  mysqlbinlog [options] log_file

 


---------------------
作者:frog4
来源:CSDN
原文:https://blog.csdn.net/frog4/article/details/80280149
版权声明:本文为博主原创文章,转载请附上博文链接!

 

 


---------------------
作者:frog4
来源:CSDN
原文:https://blog.csdn.net/frog4/article/details/80280149
版权声明:本文为博主原创文章,转载请附上博文链接!


---------------------
作者:frog4
来源:CSDN
原文:https://blog.csdn.net/frog4/article/details/80280149
版权声明:本文为博主原创文章,转载请附上博文链接!

MySQL binlog

标签:设计   mil   主从备份   上下文   文本   tps   statement   复数   upd   

原文地址:https://www.cnblogs.com/anxiao/p/11081870.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!