MySQL(九):MySQL主从复制原理
1、什么是MySQL主从复制
MySQL主从复制:数据从一个主节点数据库复制到至少一个从节点数据库。MySQL采用异步复制方式同步数据,从节点不需要一直访问主数据库更新自身数据。
2、为什么需要MySQL主从复制
2.1、保证系统的高可用
在复杂业务系统中,某些频繁的操作会导致MySQL锁表,影响业务的正常进行。使用主从复制,进行读写分离,主库写、从库读,主库的锁表不会影响从库的读取,提高系统的可用性。
2.2、保证系统的高性能
数据库的I/O处理往往是系统的瓶颈,当I/O的访问频率过高,单机无法满足性能要求,使用主从复制进行多库存储,降低磁盘I/O访问的频率,可提高单个机器的I/O性能。
3、MySQL主从复制原理
主从复制原理图:
1、Master主服务器将应用程序的DML操作记录到二进制文件binlog中,即将数据的改变记录到二进制文件中;
2、Slave周期探测Master中二进制binlog文件是否发生改变,若发生改变,Slave服务器则创建I/O Thread请求Master主库发生变化的二进制binlog文件文件;
3、Master主库在接收到Slave的I/O请求,为每个I/O请求对应的开启dump线程,同步主库的binlog文件至Slave服务器;
4、Slave从库服务器通过I/O Thread接收主库的二进制文件,保存至Slave的中继日志relay-log文件中;
5、Slave节点开启一个SQL线程,从relay-log中继日志中读取数据持久化至从节点,使得主从节点数据保持一致;
6、Slave从节点数据同步完成,I/OThread和SQLThread进入休眠状态,等待Schedule Thread探测主库的binlog发生改变后被唤醒。
从节点有两个线程:I/O Thread、SQL Thread,这一点从从节点的日志中就可以发现:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)