加入收藏 | 设为首页 | 会员中心 | 我要投稿 常州站长网 (https://www.0519zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

五大常见的MySQL高可用方案

发布时间:2019-08-30 18:15:14 所属栏目:MySql教程 来源:咔咔侃技术
导读:副标题#e# 1.概述 我们在考虑MySQL数据库的高可用的架构时,主要要考虑如下几方面: 1.1 如果数据库发生了宕机或者意外中断等故障,能尽快恢复数据库的可用性,尽可能的减少停机时间,保证业务不会因为数据库的故障而中断。 1.2 用作备份、只读副本等功能的

SAN的概念是允许存储设备和处理器(服务器)之间建立直接的高速网络(与LAN相比)连接,通过这种连接实现数据的集中式存储。常用架构如下:

五大常见的MySQL高可用方案

使用共享存储时,MySQL服务器能够正常挂载文件系统并操作,如果主库发生宕机,备库可以挂载相同的文件系统,保证主库和备库使用相同的数据。

优点:

  • 两节点即可,部署简单,切换逻辑简单;
  • 很好的保证数据的强一致性;
  • 不会因为MySQL的逻辑错误发生数据不一致的情况;

缺点:

需要考虑共享存储的高可用;

  • 价格昂贵;
  • 2.4.2.DRBD磁盘复制

DRBD是一种基于软件、基于网络的块复制存储解决方案,主要用于对服务器之间的磁盘、分区、逻辑卷等进行数据镜像,当用户将数据写入本地磁盘时,还会将数据发送到网络中另一台主机的磁盘上,这样的本地主机(主节点)与远程主机(备节点)的数据就可以保证实时同步。常用架构如下:

五大常见的MySQL高可用方案

当本地主机出现问题,远程主机上还保留着一份相同的数据,可以继续使用,保证了数据的安全。

DRBD是linux内核模块实现的快级别的同步复制技术,可以与SAN达到相同的共享存储效果。

优点:

  • 两节点即可,部署简单,切换逻辑简单;
  • 相比于SAN储存网络,价格低廉;
  • 保证数据的强一致性;

缺点:

  • 对io性能影响较大;
  • 从库不提供读操作;

2.5.分布式协议

分布式协议可以很好解决数据一致性问题。比较常见的方案如下:

2.5.1.MySQL cluster

MySQL cluster是官方集群的部署方案,通过使用NDB存储引擎实时备份冗余数据,实现数据库的高可用性和数据一致性。

五大常见的MySQL高可用方案

优点:

  • 全部使用官方组件,不依赖于第三方软件;
  • 可以实现数据的强一致性;

缺点:

  • 国内使用的较少;
  • 配置较复杂,需要使用NDB储存引擎,与MySQL常规引擎存在一定差异;
  • 至少三节点;

2.5.2.Galera

基于Galera的MySQL高可用集群, 是多主数据同步的MySQL集群解决方案,使用简单,没有单点故障,可用性高。常见架构如下:

五大常见的MySQL高可用方案

优点:

  • 多主写入,无延迟复制,能保证数据强一致性;
  • 有成熟的社区,有互联网公司在大规模的使用;
  • 自动故障转移,自动添加、剔除节点;

缺点:

  • 需要为原生MySQL节点打wsrep补丁
  • 只支持innodb储存引擎
  • 至少三节点;

2.5.3.POAXS

Paxos 算法解决的问题是一个分布式系统如何就某个值(决议)达成一致。这个算法被认为是同类算法中最有效的。Paxos与MySQL相结合可以实现在分布式的MySQL数据的强一致性。常见架构如下:

五大常见的MySQL高可用方案

优点:

  • 多主写入,无延迟复制,能保证数据强一致性;
  • 有成熟理论基础;
  • 自动故障转移,自动添加、剔除节点;

缺点:

  • 只支持innodb储存引擎
  • 至少三节点;

3.总结

随着人们对数据一致性的要求不断的提高,越来越多的方法被尝试用来解决分布式数据一致性的问题,如MySQL自身的优化、MySQL集群架构的优化、Paxos、Raft、2PC算法的引入等等。

而使用分布式算法用来解决MySQL数据库数据一致性的问题的方法,也越来越被人们所接受,一系列成熟的产品如PhxSQL、MariaDB Galera Cluster、Percona XtraDB Cluster等越来越多的被大规模使用。

随着官方MySQL Group Replication的GA,使用分布式协议来解决数据一致性问题已经成为了主流的方向。期望越来越多优秀的解决方案被提出,MySQL高可用问题可以被更好的解决。

【编辑推荐】

  1. 为全时态数据赋能:腾讯TDSQL全时态数据库系统论文入选VLDB
  2. 详解oracle数据库主键SYS_GUID()
  3. 11条MySQL规范,你知道的有几个?
  4. 关于Oracle数据库Kfk: Async Disk IO等待事件深度解析
  5. 图解MySQL索引:B-树、B+树
【责任编辑:庞桂玉 TEL:(010)68476606】
点赞 0

(编辑:常州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读