MySQL5.6的GTID复制模式,必须开启log_slave_updates参数,否则启动就报错,因为需要在binlog找到同步复制的信息(UUID:事务号),如果在密集型写的环境,比如双十一大促在线支付,这无疑增加了从库不必要的磁盘IO开销。 650) this.width=650;” src=”http://
MySQL5.6的GTID复制模式,必须开启log_slave_updates参数,否则启动就报错,因为需要在binlog找到同步复制的信息(UUID:事务号),如果在密集型写的环境,比如双十一大促在线支付,这无疑增加了从库不必要的磁盘IO开销。
650) this.width=650;” src=”https://img.gaodaima.com/d/file/2019/04/15/cd05f8d826da56348cc764a7c374a6e8.jpg” title=”gtid1.jpg” alt=”wKiom1RrBTLyonpmAAF1WPY7xsY589.jpg” />
(注:开启log_slave_updates参数,是把relay-log里的日志内容再记录到slave本地的binlog里。)
但在MySQL5.7里,官方终于做了调整,用一张gtid_executed系统表记录同步复制的信息(UUID:事务号),这样就可以不用开启log_slave_updates参数,减少了从库的压力。
650) this.width=650;” src=”https://img.gaodaima.com/d/file/2019/04/15/f2e7e68daecaae7cc3ce01fd543c8ea4.jpg” title=”gtid2.jpg” alt=”wKioL1RrDDuhFxJDAAKyEyfsYGI574.jpg” />
如果你玩过MariaDB10的话,可以看到这块MySQL5.7是参考了MariaDB10的GTID,但MySQL5.7还不能做到普通模式和GTID模式在线切换,如果你想切换为普通模式,必须在my.cnf里,同时在master和slave上注销掉以下参数:
gtid_mode = ONenforce_gtid_consistency = 1
并且重启mysql进程才生效。在易用性上,MySQL5.7 GTID还是美中不足。
参考:
650) this.width=650;” src=”https://img.gaodaima.com/d/file/2019/04/15/aa246来源gaodaimacom搞#^代%!码网74634e14862065462d3b9e451cf.jpg” title=”gtid3.jpg” alt=”wKiom1RrD0uzM54bAAEkVpk-UFA809.jpg” />