优点和缺点
- 通过二进制日志进行进行point-in-time的恢复
- 主从同步
- SQL审计
- 会造成大概1%的性能损耗
配置项
max_binlog_size:单个二进制文件的最大值,默认1G,超过该值,薪文件后缀名+1
binlog_cache_size:所有未提交事务的二进制日志会被写入到一个缓存中,等事务提交后才写入二进制文件,该参数控制缓冲的大小,默认32KB。每开启一个事务,MySQL会自动分配一个大小为binlog_cache_size的缓存,所以不宜设置过大,当一个事务的记录大于该值,则会写入临时文件,所以也不宜设置的过小。binlog_cache_use记录使用缓冲写二进制日志的次数,binlog_cache_disk_use记录了使用临时文件写二进制日志的次数。
mysql> show global status where Variable_name like 'binlog_cache%'\G;
*************************** 1. row ***************************
Variable_name: Binlog_cache_disk_use
Value: 38939
*************************** 2. row ***************************
Variable_name: Binlog_cache_use
Value: 0
2 rows in set (0.00 sec)
sync_binlog:表示每写缓冲多少次就同步到磁盘,默认为1,表示采用同步写磁盘的方式记录二进制日志
binlog-do-db和binlog-ignore-db表示需要写入或忽略哪些库的日志,默认为空
binlog_format:STATEMENT记录逻辑SQL语句,文件小;ROW记录表的行更改情况,文件大,恢复和复制快;
配置相关
查看data目录:show variables like '%datadir%'
默认binlog存储在data目录下,如果要更改,可以更改my.ini配置文件,log_bin = 绝对路径
以SQL的形式查看某个binlog文件的内容:show binlog events in 'bin.000001';
查看二进制文件命令
mysqlbinlog