固定链接 MySQL多源复制实战

MySQL多源复制实战

MySQL多源复制实战

本文是滴滴云开源框架教程系列文章的一篇。

一、多源复制概述

MySQL多源复制使复制从库能够同时从多个源接收事务。多源复制可用于将多个服务器备份到单个服务器,合并表分片,以及将来自多个服务器的数据合并到单个服务器。

二、多源复制的配置

多源复制拓扑中的主设备可以配置为使用基于全局事务标识符(GTID)的复制或二进制日志基于位置的复制。多源复制拓扑中的从库需要基于TABLE存储,多源复制与基于FILE存储不兼容。

1、配置先决条件,从库必须是基于表的存储

2、多源复制从库

基于Binlog的多源复制

基于GTID的多源复制

3、启动多源复制

启动所有复制源

启动单个复制源

4、停止多源复制

启动所有复制源

启动单个复制源

5、重置多源复制从库

要重置所有当前配置的复制通道:

要仅重置一个指定通道,请使用一个子句: FOR CHANNEL channel

三、多源复制的监控

通过性能表监控

四、多源复制的限制

1、多源复制拓扑中的一个从库的最大通道数为256

2、每个复制通道必须具有唯一(非空)名称

每个复制通道都有一个唯一的名称,该名称是最长为64个字符的字符串,并且不区分大小写。由于通道名称用于从表,因此用于这些字符集的字符集始终为UTF-8

3、每个通道的中继日志文件和索引文件都被命名 ,其中是使用该选项指定的基本名称,并且是记录到此文件的通道的名称。

总结:

多源复制可以解决多个分片合并、关联查询的问题,但是也有其自身的缺点;

缺点:

1、日常维护难度增大

2、采用基于Binlog的复制,故障转移复杂(建议基于GTID)

3、随着源增加,从库压力越来越大

参考资料:

https://dev.mysql.com/doc/refman/5.7/en/replication-multi-source-tutorials.html

滴滴云架构和数据库技术团队在实战方面积累了丰富的经验,敬请关注本系列文章的后续分享。

本文作者:陈俊川

您的留言将激励我们越做越好