mysql扩展:主从原理及延迟

1.  主从复制:     (异步单线程)web

主库-->binlog-->-->relaylog-->从库sql

Master 上的 一个I/O线程,负责向Slave传输binary log (binlog)多线程

Slave 上2个线程:IO线程和执行sql的线程:架构

  • IO线:将获取的日志信息,追加到relay log上;并发


  • 执行SQL的线程:检测到relay log中内容有更新,则在Slave上执行sql;异步

clipboard.png

1.png


执行全部命令 只能在主库上执行,从库只有读的功能,(若是从库有写功能,则主从很容易就中断)ide


2.主从当出现错误时,主要先检查从库日志:show slave status \G;优化


3.MySQL 集群,常见方式:主从集群spa

  • Master 节点,负责全部的「写请求」线程

  • Slave 节点,负责大部分的「读请求」

主从集群可以下降访问压力,下降master的压力,提升系统可用性。


常见的主从架构:

  • 一主一从:一个 Master,一个 Slave

  • 一主多从:一个 Master,多个 Slave


主从延迟

如何监控

监控主从延迟的方法有多种:

  1. Slave 使用本机当前时间,跟 Master 上 binlog 的时间戳比较

  2.  

  3. pt-heartbeatmt-heartbeat

本质:同一条 SQL,Master执行结束的时间 vs. Slave执行结束的时间。


主从延迟的缘由:

master

a.大事务。

b.sql执行速度慢

c.批量DML操做


减弱延迟:

  1. 细化事务:将大事务拆为小事务,没必要要的地方移除事务     

    1. 提高 SQL 执行速度:优化索

    2. 减小批量操做:批量 DML 的耗时较多,减小没必要要的批量 DML

  2. 下降多线程大事务并发的几率:优化业务逻辑


MySQL双主(主主)

能够使用keepalived作两台主作高可用,高可用策略的时候,masterA或masterB均不因宕机恢复后而抢占VIP(非抢占模式)

相关文章
相关标签/搜索