6.mysql学习笔记:myql的复制拓扑

myql的复制拓扑

可以在任意的主库(master)和备库(slave)中建立复制,只有一个限制:一个备库(slave)只能有一个主库(master)

一般来讲我们在设计mysql复制拓扑的时候应该符合以下几个准则

1.一个mysql备库只能有一个主库;
2.每个备库必须要有一个唯一的服务器id;
3.一个主库可以有多个备库;
4.如果打开了log_slave_updates选项,一个备库可以把其主库上的数据变化传播到其他备库。


一主库多备库

顾名思义,也就是多个slave去复制一个主库,这种结构各个备库之间没有交互(各个slave的id必须不同),在有少量写操作大量读操作的情况下,这种配置非常有用。可以把读操作分摊到不同的备库中。

拓扑结构如下图所示:

这里写图片描述

用途如下:

1.为不同的角色使用不同的备库;
2.把一台备库当做待用的主库,除了复制没有其他数据传输;
3.将一台备库放到远程数据中心用作容灾;
4.延迟一个或多个备库,以备灾难恢复;
5.使用其中一个备库作为培训开发或者测试使用。


主动-主动模式下的主-主复制

主-主复制包含两个服务器,每个都作为对方的主库和备库。

如下图所示:

这里写图片描述

这种情况下如果两个服务器都对一个字段进行更新,容易导致数据的不同步。


主动-被动模式下的主-主复制

这个是构建容错性和高可用性系统的强大方式,主要区别在于其中的一台服务器是只读的被动服务器。如图所示:

这里写图片描述

这样可以使得反复切换主动和被动服务器非常方便,因为服务器的配置是对称的。

设置主动-被动的主-主拓扑结构在某种意义上类似于创建一个热备份,但是可以使用和这个热备份来提高性能,例如用它来执行读操作、热备份、“离线”维护。


拥有备库的主-主结构

此时我们为每个主库增加一个备库,这样就可以避免单点故障,增加了冗余。同时为了分摊压力可以把查询分配到备库上。

如下图所示:
这里写图片描述


主库、分发主库及备库

当备库的数量足够多时,会对主库造成很大的负载,比如每个备库都会在主库上开启一个线程执行binlog dump操作,并且它们不会共享binlog dump的资源。

因此,如果需要多个备库,一个较好的方法是从主库中移除负载,使用分发主库。分发主库其实也是一个备库,他的目的是提取和提供主库的二进制日志文件。把原本主库所需承担的压力分担给分发主库。

拓扑如下图所示:
这里写图片描述


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值