MYSQL中sql_log_bin变量在复制中的特殊用途

本文介绍如何通过设置SQL_LOG_BIN为OFF防止MySQL双MASTER结构中出现循环复制现象,并探讨了使用第三方工具实现多线程更新的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SQL_LOG_BIN = {ON | OFF}

如果在一连接线种中将该值设置为OFF,则该连接上客户端的所有更新操作在MYSQL二进制日志中不会记录日志。


在双MASTER的复制结构中,原生的MYSQL复制中是不会出现循环复制的,因为可以判断server-id来决定

但是如用一种第三方的工具,模拟SLAVE连接MASTER获取binlog,然后这个工具再连接真正的SLAVE,将主库的binlog更新到SLAVE,那么SLAVE将无法区分这个更新是从主库来的,还是其它连接真正的更新SLAVE,在SLAVE的log_bin=ON时,这个更新将会又被传回MASTER,而MASTER也识别不出来,将出现循环复制


那么现在可以这样做,在这个第三方工具连接SLAVE后SET sql_log_bin = OFF,则该连接上对SLAVE的更新不会记入binlog,因为它是从MASTER上同步过来的,不记入SLAVE的binlog也没有太大问题


注:自己实现或用第三方的复制,可以实现多线程的update,而不是象原生slave update是单线程串行更新


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值