zoukankan      html  css  js  c++  java
  • MySQL高可用方案从入门到精通

    主从复制机制:

    Mysql主从复制的用途

    • 实施灾备,用于故障切换
    • 读写分离用于查询服务
    • 备份,避免数据丢失

    Mysql主从复制的条件

    • 主库开启binlog日志(从库需要从这里面读取)
    • 主从的Mysql server-id需要不同
    • 从库服务器能连通主库

    异步复制:

             在MySQL 5.5以前,MySQL的复制是异步操作,主库和从库存在着数据延迟,这可能会导致一个问题:主库在事务提交后,从库在尚未得到日志内容时,主库因故障导致日志文件损坏或丢失,此时从库就无法完成数据的同步导致主从数据的不一致。

    为了解决这个问题,MySQL 5.5引入了半同步复制机制。

    对于异步复制流程,主库在执行完事务提交的操作后就立刻将执行结果返回给客户端,无需等待日志传送给从库后再返回。

    同步复制:

             MASTER提交事务,直到事务在所有的SLAVE都已提交,此时才会返回客户端,事务执行完毕,完成一个事务可能会有很大的延迟。

    半同步复制:

    而对于半同步复制,为了保证每个事务都能够完好无损地同步到从库,主库在事务提交后并不会马上将执行结果返回给客户端,而是先将日志推送给从库后才将执行结果返回给客户端。这样也就保证了这个事务在两个日志文件中都有记录。

    在半同步复制过程中,如果主库在提交事务、将事务内容写入日志中的过程发生了宕机,则事务并不会提交成功,两个日志都不会存在该事务的记录,所以也就保证了数据的一致。

    如果从库发生了故障,那么主库会在事务提交后等待一段时间(时间长短可自行配置),如果在等待时间内从库依然没有响应,那么主库会自动切换为异步模式,并返回客户端事务成功提交的结果。

    半同步复制工作机制处于同步和异步之间,MASTER的事务提交阻塞,只要一个SLAVE已收到该事务的事件且已记录,他不会等待所有的SLAVE都告知已收到,且他只是接收,并不用等其他执行且提交。

  • 相关阅读:
    Linux 搭建svn环境
    Echarts 获取后台数据 使用后台数据展示 饼装图
    js 实现存储Map 结构的数据
    SVN使用方法
    SVN版本回退
    adf 日志输出
    Oracle ADF VO排序及VO的查询模式
    weblogic 初始化
    jdeveloper 恢复默认配置
    jdeveloper12.1.3的安装与卸载
  • 原文地址:https://www.cnblogs.com/linuxws/p/13524607.html
Copyright © 2011-2022 走看看