Mysqlbinlog使用

1、binlog 基本认识
MySQL的二进制日志可以说是MySQL最重要的日志了,它记录了所有的DDL和DML(除了数据查询语句)语句,以事件形式记录,还包含语句所执行的消耗的时间,MySQL的二进制日志是失误安全型的.
一般来说开启二进制日志大概会有1%的性能损耗(参见MySQL官方中文手册 5.1.24版).二进制有两个最重要的使用场景:
其一是:MySQL Replication在Master端开启binlog,Mster把它的二进制日志传递给slaves来达到master-slave数据一致的目的.
其二:自然就是数据恢复了,通过使用mysqlbinlog工具来即使恢复数据.
    二进制日志包括两类文件:二进制日志索引文件(文件名后缀为.index)用于记录所有的二进制文件,二进制日志文件(文件名后缀为.00000*)记录数据库所有的DDL和DML(除了数据查询语句)语句事件。
2、Mysql 二进制文件开启
     Mysql 默认关闭了二进制日志,因此在mysql安装完成过后需要手动设置 配置文件:my.ini/my.cnf ,保持设置重启mysql 即可。
在配置文件 中:
[mysqld]
Log-bin=”二进制日志文件存储路径/文件名” (默认路径为数据目录,二进制文件)
例:log-bin=”d:/mysql/mylog”    建议将日志文件与数据文件存储在不同盘上。

默认设置将对所以数据库相关操作进行记录。通过如下参数设置可以指定只对某些数据库开启二进制日志文件。

Bin-do-log=db_name(需要开启二进制日志文件的数据库 ,多个数据库则要重复设置)
Binlog-do-log=db_name ….
Binlog-ignore-db=db_name(无需开启二进制日志文件的数据库,多个数据库则要重复设置)
Binlog-ignore-db=db_name…

注:bin-do-db,bin-ignore-db 为互斥关系,只需设置其中一项即可。

3、二进制日志查看及维护
3.1查看
1、          在mysql 客户端输入  show master status; 查看二进制是否开启,并针对那些数据库开启二进制日志文件 如图(1)。若返回值为 empty,则表示未开启二进制日志文件

关于MySQL二进制日志Binlog的认识1—设置、客户端命令
图(1)
File:当前记录数据库操作的二进制文件,.000001为二进制日志文件扩展名。
Position:当前二进制文件中,记录的起始位置。
2、          在客户端输入:show master logs/show binary bogs,查看所有二进制日志文件及其大小如图(2)。注:重启mysql 或者二进制文件达到默认最大值(1G),系统会开启新的二进制文件。
关于MySQL二进制日志Binlog的认识1—设置、客户端命令
图(2)
3、          在客户端输入:show binlog events [ in ‘log_name’][from pos][limit [offset] row_count],用于在二进制日志中显示事件 如图(3)。如果您不指定'log_name',则显示第一个二进制日志。
关于MySQL二进制日志Binlog的认识1—设置、客户端命令
图(3)

3.2 维护—客户端命令

1、flush logs,告诉服务器关闭当前的二进制日志文件并创建一个新文件。
关于MySQL二进制日志Binlog的认识1—设置、客户端命令
图(4)

2、客户端中通过:purge master logs命令可以根据实际情况删除过期的二进制文件。
PURGE {MASTER | BINARY} LOGS TO 'log_name'
PURGE {MASTER | BINARY} LOGS BEFORE 'date'
用于删除列于在指定的日志或日期之前的日志索引中的所有二进制日志。这些日志也会从记录在日志索引文件中的清单中被删除,这样被给定的日志成为第一个。
关于MySQL二进制日志Binlog的认识1—设置、客户端命令
图(5)
3、客户端中输入:reset master ,可以删除列于索引文件(logname.index )中的所有二进制日志,把二进制日志索引文件重新设置为空,并创建一个新的二进制日志文件
                           关于MySQL二进制日志Binlog的认识1—设置、客户端命令
                                                 图(6)

你可能感兴趣的:(binlog)