MySQL二进制日志binlog

优点和缺点

  • 通过二进制日志进行进行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

你可能感兴趣的:(MySQL,binlog,二进制日志,复制,同步)