【数据库】mysql主从同步原理

目录

概念

好处

流程

        主节点 binary log dump 线程

        从节点IO线程

        从节点SQL线程

注意

主从同步模式

异步复制

全同步复制

半同步复制


概念

MySQL主从复制是指数据可以从一个MySQL数据库服务器主节点复制到一个或多个从节点

建立一个和主数据库(参照物)完全一样的数据库环境,称为从数据库;主数据库一般是准实时的业务数据库。

好处

        1.可以对数据进行热备份,作为后辈数据库,祝数据库服务器故障后,可以切换到从数据库继续工作,避免数据库宕机的损失

        2.随着业务量增大,IO频率过高,单机无法满足,促使多库存储,降低磁盘IO的访问频率,提高IO性能

        3.读写分离,在开发工作中,有时候会遇见某个sql 语句需要锁表,导致暂时不能使用读的服务,这样就会影响现有业务,使用主从复制,让主库负责写,从库负责读,这样,即使主库出现了锁表的情景,通过读从库也可以保证业务的正常运作。

流程

MySQL主从复制建立在三个线程之上,分别为

        主节点 binary log dump 线程

                负责将主数据库更新后的binlog日志内容发送到从数据库,在读取操作的时候,线程会对binlog上锁,当读取完成后,锁会被释放

        从节点IO线程

                接收主节点 binary log dump 线程发送的binlog日志内容,将其写入到relay log(中继日志)中

        从节点SQL线程

                负责读取relay log中的内容,解析成具体的操作并执行,最终保证主从数据的一致性

注意

        主节点使用binlog问价+position偏移量来定位主从同步的位置,从节点会保存其已接收到的偏移量,下次会从偏移量的位置进行同步,相当于每次都是增量同步,不是全量同步

主从同步模式

异步复制

        MySQL的默认方式,主库把日志发送给从库后不管从库是否已经接收并处理,这样的效率比较高,但是一旦主库宕机,从库处理失败,这时候从库转换为主库,就会产生日志丢失,导致数据丢失

全同步复制

        主库写入binlog后强行同步到从库,所有从库都执行完后才会返回给客户端,这种方式稳定性高,但是性能会收到严重影响

半同步复制

        和全同步不同的是,从库写入日志成功后返回ACK确认给主库,主库收到至少一个从库的确认就会认为写操作完成

参考文章

Mysql主从复制概念_wzj_110的博客-CSDN博客

MySQL主从、主主、半同步节点架构的的原理及实验总结 - 记忆流年 - 博客园

膜拜!华为大牛透彻讲解Java面试100道必考题,不管你工作几年,都得看看!现在免费分享给大家!_哔哩哔哩_bilibili

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值