码迷,mamicode.com
首页 > 数据库 > 详细

60.mysql主从的相关知识

时间:2018-05-18 01:23:06      阅读:183      评论:0      收藏:0      [点我收藏+]

标签:.mysql主从的相关知识

  • MYSQL主从作用大致分为数据备份和负载均衡两类
    Master 节点,负责所有的「写请求」
    Slave 节点,负责大部分的「读请求」;
    MySQL 的主从复制:异步单线程。
    实现的具体逻辑方法:
    Master上 1 个IO线程,负责向Slave传输 binary log(binlog)
    Slave上 2 个线程:IO 线程和执行SQL的线程,其中:
    IO线程:将获取的日志信息,追加到relay log上;
    执行SQL的线程:检测到relay log中内容有更新,则在Slave上执行sql;
  • 技术分享图片

    1. 复制类型分为两类,一种是记录主数据库的操作sql,然后在从数据库执行;另一种是将主数据库中数据的变动记录为set语句,用set命令对从数据库进行行的更新;
    2. 主从同步出错时,有两种方法解决
      解决方法一:跳过一步错误,继续进行同步

    msyql> stop slave;

    msyql> set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;

    msyql> start slave;
    方法二:重做主从
    msyql> stop slave;

    #查看主服务器上当前的 bin-log 日志名和偏移量

    msyql> show master status;

    #然后到从服务器上执行手动同步
    4.对主数据库的操作要注意

    • 不要用系统命令复制或删除表数据文件,要用sql命令进行数据修改与表修改、创建或者删除,不然会影响从数据库,造成主从失败;

    5.Mysql主从复制常见故障及解决方法
    http://www.10tiao.com/html/706/201603/403220961/1.html
    6.查看主从延迟的方法

    • 主从延时时间:Master 执行成功,到 Slave 执行成功,时间差
    • show slave status,通过比较SQL THREAD接受events时间的时间戳与IO THREAD执行事件events时间戳的差值--秒数,来确定slave落后于master多少
    • 使用pt-heartbeat工具
      http://f.dataguru.cn/thread-461916-1-1.html
      7.同步复制
    • 主数据库数据写入完毕之后,在从数据库也将数据写入之后,主数据库才会向客户端返回数据写入成功
      异步复制
    • 主数据库写入之后,从数据库随后更新,只要求数据最终一致,允许延迟存在
      8.主从延迟的影响
    • 主从数据不一致,灾备系统失效,负载均衡失效,降低系统性能
      9.常见的主从延迟原因:
      Master 上,大事务,耗时长:优化业务,拆分为小事务
      Master 上,SQL 执行速度慢:优化索引,提升索引区分度(事务内部有查询操作)
      Master 上,批量 DML 操作:建议延迟至业务低峰期操作
      Master 上,多线程写入频繁, Slave 单线程速度跟不上:提升 Slave 硬件性能、借助中间件,改善主从复制的单线程模式

    60.mysql主从的相关知识

    标签:.mysql主从的相关知识

    原文地址:http://blog.51cto.com/13569831/2117745

    (0)
    (0)
       
    举报
    评论 一句话评论(0
    登录后才能评论!
    © 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
    迷上了代码!