• MySQL高可用方案从入门到精通


    主从复制机制:

    Mysql主从复制的用途

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

    Mysql主从复制的条件

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

    异步复制:

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

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

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

    同步复制:

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

    半同步复制:

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

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

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

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

  • 相关阅读:
    Magento开发文档(一):Magento入门
    Magento开发文档(三):Magento控制器
    CSS 第一天
    iOS 关闭定时器
    thinkphp 5.0 Request使用
    iOS icon与启动图片
    数组
    PHP获取表单变量
    iOS ipa 包优化
    UIImage 渲染模式
  • 原文地址:https://www.cnblogs.com/linuxws/p/13524607.html
Copyright © 2020-2023  润新知