MySQL主从复制(5)多源主从复制

本文介绍了MySQL的多源复制技术,允许从库同时同步多个主库数据,每个从库可配置256个通道,每个通道独立运行。配置涉及创建复制用户、设置通道及管理命令,如`startslave forchannel`。注意半同步复制不支持多源复制,启用GTID应在初始化时完成。此外,多源复制会带来多个IO线程和SQL线程,以及带通道名的中继日志。
摘要由CSDN通过智能技术生成

一、多源复制介绍

当业务数据被打散到多个数据库实例后,如果需要实现一个从库同时同步多个主库的数据就需要使用多源复制这样的主从架构。在多源复制架构中,从库通过多个不同的复制通道(channel)来接受不同主库的数据,然后将这些数据存放在以通道命名的relaylog中。在MySQL 5.7中一个从库最多可以配置256个复制通道,这些通道名称不能重复(多源复制中每个数据库名也不可重复)。从库数据量控制在1T以内,除非有很好的存储设备,如PCIE-SSD。每个通道可以独立配置和运行,对于数据库的日志等相关配置,每个通道也会生成各自的文件。另需要注意由于半同步复制仅与默认复制通道(for channel "")兼容,不支持与多源复制混用。如果要启用GTID,最好在初始化多源复制时就一并启用,而不要中途调整架构。所有实例复制模式要统一,不能GTID与传统复制混用。

二、多源复制部署与维护

1、多台主库配置和普通复制区别不大,并且仅创建复制用户即可

vi /etc/my.cnf
...
master-info-repository = TABLE  #必须为TABLE
gtid-mode = off
...

mysql > grant replication slave client on *.* to 'repl'@'192.168.100.103' identified by '123456';  #每个主库创建一个复制用户即可

2、从库配置时需要创建通道 

vi /etc/my.cnf
...
relay-log-info-repository = TABLE  #必须为TABLE
...

mysql > change master to master_host='192.168.100.101',master_user='repl',master_password='123456',master_auto_position=1 for channel 'master-101';  #channel的名字可以自定义
mysql > change master to master_host='192.168.100.102',master_user='repl',master_password='123456',master_auto_position=1 for channel 'master-102';  #channel的名字可以自定义

3、通道操作命令

开启多源复制后,由于存在多个通道,所以部分命令需要指明通道名(在上一步配置主从时已经有用到),否则命令对所有通道生效,示例如下

start slave for channel  'master-102'  #指定启动通道名为master-102的复制线程
stop slave for channel  'master-102'
show slave status  for channel  'master-102'
show relaylog events  for channel  'master-102'
flush relay logs  for channel  'master-102'
reset slave for  for channel  'master-102'

4、在文件系统层面,中继日志名中将带有复制通道的名字;在processlist层面,将会有多个IO线程和SQL线程 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值