多源复制和级联复制

Ⅰ、多源复制

1.1 多源复制的应用场景

  • 多个数据库实例的数据需要合并统计分析
  • 多个实例的数据放到一台机器备份

1.2 多源复制的限制

  • MySQL5.7.6开始才支持多源复制
  • 一个从库最多支持64个主库
  • 每多一个主,从上会多创建两个slave线程
  • 每个主库server_id必须不一致
  • 多源复制只能有一个复制是半同步
  • 尽量保证每个主同步过来的库名不要一样

1.3 部署

在语法层面上,只是在 原来的change master的基础上,增加了for channel 'channel_name'

前面的备份还原步骤略过,只写重要步骤

step1:

slave端配置复制的库,不然会有冲突

[mysqld]
replicate_do_db=db1
replicate_do_db=db2

step2:

第一个主:
mysql> change master to master_host='127.0.0.1', master_port=3006, master_user='rpl', master_password='123', master_auto_position=1 for channel 'ch1'; -- 多源复制 channel :ch1

mysql> start slave for channel 'ch1'; -- 启动ch1
Query OK, 0 rows affected (0.03 sec)

mysql> show slave status for channel 'ch1'G

第二个主类似

Ⅱ、级联复制

2.1 级联复制的应用场景

  • 跨机房复制,A--->B--|-->C(C跨机房),A挂,B提升为主,此时C不用做change master,缺点是复制延迟大,无法避免
  • 库的拆分,某库压力很大,可以使用级联复制将其独立出去

2.2 部署

在B上开启log_slave_updates,记录binlog

大同小异,不弄了

这块内容了解即可,总体没什么难度

原文地址:https://www.cnblogs.com/---wunian/p/8992924.html