mysql二进制日志

mysql二进制日志称为binlog,记录了数据库修改数据的操作,可以用作数据恢复。

binlog有三种记录方式

1、statement

记录修改数据的原始sql,IO量较小。sql中存在使用user()等依赖运行环境的函数时,可能导致数据恢复不正确。

2、row

记录每行数据的修改动作,IO较大,准确性最高,生产环境推荐使用这种模式。

3、mixed

上述两种模式混合使用。

binlog参数设置

1、log_bin

只读参数,只能在my.ini(my.cnf)中设置,log_bin的值为二进制文件名字,存在log_bin配置则表示开启二进制文件,不存在则表示关闭。

2、sql_log_bin

会话界别变量,ON表示当前会话会记录binlog,OFF表示当前会话不记录binlog。

3、binlog_format

binlog的三种记录方式。

4、max_binlog_size

binlog日志文件大小,以字节为单位,日志超过此大小则创建新的binlog日志,文件名后缀自动加1。

5、sync_binlog

1,表示每一次事务提交之后,都会立即将内存中的二进制日志同步到磁盘中的二进制日志文件中。

0,表示由mysql自己决定什么时候写文件。

N,表示提交N次事务后,写文件。

显然,0性能最高,安全性最差;1性能最差,安全性最高。

二进制日志查询

1、查看二进制日志文件列表

show master logs;
show binary logs;

2、查看当前正在使用的二进制日志文件

show master status;

3、查看二进制日志文件中的事件(查看binlog内容)

show binlog events
show binlog events in 'mybinlog.000001'
show binlog events in 'mybinlog.000001'from 245
show binlog events in 'mybinlog.000001'limit 3
show binlog events in 'mybinlog.000001'limit 2,5
show binlog events in 'mybinlog.000001'from 245 limit 10
show binlog events in 'mybinlog.000001'from 245 limit 4,20

4、mysqlbinlog命令

(1)文件系统中使用mysqlbinlog命令查看对应的二进制日志:mysqlbinlog mybinlog.000001

(2)从指定位置开始查看二进制日志:mysqlbinlog --start-position 215 mybinlog.000001

(3)指定从哪个位置开始,到那个位置结束,查看这之间的二进制日志文件:mysqlbinlog --start-position 215 --stop-position 324 mybinlog.000001

(4)指定的时间开始查看,比如,查看2017年6月4日10点40以后的日志:mysqlbinlog --start-datetime "2017-6-4 11:40:00" mybinlog.000001;

(5)指定结束时间:mysqlbinlog --start-datetime "2017-6-4 11:40:00" --stop-datetime "2017-6-4 12:55:00" mybinlog.000001;

posted @ 2017-08-23 23:20  coshaho  阅读(239)  评论(0编辑  收藏  举报