mysql能进行双master配置,也就是A是B的slave,同时B是A的Slave,A,B2台机器上同时运行着2套复制的环境,a,b的机器还可以是别的机器的master,双master上面放个负载均衡器,可以减小单master的压力,使用时候需要确保2个机器上的更新数据是不同的,有可能a上的变更发送给b ,又返回给a,实际上不会发生,mysql将服务器id写入到每个事件里,服务器看到事件中的server_id跟自己一样就会跳过去,但多个server对同个表插入的时候,自增主键就有可能冲突,可以设置auto_increment_increment,auto_increment_offset这两个参数来降低影响。主要的配置是在配置文件中关闭只读,打开slave的记录更新
#read_only = 1
log-slave-updates = 1
#expire_logs_days = 30
然后再2台机器备份恢复成一致状态
在互相的change mater到对方,在看下slave状态是否正确
双主结构有2中不同的配置
主动-主动,写操作同时达到2个服务器,然后将变更发送给对方。
主动-被动,负责处理写的操作是主动master,另外一个只是保持同步的状态。
关于quto_increment_offset 与auto_increment_increment的使用见
一般使用的方式
在机器A上设置
set global auto_increment_increment=2;
set global auto_increment_offset=1;
在机器B上设置
set global auto_increment_increment=2;
set global auto_increment_offset=2;
参考文章参见下面:
http://sookk8.blog.51cto.com/455855/563519/