• MySQL学习记录


    MySQL学习记录 - 高可用架构

    一、数据库复制

    1、异步复制(Asynchronous replication)

    MySQL默认的复制即是异步的,主库在执行完客户端提交的事务后会立即将结果返给给客户端,并不关心从库是否已经接收并处理,

    这样就会有一个问题,主如果crash掉了,此时主上已经提交的事务可能并没有传到从上,如果此时,强行将从提升为主,可能导致新主上的数据不完整。

    2、全同步复制(Fully synchronous replication)

    指当主库执行完一个事务,所有的从库都执行了该事务才返回给客户端。因为需要等待所有从库执行完该事务才能返回,所以全同步复制的性能必然会收到严重的影响。

    3、半同步复制(Semisynchronous replication)

    介于异步复制和全同步复制之间,主库在执行完客户端提交的事务后不是立刻返回给客户端,而是等待至少一个从库接收到并写到relay log中才返回给客户端。

    相对于异步复制,半同步复制提高了数据的安全性,同时它也造成了一定程度的延迟,这个延迟最少是一个TCP/IP往返的时间。所以,半同步复制最好在低延时的网络中使用。

    4、异步与半同步异同

    默认情况下MySQL的复制是异步的,Master上所有的更新操作写入Binlog之后并不确保所有的更新都被复制到Slave之上。

    异步操作虽然效率高,但是在Master/Slave出现问题的时候,存在很高数据不同步的风险,甚至可能丢失数据。

    MySQL5.5引入半同步复制功能的目的是为了保证在master出问题的时候,至少有一台Slave的数据是完整的。

    在超时的情况下也可以临时转入异步复制,保障业务的正常使用,直到一台salve追赶上之后,继续切换到半同步模式。

    二、主从复制/主主复制

    主从复制(单向复制):读写分离、实时备份、故障切换

    主主复制(双向复制):互为主备

    三、高可用架构

    1、双节点

    2、一主两从

    3、一主多从

    4、多主多从

    四、数据库管理软件

    1、MMM

      在MMM(Master-Master replication manager for MySQL)集群中总共提供1个写服务和N(N>=1)个读服务。

    每个节点均部署有一个mmm-agent,mmm-mananger和mmm-agent保持通信,agent定期向mananger报告所在节点的MySQL存活情况(实际上就是一个心跳包)。

    当mmm-manager连续多次无法收到mmm-agent的心跳消息时,将会判定该节点死亡,并进行故障转移。

    2、MHA(Master High Availability)

      MHA(MySQL Master High Availability)是一个专门针对MySQL主库的高可用。 

    主库发生故障时,MHA会选定一个候选主节点作为新的主节点,并补齐缺少的Binlog。数据补齐后,将写服务转移到新的主节点上。

    MHA工作原理

    相较于其它HA软件,MHA的目的在于维持MySQL Replication中Master库的高可用性,

    其最大特点是可以修复多个Slave之间的差异日志,最终使所有Slave保持数据一致,然后从中选择一个充当新的Master,并将其它Slave指向它。

    • 从宕机崩溃的master保存二进制日志事件(binlogevents)。
    • 识别含有最新更新的slave。
    • 应用差异的中继日志(relay log)到其它slave。
    • 应用从master保存的二进制日志事件(binlogevents)。
    • 提升一个slave为新master。 -使其它的slave连接新的master进行复制。

    目前MHA主要支持一主多从的架构,要搭建MHA,要求一个复制集群中必须最少有三台数据库服务器,

    一主二从,即一台充当master,一台充当备用master,另外一台充当从库,因为至少需要三台服务器。

    MHA,具体的搭建环境如下:

    其中master对外提供写服务,备选master(实际的slave,主机名m3)提供读服务,slave也提供相关的读服务,

    一旦master宕机,将会把备选master提升为新的master,slave指向新的master,manager作为管理服务器。

    参考资料

    mysql高可用方案

    五大常见的MySQL高可用方案

    MySQL高可用方案:理论篇

    MySQL高可用方案:实践篇

    MySQL-MHA高可用方案

    MySQL高可用方案MHA的部署和原理

    MySQL主从复制与主主复制

  • 相关阅读:
    CSS3圆圈动画放大缩小循环动画效果
    php将多个值的数组去除重复元素
    .net 图片压缩
    关于FFmpegInterop项目的编译
    Axure Beta 7.0 汉化版下载
    axure 6.5 汉化正式版软件及注册码
    HTML基础复习(八)表单
    HTML基础复习(七)布局-div间距
    Android+GPS轨迹跟踪器(一)
    HTML基础复习(六)布局-居中
  • 原文地址:https://www.cnblogs.com/wangwangfei/p/14385647.html
Copyright © 2020-2023  润新知