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

60.mysql主从的相关知识

  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 硬件性能、借助中间件,改善主从复制的单线程模式