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

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是单线程串行更新


你可能感兴趣的:(mysql,复制)