mysql的主主复制模型

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql的主主复制模型相关的知识,希望对你有一定的参考价值。

演示mysql的双主复制的模型:

物理机为win7,虚拟机是2台centos7

节点1:192.168.255.2

节点2:192.168.255.3


yum安装mariadb-server5.5



配置节点1:

]# vim /etc/my.cnf

技术分享


配置节点2

]# vim /etc/my.cnf

技术分享


分别启动mysql服务:

]# systemctl start mariadb.service


分别在两节点上:设置复制权限的账号:

> GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO ‘repluser‘@‘192.168.255.%‘ IDENTIFIED BY ‘replpass‘;

> FLUSH PRIVILEGES;


注意:在实际工作中,只能授权单个IP,不能是通配符的形式授权;如果有多个ip,就每个ip单独执行一遍授权语句;


然后,设置两个节点都指向对方为主节点;

提前记录好对方的二进制日志文件事务所处的位置;然后就从这个位置开始复制:


节点1:查看并记录二进制日志文件事务所处的位置

技术分享

记录位置为499,将在节点2设置时使用;


节点2:查看并记录二进制日志文件事务所处的位置

技术分享

记录位置为509,将在节点1设置时使用;


设置节点1:

> CHANGE MASTER TO MASTER_HOST=‘192.168.255.3‘,MASTER_USER=‘repluser‘,MASTER_PASSWORD=‘replpass‘,MASTER_LOG_FILE=‘master-bin.000003‘,MASTER_LOG_POS=509;


设置节点2:

> CHANGE MASTER TO MASTER_HOST=‘192.168.255.2‘,MASTER_USER=‘repluser‘,MASTER_PASSWORD=‘replpass‘,MASTER_LOG_FILE=‘master-bin.000003‘,MASTER_LOG_POS=499;


分别在两节点上:设置

> START SLAVE;


此时,在两节点均可查看:

技术分享

技术分享

显示内容和主从复制基本相同,只不过都是互为双主的模型;


此时,双主模型配置完成,双方都可以通过对方复制了;


验证双主:

例如在节点1,创建一个新库:

> CREATE DATABASE mydb;

并查看节点1的状态:

技术分享


在节点2:

查看状态:

技术分享

查看同步到的新库:

技术分享

此时,已经验证了节点1写操作后,节点2同步节点1后完成数据备份;


再验证节点2发生写操作后,节点1同步节点2后完成数备份;

在节点2:

在新库中创建表:

> use mydb

> CREATE TABLE tb1 (id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,name CHAR(30));

技术分享


查看节点2状态:

技术分享


到节点1上查看同步后的结果:

技术分享


查看同步到的表:

技术分享


继续验证自动增长偏移量:

继续在节点1:给字段插入新值

> INSERT INTO tb1 (name) VALUES (‘Kobe Byrant‘),(‘Michael Jordan‘),(‘Yao Ming‘);

技术分享


在节点2:

也给字段插入新值,验证自动增长偏移量不会出现重复的id

> INSERT INTO tb1 (name) VALUES (‘Zhu Uuanzhang‘),(‘Zhu Di‘),(‘Zhu Yue‘);

技术分享

可验证,自动增长偏移量实现当两边分别插入新值后,id不会重复;


以上就是mysql主主复制模型的配置实现完成。

以上是关于mysql的主主复制模型的主要内容,如果未能解决你的问题,请参考以下文章

MySQL的主从复制与MySQL的主主复制

Mysql主主复制

MySQL 主主复制

MySQL数据库主主复制

mysql主主复制,只因为mycat集群需要

部署MySQL主主双向主从复制 M-M