binlog基本定义:二进制日志,也成为二进制日志,记录对数据发生或潜在发生更改的SQL语句,并以二进制的形式保存在磁盘中;mysql
做用:MySQL的做用相似于Oracle的归档日志,能够用来查看数据库的变动历史(具体的时间点全部的SQL操做)、数据库增量备份和恢复(增量备份和基于时间点的恢复)、Mysql的复制(主主数据库的复制、主从数据库的复制)linux
二进制日志的信息:sql
文件位置:默认存放位置为数据库文件所在目录下数据库
文件的命名方式: 名称为hostname-bin.xxxxx (重启mysql一次将会自动生成一个新的binlog)缓存
状态的查看:mysql> show variables like '%log_bin%';安全
mysql> show variables like '%log_bin%';函数
+---------------------------------+-------+工具
| Variable_name | Value |操作系统
+---------------------------------+-------+日志
| log_bin | ON | //表示当前已开启二进制日志//
| log_bin_trust_function_creators | OFF |
| sql_log_bin | ON |
+---------------------------------+-------+
3 rows in set (0.00 sec)
二进制日志的管理:
一、开启二进制日志配置
方法1、修改my.cnf参数文件,该方法须要重启
log-bin = mysql-bin #打开日志(主机须要打开),这个mysql-bin也能够自定义,这里也能够加上路径,如:/home/www/mysql_bin_log/mysql-bin
关闭二进制日志的方法:log-bin = mysql-bin注释掉便可
方法2、不重启修改二进制日志配置,该方法mysql的版本须要5.6以上
SET @@global.log_bin=1|0 (1为开启,0为关闭)
SET @@global.binlog_size=37268(单位bytes)
三、暂停二进制日志
SET sql_log_bin={0|1}
四、修改二进制日志的大小
修改my.cnf参数文件中的max_binlog_size的值;
说明:若是你的二进制文件的大小超过了max_binlog_size,它就是自动建立新的二进制文件。固然若是刚好在日志文件到达它的最大尺寸时写入了大的事务,那么日志文件仍是会超过max_binlog_size的大小
五、进行二进制日志的切换,默认状况下当二进制日志写满了或者数据库重启了才会进行切换,可是也能够手工的进行切换的动做
mysql> flush logs;
六、其余参数:
binlog-cache-size=100m 设置二进制日志缓存大小
sync-binlog=N(每一个N秒将缓存中的二进制日志记录写回硬盘,默认值为0。不过,你常常会陷入group commit函数与I/O之间二选一的矛盾。若是在replication环境中,因为考虑到耐久性与一致性,则须要设置1。同时,还须要设置innodb_flush_log_at_trx_commit=1以及innodb-support-xa=1默认开启;)
二进制日志的写入过程
查看二进制日志的内容:
binlog不能直接用文本的方式打开,mysql提供了相应的查看工具:mysqlbinlog,直接查看单个二进制日志文件:mysqlbinlog filename
例如: mysqlbinlog /data/mysql/mysql-bin.000001
固然也能够经过二进制日志完成数据库的恢复,具体的使用将在数据库的备份还原中介绍。
删除二进制日志
二进制日志会不断的增加,并产生多个文件。所以,须要制定备份计划和管理策略.无用的二进制日志要记得及时删除。
删除慢查询日志有三种方法:
一、操做系统命令直接删除
二、reset master
三、PURGE BINARY LOGS BEFORE '2014-07-09 12:40:26′;
总结:二进制日志用途普遍也很重要,大多少状况下会开启,对于业务操做频繁的数据库须要制定相应的备份策略和删除策略;
MySQL数据恢复--binlog http://www.linuxidc.com/Linux/2014-03/97907.htm
MySQL中binlog日记清理 http://www.linuxidc.com/Linux/2011-02/32017.htm
如何安全删除MySQL下的binlog日志 http://www.linuxidc.com/Linux/2013-06/86527.htm
MySQL--binlog日志恢复数据 http://www.linuxidc.com/Linux/2013-04/82368.htm
MySQL删除binlog日志及日志恢复数据的方法 http://www.linuxidc.com/Linux/2012-12/77072.htm
MySQL binlog三种格式介绍及分析 http://www.linuxidc.com/Linux/2012-11/74359.htm
MySQL 利用binlog增量备份+还原实例 http://www.linuxidc.com/Linux/2012-09/70815.htm
MySQL删除binlog日志及日志恢复数据 http://www.linuxidc.com/Linux/2012-08/67594.htm