itdb 使用mysql_mysql replication(双主复制)(四)M-M

MySQL replication M-M

1、理论部分

1.1、Master to Master

53734e04d97859cbfea84ff6f4df4e5e.png

1)左右两台主机互为Master

2)不会同时做写操作,只一台做写操作

1.2、M-M模式的工作模型的介绍

217493a3e3170806bfe6422618c7d936.png

1)当左边的Master突然当机,有健康检测的前端将自动切换到右边的Master,不会造成前端的服务中断,请求可以继续,但由于出问题之前数据时可以同步的,所以数据是保持一致性的,我们可以继续将数据往下写。

73742ceab22fbdb0d9c3834f1e9dfd5f.png

2)当左边的Master都恢复正常,而新的数据都被提交到右边Master,数据都会同步到左边的Master上。

4c79a2b6d0f04d6ac5d2f34aa0591537.png

3)而当前左边的Master变成写操作的机器。

不能同时写入两台机器的原因:

当数据库设计到实务性操作的时候,增加写入点会破坏事务的唯一性和原则性的操作

2、实验部分

配置MySQL的replication的M-M模式

2.1、step1

基础环境配置

主机信息:

1)MySQL-RM

hostname=MySQL-RM

ipaddress=10.168.0.107

2)MySQL-LM

hostname=MySQL-LM

ipaddress=10.168.0.108

安装官方的yum源:yum -y install http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm

并安装以下rpm包:yum install -y mysql mysql-server mysql-devel

启动服务并设置服务自动启动:chkconfig mysqld on

/etc/init.d/mysqld start

开启服务的防火墙:

vim编辑/etc/sysconfig/iptables-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

04ce1ebbf2fa011b6ad96a8f54f627cd.png

重启iptables服务:/etc/init.d/iptables restart

ac33679cd8c509719d11a781d529679e.png2.2、setp2

In Right Master

vim 编辑/etc/my.cnf[mysqld]

server-id = 1

log-bin = on

以下参数是可选项:gtid-mode=on

enforce-gtid-consistency

log-slave-updates

log-bin

binlog-format=row

创建MySQL新用户权限grant super,reload,replication slave on *.* to repl@10.168.0.108 identified by 'repl';

flush privileges;

dc47e463e43d65ea1d40fc3e5339e575.png

重启MySQL服务quit

/etc/init.d/mysqld restart

e7160321a6d3dfaa15c0f0ae81bd8cda.pngcd /var/lib/mysql/

ls

可以发现新增以下两个二进制日志文件:

mysqld-bin.000001

mysqld-bin.index

33edbbf478c2a7972a1f8dfeff37e773.png

查看master角色的状态:mysql -uroot -p

show master status;

bd2b9d84971dc632ccd3c7dac92feb18.png

In Left Master

vim 编辑/etc/my.cnf[mysqld]

server-id = 2

log-bin = on

以下参数是可选项:gtid-mode=on

enforce-gtid-consistency

log-slave-updates

log-bin

binlog-format=row

重启MySQL服务/etc/init.d/mysqld restart

18ffa2eb220c8f3c409973bca5d02b0c.pngcd /var/lib/mysql/

ls

可以发现新增以下两个二进制日志文件:

mysqld-bin.000001

mysqld-bin.index

f7b0fdafc561d93b3dbb25ead9eb0c19.png

show master status;

cfcc18c295fd2d6d49865475c4acc26b.png

连接到Right Master:change master to

master_host='10.168.0.107',

master_user='repl',

master_password='repl';

start slave;

show slave status\G

8aff365d6a8b1669da208c5d9df7499e.png

a92208a35d45ea8f9783527ed39da39a.png

6a8771389d16db56b79b96e857891120.png

2.3、step3

In Left Mastermysql -uroot -p

grant super,reload,replication slave on *.* to repl@10.168.0.107 identified by 'repl';

flush privileges;

ea23e422774c4fd471a3709d2fb369b9.png

In Right Master

链接到Left Masterchange master to

master_host='10.168.0.108',

master_user='repl',

master_password='repl';

start slave;

show slave status\G

597598389bba0bb019395d48b6c9b498.png

419868ad80fadac80371150ed8ad4383.png

2.4、step4

测试

In Right Mastercreate database cmdschool;

show databases;

In Left Mastershow databases;

show databases;

cf631b8e3f8d0f2c1b6ff3e87d67dbd5.png

In Left Masterdrop database cmdschool;

show databases;

In Right Mastershow databases;

10fd0e989bcd765cc0e6bf6967a9b620.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值