常见的MYSQL高可用解决方案

MySQL 是一种关系数据库管理系统,关联数据库将数据保存在不一样的表中,而不是将全部数据放在一个大仓库内,这样就增长了速度并提升了灵活性。MySQL 软件采用了双受权政策(本词条“受权政策”),它分为社区版和商业版,因为其体积小、速度快、整体拥有成本低,尤为是开放源码这一特色,通常中小型网站的开发都选择 MySQL 做为网站数据库。因为其社区版的性能卓越,搭配 PHP 和 Apache 可组成良好的开发环境。html

常见的MYSQL高可用解决方案
 

工具/原料

 
  • 计算机操做系统
  • MySQL

方法/步骤

 
  1. 1

    主从复制解决方案:这是MySQL自身提供的一种高可用解决方案,数据同步方法采用的是MySQL replication技术。MySQL replication就是从服务器到主服务器拉取二进制日志文件,而后再将日志文件解析成相应的SQL在从服务器上从新执行一遍主服务器的操做,经过这种方式保证数据的一致性。为了达到更高的可用性,在实际的应用环境中,通常都是采用MySQL replication技术配合高可用集群软件keepalived来实现自动failover,这种方式能够实现95.000%的SLA。java

    常见的MYSQL高可用解决方案
  2. 2

    MMM/MHA高可用解决方案:MMM提供了MySQL主主复制配置的监控、故障转移和管理的一套可伸缩的脚本套件。在MMM高可用方案中,典型的应用是双主多从架构,经过MySQL replication技术能够实现两个服务器互为主从,且在任什么时候候只有一个节点能够被写入,避免了多点写入的数据冲突。同时,当可写的主节点故障时,MMM套件能够马上监控到,而后将服务自动切换到另外一个主节点,继续提供服务,从而实现MySQL的高可用。mysql

    常见的MYSQL高可用解决方案
  3. 3

    Heartbeat/SAN高可用解决方案:在这个方案中,处理failover的方式是高可用集群软件Heartbeat,它监控和管理各个节点间链接的网络,并监控集群服务,当节点出现故障或者服务不可用时,自动在其余节点启动集群服务。在数据共享方面,经过SAN(Storage Area Network)存储来共享数据,这种方案能够实现99.990%的SLA。sql

    常见的MYSQL高可用解决方案
  4. 4

    Heartbeat/DRBD高可用解决方案:此方案处理failover的方式上依旧采用Heartbeat,不一样的是,在数据共享方面,采用了基于块级别的数据同步软件DRBD来实现。DRBD是一个用软件实现的、无共享的、服务器之间镜像块设备内容的存储复制解决方案。和SAN网络不一样,它并不共享存储,而是经过服务器之间的网络复制数据。数据库

    常见的MYSQL高可用解决方案
  5. 5

    NDB CLUSTER:国内用NDB集群的公司很是少,貌似有些银行有用。NDB集群不须要依赖第三方组件,所有都使用官方组件,能保证数据的一致性,某个数据节点挂掉,其余数据节点依然能够提供服务,管理节点须要作冗余以防挂掉。缺点是:管理和配置都很复杂,并且某些SQL语句例如join语句须要避免。服务器

    常见的MYSQL高可用解决方案
  6. 6

    使用第三方的Tungsten软件:使用java编写,不是MYSQL内置的,一样是MYSQL数据库复制,不过他不是用MYSQL内置的组件来作的,不但支持MYSQL数据库复制也支持异构数据库的复制,并且对异构数据库复制支持较好,例如MYSQL复制到ORACLE。网络

    常见的MYSQL高可用解决方案
    END

注意事项

 
  • ndb是一种存储引擎,一般在mysql cluster中使用。
  • LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。
  • Keepalived在这里主要用做RealServer的健康状态检查以及LoadBalance主机和BackUP主机之间failover的实现
相关文章
相关标签/搜索