mysql主主互备+原来mysql主从架构

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql主主互备+原来mysql主从架构相关的知识,希望对你有一定的参考价值。

http://wsw26.blog.51cto.com/1442148/1749125我这个A已做了BC的主架构上增加一台D的虚拟机(同一个环境),我的目的是D和A主主互备,BC继续做A的从,既是D<-->A-->BC这样架构(类似级联的)


技术分享

准备工作:
(1)D的IP是192.168.0.190,A的IP是192.168.0.8,B的IP是192.168.0.140,C的IP是192.168.0.141
(2)将A的mysql备份的sql通过scp传去D那里再从D那里新建对应的数据库名字后导入刚刚scp传过来的sql库,BC两个从库基本不用动它的了

一、首先在D和A的my.cnf做如下配置(红色圈住的代表是要配置正确)

技术分享



技术分享技术分享

read-only = 0/1    0: 允许从属服务器独立地执行SQL命令(默认设置); 1: 从属服务器只能执行来自主控服务器的SQL命令。


配置auto-increment-increment&auto-increment-offset的值


关于sync_binlog的数值:
http://blog.csdn.net/wulantian/article/details/9965905,http://my.oschina.net/erichd/blog/499606?p=1

二、在D和A的mysql里先将各自同步的库锁表:flush tables with read lock;后,根据show master status\G;查到master的信息,再执行change master to master命令来做主从,只是D和A都先要执行:

技术分享

技术分享


如果show slave status\G;提示有错误的,各自就要先stop slave;reset slave;,再执行以下:
D:mysql> grant replication slave on *.* to ‘repl‘@‘192.168.0.8‘ identified by ‘123456‘;  
A:   mysql> grant replication slave on *.* to ‘repl‘@‘192.168.0.190‘ identified by ‘123456‘;  
D:mysql> flush tables with read lock;
A:mysql> flush tables with read lock;
D:  mysql> change master to  master_host=‘192.168.0.8‘,master_user=‘repl‘,master_password=‘123456‘,master_log_file=‘mysql-bin.000010‘,master_log_pos=357;
A:  mysql> change master to master_host=‘192.168.0.190‘,master_user=‘repl‘,master_password=‘123456‘,master_log_file=‘mysql-bin.000013‘,master_log_pos=440;  
各自flush privileges;start slave;unlock tables;show slave status\G;

技术分享

技术分享


三、即可测试,D和A分别对db2的库各自操作,use db2(我的mysql库备份出来的库文件名)来删除库里面的其中一个表可否同步删除成功(能各自同步数据了,mysql_binlog会产生变化)


技术分享

技术分享

技术分享

技术分享


这样就可以基本大功告成了,数据同步,主主(DA)互备+mysql一主二从(A,BC)的架构

本文出自 “Steven一直不放弃” 博客,请务必保留此出处http://wsw26.blog.51cto.com/1442148/1759460

以上是关于mysql主主互备+原来mysql主从架构的主要内容,如果未能解决你的问题,请参考以下文章

mysql主主互备模式配置

MySQL主主互备结合keepalived实现高可用

MySQL双主互备模式架构

Mysql5.7主主互备安装配置

mysql 主主互备

Mysql/MariaDB配置主从复制备份