一、基本概念
MySQL 5.7前只能实现一主一从、一主多从或者多主多从的复制,如果想实现多主一从的复制,只好使用MariaDB,但是MariaDB又与官方的MySQL版本不兼容的,在MySQL 5.7版本可以实现多主一从的复制了
在 MySQL 集群中,有多种架构方式,包括一主一从、一主多从、多主多从、多主一从,以及其他一些变种。每种架构方式都有其特点和适用场景。
一主一从(Master-Slave):
主服务器将写操作记录到二进制日志(binlog)。
从服务器连接到主服务器,通过复制进程将主服务器的 binlog 应用到从服务器上。
读写比例不平衡,读操作较多的场景。
提高读性能,通过从服务器分担读负载。
数据备份,从服务器可以用于数据备份。
一个主服务器处理写操作,一个或多个从服务器用于处理读操作。
适用于读操作比写操作多的场景。
主从复制是异步的,主服务器的数据会被异步地同步到从服务器。
一主多从(Master-MultiSlave):
与一主一从相似,主服务器将写操作记录到 binlog,多个从服务器连接到主服务器进行复制。
读操作非常频繁,写操作较少的场景。
分布式读取,通过多个从服务器分担读负载。
数据备份,多个从服务器可以用于数据备份。
一个主服务器处理写操作,多个从服务器用于处理读操作。
适用于高读取、低写入的场景。
主从复制是异步的,主服务器的数据会被异步地同步到多个从服务器。
多主多从(Master-Master,Circular Replication):
每个主服务器都记录自己的 binlog,并通过异步复制将 binlog 同步到其他主服务器。
需要高可用性,任何一个主服务器故障时可以切换到其他主服务器。
读写负载均衡,可以在多个主服务器之间分担读写负载。
多个主服务器,每个主服务器都可以处理读和写操作。
数据可以在多个主服务器之间双向同步。
适用于高可用性和负载均衡的需求。
多主一从(Master-Fanout):
特点:
多个主服务器并行记录写操作到各自的 binlog,从服务器连接到其中一个主服务器进行复制。
写入频繁,需要水平扩展写性能。
读操作较少,可以通过单个从服务器满足读请求。
数据备份,从服务器用于备份数据。
多个主服务器处理写操作,一个从服务器用于处理读操作。
适用于写操作非常频繁,但读操作相对较少的场景。
读写分离,多个主服务器并行处理写操作,一个从服务器负责读操作。
主要用于简单部署和测试。但在生产环境中,这种方式可能会导致数据不一致和冲突。仅用于测试和开发环境。不建议在生产环境中使用。
其他方式:
分片(Sharding):
提供基于 Paxos 算法的多主同步复制。
可以实现高可用性和负载均衡。
Galera Cluster:
基于同步复制的集群方案,提供多主同步复制。
所有节点之间都是对等的,任何一个节点都可以处理写操作。
MySQL Group Replication:
将数据按照某个规则划分成多个片段,每个片段存储在独立的数据库节点上。
适用于大规模数据集,可以水平扩展。
每种架构方式都有其优点和适用场景,选择合适的架构取决于应用程序的需求,例如读写比例、数据量、可用性要求等。
二、具体实现
1、将主节点的数据同步到从节点
可以用navicat手动将表从任一master主机同步过来
2、配置my.cnf
3、配置多源复制
和普通复制不同的是需要增加 FOR CHANNEL ‘xxx’ 语句指定不同的频道复制。由于是多源复制必须指定参数 master_info_repository=table
4、配置跳过的GTID集合
配置完成,数据成功同步过来:
版权声明:本文内容来自CSDN:不吃小龙虾哦,遵循CC 4.0 BY-SA版权协议上原文接及本声明。
本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
原文链接:https://blog.csdn.net/shuo_house/article/details/127727769
如有涉及到侵权,请联系,将立即予以删除处理。
在此特别鸣谢原作者的创作。
此篇文章的所有版权归原作者所有,与本公众号无关,商业转载建议请联系原作者,非商业转载请注明出处。