binary log是mysql中一个重要的部分,主要作用有两个:
Replication:在master端开启binary log后,log会记录所有数据库的改动,然后slave端获取这个Log文件内容就可以在slave端进行同样的操作。
备份:在某个时间点a做了一次备份,然后利用binary log记录从这个时间点a后的所有数据库的改动,然后下一次还原的时候,利用时间点a的备份文件和这个binary log文件,就可以将数据还原。
与binary log相关的参数如下:
log-bin和log-bin_index:指定log文件和索引文件的位置。
max_binlog_size: binary log最大的大小
binlog_cache_size: 当前的多少事务cache在内存中
binlog_cache_disk_use:当前有多少事务暂存在磁盘上的,如果这个值有数值的话,就应该要注意调优了。
max_binlog_cache_size: 最大能有多少事务cache在内存中
binlog_do_db和binlog_ingore_db:是一对控制对哪些数据库进行收集的选项。
sync_binlog:这个值控制cache的数据commit多少次才刷到磁盘上。默认是0,也就是让数据库自己决定同步的频率。如设置成1的话,则每commit一次就会将cache的数据同步到磁盘上,这样做最安全,但是性能最差。
log的控制命令:
手工切换log: flush logs
1 2 3 4 5 |
|
自动删除过期的日志,通过设置expire_logs_days来控制删除几天前的日志
另外binlog_format有三个选项,分别是statement,row,mixed,来控制产生binary log的格式。
对于产生的binary log可以通过mysqlbinlog命令来将log的信息打印出来。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
|