1.多源复制介绍
MySQL5.7 开始支持多源复制(Multi-Source Replication)也就是多主一从的复制架构,架构图如下:
2.为什么要使用多源复制
(1)灾备作用:将各个库汇总在一起,就算是其他库都挂了(整个机房都无法连接了),还有最后一个救命稻草;
(2)备份:直接在这个从库中做备份,不影响线上的数据库;
(3)减少成本:不需要每个库都做一个实例,也减少了 DBA 的维护成本;
(4)数据统计:后期的一些数据统计,需要将所有的库汇总在一起。
二、搭建 MySQL 多源复制
1.实验环境
多源复制是支持 GTID 和 Binlog + Position ,这篇文档以 GTID 复制来编写
搭建注意事项:
(1)每个实例上 DB 名字不能一样
(2)创建用户或是复制用户时名字不能一样,如果经常遇到一样的账号,或是为了规范创建的账号是一样的,考虑在 slave 的过滤规则把 mysql 复制忽略掉,
2.配置文件
master1:
master2:
slave:
3.启动数据库并确认 server_uuid
启动数据库:
确认 server-uuid
master1:
master2:
slave:
在复制环境或者多源复制环境中每个数据库的 server_uuid 不要相同,否则无法同步。
4.创建复制账号
master1:
master2:
5.从库启动复制
我们这里都是新环境搭建的复制,所以没有 mysqldump 备份原来的数据,如果是旧环境中配置多源复制,就需要使用 mysqldump 备份数据并导入到 slave 库中。
GTID
Binlog + Position
如果是 Binlog + Postion 方式搭建的多源复制,请使用欧冠如下命令
6.查看多源复制状态
查看所有多源 channel 复制状态