Mysql-主从复制与读写分离

本文详细介绍了MySQL主从复制的原因,包括负载均衡、数据热备和架构扩展,并讨论了异步、半同步和全同步三种复制方式的优缺点。还提供了实验步骤,包括主从服务器的配置,以及如何验证主从复制效果。同时提到了读写分离的重要性和常见实现方式,如程序代码内部实现和中间代理层实现。
摘要由CSDN通过智能技术生成

1.MySQL主从复制与读写分离

mysql使用主从复制的原因大概由一下三点:

1、在业务复杂的系统中,有这么一个情景,有一句sql语句需要锁表,导致暂时不能使用读的服务,那么就很影响运行中的业务,使用主从复制,让主库负责写,从库负责读,这样,即使主库出现了锁表的情景,通过读从库也可以保证业务的正常运作。

2、做数据的热备

3、架构的扩展。业务量越来越大,I/O访问频率过高,单机无法满足,此时做多库的存储,降低磁盘I/O访问的频率,提高单个机器的I/O性能。

在主从复制过程中涉及到总共3个线程,两个日志

Master 二进制日志

SLAVE I/O线程

Master dump线程

SLAVE 中继日志

SLAVE SQL线程

(1) Master节点将数据的改变记录成二进制日志(bin log),当Master上的数据发生改变时,则将其改变写入二进制日志中。

(2)Slave节点会在一定时间间隔内对Master的二进制日志进行探测其是否发生改变,如果发生改变,则开始一个I/o线程请求Master的二进制事件。

(3)同时Master 节点为每个I/o线程启动一个dump线程,用于向其发送二进制事件,并保存至slave节点本地的中继日志(Relay log)中,Slave节点将启动SQL线程从中继日志中读取二进制日志,在本地重放,即解析成sql语句逐一执行,使得其数据和Master节点的保持一致,最后I/0线程和SQL线程将进入睡眠状态,等待下一次被唤醒。

异步复制:

异步复制是mysql默认的同步方式
在master为slave开通账号密码、ip授权之后,slave 可以从master进行数据同步,主要依赖的是master的binlog日志

slave会启动两个线程,IO Thread 和 SQL Thread
IO Thread 负责从master拉取binlog 日志,并写入relay

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值