网站地图    收藏   

主页 > 后端 > mysql数据库 >

mysql的binary log初探 - mysql数据库栏目 - 自学php

来源:自学PHP网    时间:2015-04-16 10:51 作者: 阅读:

[导读] mysql的binary log初探binary log是mysql中一个重要的部分,主要作用有两个:Replication:在master端开启binary log后,log会记录所有数据库的改动,然后slave端获取这个Log文件内容就可以在slave端进行...

mysql的binary log初探
 
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
 
查看log文件:show binary logs, show master logs

重置log: reset master

删除部分日志: purge binary logs to 'log_name'|'date'

 

 
自动删除过期的日志,通过设置expire_logs_days来控制删除几天前的日志
 
另外binlog_format有三个选项,分别是statement,row,mixed,来控制产生binary log的格式。
 
 
 
 
对于产生的binary log可以通过mysqlbinlog命令来将log的信息打印出来。
 
mysql> show variables like '%format%';
+--------------------------+-------------------+
| Variable_name            | Value             |
+--------------------------+-------------------+
| binlog_format            | ROW               |

[root@rhel131 tmp]# mysqlbinlog /tmp/1.000001


/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
# at 4
#131018 23:31:26 server id 1  end_log_pos 120 CRC32 0x67b9d21f  Start: binlog v 4, server v 5.6.13-log created 131018 23:31:26 at startup
# Warning: this binlog is either in use or was not closed properly.
ROLLBACK/*!*/;
BINLOG '
TlRhUg8BAAAAdAAAAHgAAAABAAQANS42LjEzLWxvZwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAABOVGFSEzgNAAgAEgAEBAQEEgAAXAAEGggAAAAICAgCAAAACgoKGRkAAR/S
uWc=
'/*!*/;
DELIMITER ;
# End of log file
ROLLBACK /* added by mysqlbinlog */;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/

;
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;

 

 

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论