MySQL 从库日志比主库多

声明:本文可能无法帮到所有人,只是分享给真正需要的人,如果你已经会了,复习一遍,也没什么坏处^ ^.

在群里聊天的时候,一个群友说,生产库主库宕机,但是主从数据库数据一致,但是从库的日志比主库多,很是不理解!

咨询后发现,生产库的主库没有设置sync_binlog=1,而是为sync_binlog=0

因此,在主库写入数据的时候,事务已经提交,但是数据在binlog cache中,没有写入到磁盘,并且数据已经同步到从库,此刻主库宕机,binlog cache中数据丢失,导致从库的日志比主库多。

群友重新配置主从之后,并将sync_binlog设置为1

sync_binlog的重要性及意义:
sync_binlog=n,当每进行n次事务提交之后,MySQL将进行一次fsync之类的磁盘同步指令来将binlog_cache中的数据强制写入磁盘。
在MySQL中系统默认的设置是sync_binlog=0,也就是不做任何强制性的磁盘刷新指令,这时候的性能是最好的,但是风险也是最大的。因为一旦系统Crash,在binlog_cache中的所有binlog信息都会被丢失。

0 Comments
Leave a Reply