Mysql数据库现在被更多的公司在线上使用,而且是越来越火,到底有多火,可以从权威数据库排名榜来看看。




postgresSql双机热备 mysql双机热备方案比较_数据库

数据库排名top 10



从上图可以看到,Mysql数据库已经是排名第二了,离排名第一的Oracle也只是一步之遥。

要在线上使用Mysql数据库,首先肯定得了解Mysql数据库有哪些架构,这些架构都有哪些优缺点,有了比较之后,这样才能选择合适的Mysql数据库架构去契合线上的业务。

双机热备架构




postgresSql双机热备 mysql双机热备方案比较_数据库_02

双机热备架构



这种是非常传统的双机热备高可用架构了,采用共享存储加RHCS软件,实现灾备切换。方案优点:简单,稳定方案缺点:同一时间,只有主节点提供Mysql数据库服务,备节点一直空闲,造成资源浪费,而且Mysql数据库的数据只有一份。

主从异步复制




postgresSql双机热备 mysql双机热备方案比较_数据_03

主从异步复制



一主一从和一主多从,是Mysql数据库最常用的高可用架构了,下面就来看看这种架构的优缺点优点:
1.业务数据有多副本
2.实时灾备,非常灵活做故障切换,主数据库出现问题,可以切换到从数据库
3.实现读写分离,主库提供写服务,从库提供读服务
4.在从库做数据库备份,将业务影响降到最小

缺点:
1.由于此种架构采用主从异步复制,在灾备切换之后,会丢失部分业务数据
2.从节点不宜过多,最好不要超过5个,从节点太多,会对主库造成压力,影响业务

主从半同步




postgresSql双机热备 mysql双机热备方案比较_数据库_04

主从半同步



此架构是主从异步复制的升级,最大程度保证主从数据的一致性,当主从延迟不超过10秒,主从之间的数据是一致的,超过10秒,就会变成异步复制,当然这个10秒阈值是由参数(rpl_semi_sync_master_timeout)限制的。

优点:
1.增强主从复制之间数据库一致性
2.实现读写分离
3.只要主从之间还是半同步状态,主从切换,不会造成数据丢失

缺点
1.如果主从复制直接网络堵塞,或者延迟,则会导致数据库响应时间变长,影响业务。

双主半同步




postgresSql双机热备 mysql双机热备方案比较_sql数据库_05

双主半同步



如果你的业务是写多,可以采用这种架构

优点
1.可以实现双写,两个节点都可以对外提供写服务
2.只要主从之间还是半同步状态,主从切换,不会造成数据丢失

缺点
1.如果主从复制直接网络堵塞,或者延迟,则会导致数据库响应时间变长,影响业务。

多源复制




postgresSql双机热备 mysql双机热备方案比较_sql数据库_06

多源复制



当业务起量之后,就会采用分库分表,分表之后,后端有些分析查询又需要将数据汇总,这样多源复制就显得特别有用

优点
1.非常方便做数据汇聚,在分库分表的一些场景中,数据集中统计分析操作可以在1台从库服务器上实现。
2.将所有主库数据汇总到从库之后,可以做集中备份,将从库备份之后,可以不用再备份主库的数据了。

缺点
1.数据库运维变的复杂,操作稍有不慎,就会造成主从复制断开

级联复制




postgresSql双机热备 mysql双机热备方案比较_mgr未同步 mysql_07

级联复制



这种架构,最长见在游戏邻域,它的读写可能达到9:1,甚至更高,所以需要创建更多的从节点,来解决读的问题,常见的一主多从架构,当从节点多了之后,会消耗主节点大量的cpu,内存和网络资源,影响业务的写操作。

优点
1.避免主节点的网络资源成为复制的瓶颈
2.将主节点的复制压力分摊下级从节点

缺点
1.增加级联层级,和复制延迟的风险点

延迟复制




postgresSql双机热备 mysql双机热备方案比较_postgresSql双机热备_08

延迟复制



开始看到这种的朋友,估计还会奇怪,怎么还会有主动设置主从复制延迟呢,这样做,主要是给你一个删库之后,还有改过自新的机会。

优点
1.当你误删除时,能更快恢复数据。当你手抖了,或者连错库了,把线上数据给误删除了,或者误drop库、表、其他对象,都可以让延迟从库在误操作前的时间点停下,然后进行恢复。

blackhole复制




postgresSql双机热备 mysql双机热备方案比较_postgresSql双机热备_09

blackhole复制



BlackHole其实是Mysql数据库的一种存储引擎,它的作用非常的单一,就是建立主从复制,只会从主库拉去binlog日志,但是写入到此引擎表的数据均会被丢弃掉,不做任何的存储。开启了log_slave_updates参数之后,它就能把复制向下传播,和普通的级联复制是一样的。

优缺点和普通的级联复制类似,这里就不再重复了。

组复制(MGR)




postgresSql双机热备 mysql双机热备方案比较_mgr未同步 mysql_10

组复制



MGR是mysql Group Replication简称,中文名称是Mysql组复制,MGR是MySQL官方推出的一个全新的高可用与高扩展的解决方案,提供了高可用、高扩展、高可靠的MySQL集群服务,目前只支持MYSQL5.7和mysql8.0版本。

优点
1.高一致性:基于原生复制和paxos协议的组复制技术。
2.高容错性:有自动检测机制,当出现宕机后,会自动剔除问题节点,在2N+1个节点集群中,集群 只要N +1个节点还存活着,数据库就能稳定的对外提供服务。
3.高扩展性:可以在线增加和移除节点。
4.高灵活性:可以在单主模式和多主模式自由切换。

缺点
1.MGR技术比较新,稳定性方面还需要业界验证。