Replication基础(五) 多源复制

Replication基础(五) 多源复制以及管理操作


简介

多源复制是指一个从实例指向多个主实例,相当于把多个MySQL实例的数据汇聚到一个实例上面,这是MySQL 5.7版本开始支持的新的复制功能。

搭建步骤

MySQL5.7版本中增加了多源复制的功能,其中每一个复制关系,叫做一个复制通道,channel,这点从执行change master命令的时候可以看出来,如下:

mysql> change master to
    -> master_host='127.0.0.1',
    -> master_port=13307,
    -> master_user='rpl',
    -> master_password='rpl',
    -> master_auto_position=1
    -> for channel 'master_13307';

在5.6版本中,是不支持for channel的语法的。如果想同时复制另外一个实例的数据,则添加另外一条通道使用相同的命令,只需要更改主库的信息如下:

mysql> change master to
    -> master_host='127.0.0.1', //主库ip地址
    -> master_port=13309,       //主库端口
    -> master_user='rpl',       //主库提供用于建立复制关系的账号
    -> master_password='rpl',   //账号的密码
    -> master_auto_position=1   //使用GTID协议
    -> for channel 'master_13309';//channel名称

通道名称必须不一样。

添加通道

对一个已经存在的多源复制的从实例来说,无论之前的通道采用binlog+pos的方式,还是基于GTID的方式,都可以继续添加新的通道如果使用GTID的方式来进行复制,会有些麻烦。其操作步骤如下:
- 数据备份,通过mysqldump/mysqlpump/mydumper等工具对数据进行导出操作,导出命令类似如下

mysqldump --single-transaction --master-data=2 
  • 停止复制
  • 记录slave当前所有的gtid_executed
  • slave执行reset master
  • 数据倒入
  • slave执行reset master
  • slave 执行set global gtid_purged=”;此处设置的值应该是之前所有的gtid_executed+本次数据导出时备份文件中包含的gtid_executed值
  • slave执行change master to ** for channel ‘‘;
  • slave start slave 查看复制状态
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值