• 20160916-3:mysql主从复制


    一、什么是主从复制

    将一个数据库节点的数据拷贝到一个或多个数据库节点(主节点—>从节点)

    二、主从复制的原理

    【简述】:将主节点上的变更操作存储到binlog,从节点建立了到主节点的复制关系后,会发起两个线程:IO thread和SQL thread,IO线程负责和主节点建立关系(长连接),将主节点的binlog异步实时保存到relay-log,接着SQL线程实时读取从节点的relay-log,如果relay-log有更新则根据日志内容在从节点上做数据操作。
    (1)binlog日志格式:statement /row/mixed,mysql5.7.7之后,row是默认的日志格式

    三、主从复制的用途

    1、实时灾备,用于故障切换
    2、读写分离,从库提供查询服务
    3、从库上做备份,避免业务影响
    4、主从复制的一些模式:其中,mysql5.7开始支持多主一从

    四、主从复制的搭建

    1、必要条件:开启log-bin参数、主从server-id不同、relay-log、从库服务器可以连通主库

    五、主从复制的问题

    1、主机宕机后,数据可能丢失
    2、从库只有一个SQL thread,主库写压力大,复制很可能延迟
    【解决方案——半同步复制】

    (1)半同步复制在5.5集成到mysql,以插件的形式存在,需要单独安装;
    (2)确保事务提交后,binlog至少传输到一个从库
    (3)不保证从库应用完这个事务的binlog
    (4)性能有一定的降低,响应时间会更长;
    (5)网络异常或从库宕机,卡住主库,直到超时半同步等待时长或者从库恢复;

    【解决方案——并行复制】

    (1)并行复制是指:从库多线程apply binlog(多个SQL线程)
    (2)在社区版5.6中新增
    (3)库级别并行应用binlog,同一个库数据更改还是串行。
    (4)mysql5.7版本的并行复制是基于事务组的





  • 相关阅读:
    Create方法失效而没有提示错误信息
    JS弹出窗口控制
    本周活动
    JavaScript的初步了解
    关于PHP接收文件的资料
    mvc模式改进网站结构
    一周动态
    排序
    Java的内存泄漏
    Android笔记
  • 原文地址:https://www.cnblogs.com/cjing2011/p/1383176bc99f48f7993f691eabfe2cf3.html
Copyright © 2020-2023  润新知