MySQL binlog
Posted anxiao
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL binlog相关的知识,希望对你有一定的参考价值。
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的主要内容,如果未能解决你的问题,请参考以下文章