Mysql数据库现在被更多的公司在线上使用,而且是越来越火,到底有多火,可以从权威数据库排名榜来看看。
数据库排名top 10
从上图可以看到,Mysql数据库已经是排名第二了,离排名第一的Oracle也只是一步之遥。
要在线上使用Mysql数据库,首先肯定得了解Mysql数据库有哪些架构,这些架构都有哪些优缺点,有了比较之后,这样才能选择合适的Mysql数据库架构去契合线上的业务。
双机热备架构
双机热备架构
这种是非常传统的双机热备高可用架构了,采用共享存储加RHCS软件,实现灾备切换。方案优点:简单,稳定方案缺点:同一时间,只有主节点提供Mysql数据库服务,备节点一直空闲,造成资源浪费,而且Mysql数据库的数据只有一份。
主从异步复制
主从异步复制
一主一从和一主多从,是Mysql数据库最常用的高可用架构了,下面就来看看这种架构的优缺点优点:
1.业务数据有多副本
2.实时灾备,非常灵活做故障切换,主数据库出现问题,可以切换到从数据库
3.实现读写分离,主库提供写服务,从库提供读服务
4.在从库做数据库备份,将业务影响降到最小
缺点:
1.由于此种架构采用主从异步复制,在灾备切换之后,会丢失部分业务数据
2.从节点不宜过多,最好不要超过5个,从节点太多,会对主库造成压力,影响业务
主从半同步
主从半同步
此架构是主从异步复制的升级,最大程度保证主从数据的一致性,当主从延迟不超过10秒,主从之间的数据是一致的,超过10秒,就会变成异步复制,当然这个10秒阈值是由参数(rpl_semi_sync_master_timeout)限制的。
优点:
1.增强主从复制之间数据库一致性
2.实现读写分离
3.只要主从之间还是半同步状态,主从切换,不会造成数据丢失
缺点
1.如果主从复制直接网络堵塞,或者延迟,则会导致数据库响应时间变长,影响业务。
双主半同步
双主半同步
如果你的业务是写多,可以采用这种架构
优点
1.可以实现双写,两个节点都可以对外提供写服务
2.只要主从之间还是半同步状态,主从切换,不会造成数据丢失
缺点
1.如果主从复制直接网络堵塞,或者延迟,则会导致数据库响应时间变长,影响业务。
多源复制
多源复制
当业务起量之后,就会采用分库分表,分表之后,后端有些分析查询又需要将数据汇总,这样多源复制就显得特别有用
优点
1.非常方便做数据汇聚,在分库分表的一些场景中,数据集中统计分析操作可以在1台从库服务器上实现。
2.将所有主库数据汇总到从库之后,可以做集中备份,将从库备份之后,可以不用再备份主库的数据了。
缺点
1.数据库运维变的复杂,操作稍有不慎,就会造成主从复制断开
级联复制
级联复制
这种架构,最长见在游戏邻域,它的读写可能达到9:1,甚至更高,所以需要创建更多的从节点,来解决读的问题,常见的一主多从架构,当从节点多了之后,会消耗主节点大量的cpu,内存和网络资源,影响业务的写操作。
优点
1.避免主节点的网络资源成为复制的瓶颈
2.将主节点的复制压力分摊下级从节点
缺点
1.增加级联层级,和复制延迟的风险点
延迟复制
延迟复制
开始看到这种的朋友,估计还会奇怪,怎么还会有主动设置主从复制延迟呢,这样做,主要是给你一个删库之后,还有改过自新的机会。
优点
1.当你误删除时,能更快恢复数据。当你手抖了,或者连错库了,把线上数据给误删除了,或者误drop库、表、其他对象,都可以让延迟从库在误操作前的时间点停下,然后进行恢复。
blackhole复制
blackhole复制
BlackHole其实是Mysql数据库的一种存储引擎,它的作用非常的单一,就是建立主从复制,只会从主库拉去binlog日志,但是写入到此引擎表的数据均会被丢弃掉,不做任何的存储。开启了log_slave_updates参数之后,它就能把复制向下传播,和普通的级联复制是一样的。
优缺点和普通的级联复制类似,这里就不再重复了。
组复制(MGR)
组复制
MGR是mysql Group Replication简称,中文名称是Mysql组复制,MGR是MySQL官方推出的一个全新的高可用与高扩展的解决方案,提供了高可用、高扩展、高可靠的MySQL集群服务,目前只支持MYSQL5.7和mysql8.0版本。
优点
1.高一致性:基于原生复制和paxos协议的组复制技术。
2.高容错性:有自动检测机制,当出现宕机后,会自动剔除问题节点,在2N+1个节点集群中,集群 只要N +1个节点还存活着,数据库就能稳定的对外提供服务。
3.高扩展性:可以在线增加和移除节点。
4.高灵活性:可以在单主模式和多主模式自由切换。
缺点
1.MGR技术比较新,稳定性方面还需要业界验证。