`
周英能
  • 浏览: 187946 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

MySQL高可用解决方案(MySQL HA Solution) -转载

 
阅读更多

什么是高可用性?
很多公司的服务都是24小时*365天不间断的。比如Call Center。这就要求高可用性。再比如购物网站,必须随时都可以交易。那么当购物网的server挂了一个的时候,不能对业务产生任何影响。这就是高可用性。

高可用性2个问题:
如何共享数据或同步数据?如何处理failover?
解释failover,意思就是当服务器down掉,或者出现错误的时候,可以自动的切换到其他待命的服务器,不影响服务器上App的运行。

对于分布式数据库系统。如何架构才能保证其高可用性呢?以MySQL为例。
1. MySQL replication with manual failover
同步数据是采用MySQL replication的方法,在MySQL分表分块到主从已经解释。简单的说就是从库根据主库的日志来做相应的处理,保证数据的一致。通常还配合MySQL Proxy或Amoeba等进行读写分离减少服务器压力。
manual failover,显然当Master挂掉时,利用本方式是需要手动来处理failover,一般来说是将slave更改为server。
可用性达到: 98%-99.9+%

2. Master-Master with MMM manager(Multi-Master Replication Manager)
同步数据的方式是Multi-Master Replication Manager,在MySQL分表分块到主从解释,多主多从的设置,是一个loop环形,每个DB既是前一个DB的Slave又是后一个的Master。优势就在于,一个Master挂掉,也还可以继续DB操作。每个DB都可以进行读写,分散压力。
可用性达到:99%

3. Heartbeat/SAN
处理failover的方式是Heartbeat,Heartbeat可以看成是一组程序,监控管理各个node间连接的网络。当node出现错误时,自动启动其他node开始服务。Heartbeat必须解决的一个问题就是split brain,在网络中的一个node down掉后,每个node都会认为其他node down掉并尝试开始服务,因为产生数据冲突。

通过SAN来共享数据。
SAN:Storage Area Network,是一种LAN来处理大数据量的传输,提供了计算机和存储系统之间的数据传输。各个计算机组成的集群可以通过SAN共享存储。
MySQL高可用解决方案(MySQL <wbr>HA <wbr>Solution)

当server1挂掉的时候,Heartbeat监控到启动Server2的服务。而因为采用了SAN来共享了存储,Server2可以直接利用SAN网络中的数据。通过这种方式来提供高可用的解决方案。
可用性达到: 99.5%-99.9%

4. Heartbeat/DRBD
处理failover的方式依旧是Heartbeat。
同步数据使用DRBD:Distributed Replicated Block Device(DRBD)是一个用软件实现的、无共享的、服务器之间镜像块设备内容的存储复制解决方案。和SAN网络不同,它并不共享存储,而是通过服务器之间的网络复制数据。
MySQL高可用解决方案(MySQL <wbr>HA <wbr>Solution)
可用性达到: 99.9%

5. MySQL Cluster(NDB Cluster)
MySQL Cluster也是由各个DB node组成一个cluster,在这个cluster中由网络连接。可以自由的增减node的个数来对应数据库压力。

MySQL高可用解决方案(MySQL <wbr>HA <wbr>Solution)

synchronous replication(同步复制,要不同时成功要么同时失败)的方式来同步各个node的数据。然后对各个table进行partition,基于各个table的primary key。
采用了Shared Nothing Architecture的结构。不共享任何数据,而是每个node都同步好各自的数据。这样即使是PC也可以轻松被加入到Shared Nothing的结构中。
   Share disk              Share nothing                Share memory 
MySQL高可用解决方案(MySQL <wbr>HA <wbr>Solution)
很难懂,我猜想MySQL Cluster的结构应该和Hadoop中的HDFS(Hadoop Distributed File System)相似,按照key来做partition,然后将各个partition通过synchronous的方式同步的保存到各个DataNode上,Management Node来监听管理Cluster,通过SQL Node来访问DataNode上的数据。
分享到:
评论

相关推荐

    MySQL高可用解决方案_社区 .pdf

    本文将重点介绍MySQL高可用性的演变历程、常用解决方案,以及InnoDB Cluster和群组复制(MySQL Group Replication)的详解。 ### MySQL高可用性的演变 MySQL的高可用性经历了多次技术演进。从早期的版本3.23开始,...

    MySQL高可用解决方案_社区

    1. **主从复制**:这是MySQL最基础的高可用方案,通过配置主库和从库,数据在主库上写入后,会自动同步到从库。这种架构可以实现读写分离,提高读取性能,并在主库故障时快速切换到从库,降低单点故障的风险。 2. *...

    Linux下基于keepalived的mysql高可用实现方案(HA)

    router_id Mysql-HA } vrrp_instance VI_1 { state BACKUP interface ens192 virtual_router_id 51 priority 100 advert_int 1 nopreempt authentication { auth_type PASS auth_pass 1111 } virtual...

    MySQL高可用方案探究.pdf

    MySQL高可用方案探究 MySQL作为广泛使用的开源关系型数据库管理系统,其高可用性是保障业务连续性和数据完整性的重要因素。本篇将深入探讨一种基于LVS(Linux Virtual Server)+Keepalived+MySQL的单点写入主主同步...

    MySQL高可用方案搭建手册

    MySQL高可用方案是数据库系统设计中的重要组成部分,其目的是确保数据服务在面临各种故障时能够持续稳定地提供服务。在企业级应用中,MySQL数据库的高可用性是至关重要的,因为它直接影响到业务的正常运行和用户体验...

    MySQL高可用方案大全

    Lvs+Keepalived+MySQL 单点写入主主同步高可用方案 Lvs+Keepalived+MySQL 单点写入读负载均衡主主同步高可用方案 Heartbeat高可用MySQL主主同步方案 Heartbeat+DRBD+MySQL高可用方案 MMM高可用MySQL方案

    KEEPALIVED+MYSQL主主同步=MYSQL高可用(HA)集群.docx

    KEEPALIVED+MYSQL主主同步=MYSQL高可用(HA)集群 本文档主要讲述了使用 KEEPALIVED 和 MYSQL 实现高可用性的集群解决方案。该解决方案可以确保 MYSQL 服务器的高可用性和冗余性,避免单点故障。 首先,作者提到了...

    kubernetes部署mysql高可用

    1. 创建PV和PVC:使用`kubectl apply -f mysql-pv.yaml`和`kubectl apply -f mysql-pvc.yaml`命令。 2. 部署MySQL StatefulSet:使用`kubectl apply -f mysql-statefulset.yaml`命令。 3. 创建Service:使用`kubectl...

    Mysql数据库高可用性方案实践

    1. Lvs+Keepalived+Mysql单点写入主主同步高可用方案: - 该方案通过Lvs(Linux Virtual Server)来实现负载均衡,Keepalived软件来实现主备切换。 - 主备节点的MySQL数据库进行主主同步,数据会即时复制到对方...

    Mysql HA Scale-Out

    MySQL高可用性(High Availability, HA)和扩展性(Scale-Out)是数据库系统设计中的关键组成部分,旨在确保数据的持续可用性和系统性能的提升。在这个主题中,我们将深入探讨MySQL在实现HA和Scale-Out方面的策略、...

    mysql高可用集群方案中文

    除了MySQL官方提供的高可用解决方案外,还有许多第三方工具和服务可以帮助构建MySQL的高可用环境,如: - **Linux Heartbeat和MySQL复制**:通过Linux Heartbeat监控MySQL服务的状态,当主服务器出现问题时,自动将...

    MySQL高可用-多种方案

    本文将探究多种 MySQL 高可用方案,包括 LVS+Keepalived+Mysql 单点写入主主同步高可用方案、LVS+Keepalived+Mysql 单点写入读负载均衡主主同步高可用方案等。 LVS+Keepalived+Mysql 单点写入主主同步高可用方案 ...

    数据架构设计与实践MySQL在高可用演进之路V2.pdf

    高可用性(High Availability,HA)是衡量系统无中断运行能力的标准,通常用年故障时间来表示,如99.9999%的高可用性意味着每年只有32秒的停机时间。 1. **第一代传统复制:MHA及使用架构** - 在MySQL版本5.5及更...

    mysql高可用方案

    标题 "mysql高可用方案" 暗示本文档的主题是关于MySQL数据库的高可用性解决方案。高可用性(High Availability,简称HA)是指系统能够在任何时刻提供其功能的能力,哪怕是在单点故障(single point of failure,简称...

    MySQL-集群最佳解决方案

    MySQL集群最佳解决方案的知识点主要包括MySQL的高可用性解决方案、MySQL复制技术、MySQL集群技术和第三方合作伙伴提供的解决方案。下面将详细阐述这些知识点。 1. MySQL的高可用性解决方案 高可用性(High ...

    高可用性、负载均衡的mysql集群解决方案

    高可用性、负载均衡的mysql集群解决方案

    深入解析Oracle与MySQL在高可用性解决方案上的差异

    Oracle和MySQL作为两个主流的数据库管理系统,提供了不同的高可用性解决方案。这些解决方案在设计、实现和应用场景上各有特点。本文将深入探讨Oracle与MySQL在高可用性解决方案上的差异,并提供实际的代码示例。 ...

    mysql-MMM实现mysql高可用

    MySQL-MM(Master-Master Replication Manager)是一种用于MySQL数据库的高可用性和负载均衡解决方案,它构建在MySQL主主复制的基础上,提供了更为高级的管理和监控功能。在这个系统中,两个MySQL服务器互相作为彼此的...

Global site tag (gtag.js) - Google Analytics