读取对方binlog日志并更新到本地数据库的过程;对方数据改变,就跟着改变;
一、自增ID重复问题
和主从有些区别,多主有写权限,涉及,如:
1)A、B两库上创建表
2)停A,B insert(自增),返回ID为1
3)停B,A insert(自增),返回ID为1
4)同时启动A,B,就会出现主键ID重复
解决方法:A插入奇数ID,B偶数,多的话,自定义算法
主主同步具体配置:
auto_increment_offset:自增起始数(1 .. 65535)。如有n台mysql机器,从第二台开始分为设1,2...n
auto_increment_increment 每次递增量,默认1(1 .. 65535),如n台mysql机器,这个值就设置为n。
auto_increment_increment都配为2
auto_increment_offset 分别配置为1和2。这是序号,第一台从1开始,第二台就是2,以此类推.....避免重复
二、实现操作过程
1、master上的my.cnf配置:
![](https://img.haomeiwen.com/i9930763/12ac63c2abc95138.png)
1)数据同步授权给slave
mysql> grant replication slave,replication client on *.* to repl@'192.168.0.104' identified by "repl123";
mysql> flush privileges;
2)最好将库锁住,仅允许读,保证一致;待主主同步环境部署后再解锁;锁住后,但重启mysql服务后就自动解锁
mysql> FLUSH TABLES WITH READ LOCK; //注意该参数设置后,如果自己同步对方数据,同步前一定要记得先解锁!
Query OK, 0 rows affected (0.00 sec)
![](https://img.haomeiwen.com/i9930763/0790c70bc96b6fd8.png)
2、slave上
授权同步数据权限 给master
![](https://img.haomeiwen.com/i9930763/fa210f94cda6205e.png)
![](https://img.haomeiwen.com/i9930763/39f66a325c5893dd.png)
3)执行同步
1、先在slave上做同步master的设置。(确保slave上要同步的数据,提前在master上存在。最好双方数据保持一致)
2、再在master上做slave,完成同步
![](https://img.haomeiwen.com/i9930763/5ed5c8871ec47515.png)
https://www.cnblogs.com/wade-lt/p/9008058.html
网友评论