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

原创 2015年11月22日 22:33:59

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的资源。

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

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


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

MySQL复制常用拓扑结构详解

复制的体系结构有以下一些基本原则: (1)    每个slave只能有一个master; (2)    每个slave只能有一个唯一的服务器ID; (3)    每个master可以有很多slave;...

MySQL复制常用拓扑结构详解

复制的体系结构有以下一些基本原则: (1)    每个slave只能有一个master; (2)    每个slave只能有一个唯一的服务器ID; (3)    每个master可以有很多slave;...

mysql主从复制-CHANGE MASTER TO 语法详解

1 简介 配置mysql主从复制时,在从机上需要进行CHANGE MASTER TO操作,以确定需要同步的主机IP,用户名,密码,binlog文件,binlog位置等信息。 主从同步的...

2.myql数据导入到solr,并建立solr索引(学习笔记)

1.1     业务域名的配置1.1.1   需求要使用solr实现电商网站中商品搜索。电商中商品信息在mysql数据库中存储了,将mysql数据库中数据在solr中创建索引。需要在solr的sche...

6.zabbix学习笔记:zabbix监控mysql(一)

zabbix监控mysql在zabbix中自带对mysql监控的模板(Template App MySQL),他对于mysql的监控内容包括CRUD操作以及状态监控等信息(监控的内容相对比较有限),如...

MySQL学习笔记6:索引

MySQL学习笔记6:索引 索引是创建在表上的,对数据库表中一列或多列的值进行排序的一种结构 其作用主要在于提高查询的速度,降低数据库系统的性能开销 通过索引,查询数据不必读完记录的...

MySQL学习笔记6:运算符和函数

MySQL字符函数 数值运算符与函数 比较运算符与函数 日期时间函数 信息函数 聚合函数 加密函数...

MySQL学习笔记_6_SQL语言的设计与编写(下)

SQL语言的设计与编写(下) --SELECT查询精讲 概要: SELECT[ALL | DISTINCT] #distinct 明显的,清楚的,有区别的 {*|table.*|...

数据结构 学习笔记(九):图(下):最小生成树(Prim,Kruskal 算法),拓扑排序 AOV,关键路径 AOE

最小生成树什么是最小生成树解决最小生成树有很多算法,但是归结起来都是贪心算法。贪心算法: 什么是“贪”:每一步都要最好的 什么是“好”:权重最小的边 但是因为是最小生成树,所以这个贪心算法还需要约束:...
  • Jurbo
  • Jurbo
  • 2017年07月10日 15:43
  • 794

拓扑排序,数据结构学习笔记8.1.4

/* 邻接表存储 - 拓扑排序算法 */ bool TopSort( LGraph Graph, Vertex TopOrder[] ) { /* 对Graph进行拓扑排序...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:6.mysql学习笔记:myql的复制拓扑
举报原因:
原因补充:

(最多只允许输入30个字)