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

- 复制类型分为两类,一种是记录主数据库的操做sql,而后在从数据库执行;另外一种是将主数据库中数据的变更记录为set语句,用set命令对从数据库进行行的更新;
- 主从同步出错时,有两种方法解决
解决方法一:跳过一步错误,继续进行同步
msyql> stop slave; html
msyql> set GLOBAL SQL_SLAVE_SKIP_COUNTER=1; mysql
msyql> start slave;
方法二:重作主从
msyql> stop slave; sql
#查看主服务器上当前的 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 硬件性能、借助中间件,改善主从复制的单线程模式