本站所有文章均为原创,如您有所获益,恳请帮忙点击站内广告支持一下,您的帮助是我持续更新的动力!
  • 首页
  • MySQL
  • MySQL主从复制(5)多源主从复制

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

发布:TangLu2021-3-15 14:11分类: MySQL 标签: mysql 主从

一、多源复制介绍

当业务数据被打散到多个数据库实例后,如果需要实现一个从库同时同步多个主库的数据就需要使用多源复制这样的主从架构。在多源复制架构中,从库通过多个不同的复制通道(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线程

温馨提示如有转载或引用以上内容之必要,敬请将本文链接作为出处标注,谢谢合作!
版权所有:《Linux运维技术学习站点
文章标题:《MySQL主从复制(5)多源主从复制
除非注明,文章均为 《Linux运维技术学习站点》 原创
转载请注明本文短网址:http://www.linuxe.cn/post-494.html  [生成短网址]
et_highlighter51

已有 0/5243 人参与

发表评论:

欢迎分享Linux运维技术学习站点

欢迎使用手机扫描访问本站,还可以关注微信哦~