MySQL复制拓扑3

主要内容

  1. 给复制拓扑添加新的节点
    这一节将把server3加入到前面由server1和server2组成的复制结构中,server3会成为server2 的从属服务器,三个节点共同组成了一个三层的主从简单复制拓扑:server1->server2-> server3。要将server3作为server2的从属服务器,首先要把server2的历史数据复制到server3以保证数据库数据的完整性,这需要使用mysqldump工具以逻辑备份的方式将world数据库整体转储到一个sql文件中保存,然后把该文件发送到server3并导入即可。

一.给复制拓扑添加新的节点

1.使用mysqldump工具时可以添加–master-data=2选项,它会在输出文件中添加注释起来的CHANGE, MASTER TO语句,这样在server3上导入数据的同时会将server3的角色更改为server2的slave。

代码如下(示例):
mysqldump -uroot -p --master-data=2 \
-B world > /tmp/server2.sql

在这里插入图片描述

2.编辑导出的文件,去掉注释,并添加MASTER_HOST=‘server2’,MASTER_PORT=3306,也就是server3 的主服务器server2,保存。

在这里插入图片描述

3.将修改后的转储文件发送到server3,使用scp命令:

代码如下(示例):
scp /tmp/server2.sql root@server3:/tmp/

在这里插入图片描述

4.在server3确认转储文件:

代码如下(示例):
ll /tmp/server2.sql

在这里插入图片描述

5.登陆server3服务器,使用source命令导入转储文件:

代码如下(示例):
source /tmp/server2.sql

在这里插入图片描述

6.启动复制线程,检查slave从属服务器的状态,可以看到I/O线程和SQL线程都正常运行

代码如下(示例):
start slave user='repl' PASSWORD='oracle';

在这里插入图片描述
在这里插入图片描述

7.在server1上删除city表的id大于4070的行,然后在server2和server3上验证。

代码如下(示例):
select id,name
 from world.city
  order by id desc
   limit 5;

delete from world.city
where id >4070;

在这里插入图片描述
在这里插入图片描述

8.可以看到,server1上的删除操作,在server2和server3上都同步进行了删除,保持了数据的一致性。另外,在server2和server3上执行show slave status命令检查复制的状态,中继日志坐标位置分别是736780和875,在同一个复制结构中,都是slave角色.

在这里插入图片描述


总结

以上是今天要讲的内容,学到了MySQL复制拓扑的给复制拓扑添加新的节点。

  • 30
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

K要努力

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值