MySQL二进制日志总结

  • by

二进制日志简单介绍

MySQL的二进制日志(binary log)是一个二进制文件,主要用于记录修改数据

或有可能引起数据变更的MySQL语句。二进制日志(binary log)中记录了对

MySQL数据库执行更改的所有操作,并且记录了语句发生时间、执行时长、操作

数据等其它额外信息,但是它不记录SELECT、SHOW等那些不修改数据的SQL语

句。二进制日志(binary log)主要用于数据库恢复和主从复制,以及审计

(audit)操作。

二进制日志状态查看

系统变量log_bin的值为OFF表示没有开启二进制日志(binary log)。ON表示开

启了二进制日志(binary log)

查看当前服务器所有的二进制日志文件

当然你还可以使用下面命令查看

查看当前二进制日志文件状态

二进制日志开启方法

1:修改my.cnf,在[mysqld]下面增加log_bin=mysql_bin_log,重启MySQL后,

你就会发现log_bin变为了ON,如果在my.cnf里面只设置log_bin,但是不指定

file_name,然后重启数据库。你会发现二进制日志文件名称为${hostname}-bin

这样的格式。二进制日志(binary log)默认放在数据目录下

(系统变量datadir下),如下所示:

二进制日志切换方法

flush logs

请注意,每次重启MySQL服务也会生成一个新的二进制日志文件,相当于二进制

日志切换。切换二进制日志时,你会看到这些number会不断递增。另外,除了这

些二进制日志文件外,你会看到还生成了一个DB-Server-bin.index的文件,这个

文件中存储所有二进制日志文件的清单又称为二进制文件的索引。

二进制日志删除方法


二进制日志的删除可以通过命令手工删除,也可以设置自动清理。下面简单介绍一

下,如何删除二进制日志。

1: purge binary logs to xxx; 表示删除某个日志之前的所有二进制日志文件。

这个命令会修改index中相关数据


2: 清除某个时间点以前的二进制日志文件。

mysql> purge binary logs before '2017-03-10 10:10:00';

3: 清除7天前的二进制日志文件

mysql> purge master logs before date_sub( now( ), interval 7 day);

4: 清除所有的二进制日志文件(当前不存在主从复制关系)

mysql> reset master;




发表评论

电子邮件地址不会被公开。 必填项已用*标注

20 − 18 =