首页 > 网站 > 建站经验 > 正文

详解数-据库高可用架构之路

2019-11-02 15:25:18
字体:
来源:转载
供稿:网友

   数据库高可用架构对于我们这些应用端开发的人来说是一个比较陌生的领域,是在具体的数据库产品之上搭建的环境,需要像DBA这样对数据库产品有足够的了解才能有所涉及,虽然不能深入其中,但可以通过一些经典的高可用架构学习其中的思想。就我所了解到的有以下几种:

  MySQL Replication

  MySQL Cluster

  Oracle RAC

  IBM HACMP

  Oracle ASM

  MySQL Replication

  MySQL Replication就是通过异步复制多个copy以达到提高可用性的目的,常规的复制架构有以下几种:

  Master-Slaves

  Master-Master

  Master-Master-Salves

  1)Master-Slaves

  Master- Slaves是最常用的提高可用的方法,特别是在互联网应用中,读远远大于写,因此提高读的可用性是首当其中的,Master-Slaves就是让写的操作集中在一台数据库Master上,然后这个Master会

破晓电影网[www.aikan.tv/special/poxiaodianyingwang/]
把更新的操作复制到其他数据库Slaves上,读的操作都发生在Slaves上,架构图如下所示:

详解数据库高可用架构之路

 

  如上图在SlaveC不可用时,读和写都不会中断,等SlaveC恢复后会自动同步丢失的数据,又能重新投入运转,可维护性非常好。但如果Master有问题就麻烦了,因此它只解决了读的高可用性,但不保证写的高可用性。

  2)Master-Master

  为解决上面谈的写的高可用性,MySQL提供了Master-Master的复制架构,如下所示:

详解数据库高可用架构之路

 

  一般说来都向MasterA写,MasterA同步数据到MasterB,当MasterA有问题时,会自动切换到MasterB,等MasterA恢复时,MasterB同步数据到MasterA

  3)Master-Master-Salves

  Master-Master-Salves是结合上面两种方案,是一种同时提供读和写高可用的复制架构,如下图所示:

详解数据库高可用架构之路

 

  MySQL Cluster

  MySQL Cluster主要由三个部分组成:

  SQL服务器节点

  NDB数据存储节点

  监控和管理节点

  三个部门的组成结构如下图所示:

详解数据库高可用架构之路

 

  这样的分层也是由MySQL本身把SQL处理和存储分开的架构相关系的。

  这样一来MySQL Cluster就可以分别在SQL处理和存储两个层次上做高可用的复制策略。在SQL处理层次上,比较容易做集群,因为这些SQL处理是无状态性的,完全可以通过增加机器的方式增强可用性。在存储层次上,通过对每个节点进行备份的形式增加存储的可用性,这类似与MySQL Replication,结构图如下所示:

详解数据库高可用架构之路

 

  Oracle RAC

  Oracle RAC和MySQL Cluster有些相似,但主要集中在SQL处理层的高可用性,而在存储上体现不多,结构图如下所示:

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表