MySQL主从复制

主从复制用于实现数据备份、高可用性和读写分离。流程包括主库写入binlog,binlog通过IO线程传输到从库,再由sql线程重放事件同步数据。relaylog用于存储接收到的binlog,确保数据一致性,防止故障导致的数据丢失。主从复制能提供数据热备份,支持更大并发,并在主库故障时提供容灾能力。

   

目录

主从复制 

主从复制流程:

 为什么要有relay log中继日志?

为什么要有主从复制,好处?

   

实际生产环境中。如果对MySQL数据库的读写都在一台数据库服务器中操作,无论是再安全性、高可用性,还是高并发性等方面都不能满足实际需求,一般要通过主从复制的方式来同步数据,再通过读写分离来提升数据库的并发负载能力。

        1、数据备份 - 热备份&容灾&高可用

        2、读写分离,支持更大的并发

主从复制 

          主从复制的流程:两个日志(binlog二进制日志&relay log日志)和三个线程(master的一个线程和 slave的二个线程)

主从复制流程:

        1. 主库更新操作写入binlog二进制日志中,主库是要开启二进制日志的;

        2. master服务器创建一个binlog转存线程,将二进制日志发送到slave服务器;

        3. slave服务器执行START SLAVE命令会在slave服务器创建一个IO线程,接收master服务器的binary log数据并复制到relay log(中继日志)

        首先slave开始一个工作线程(I/O线程),I/O线程在master上打开一个普通的连接,然后开始 binlog dump process, binlog dump process从master的二进制日志中读取事件,如果已经跟上 master,它会睡眠并等待master产生新的事件,I/O线程将这些事件写入中继日志。

        4. sql slave thread(sql从线程)处理该过程的最后一步,sql线程从中继日志中读取事件,并重放其 中的事件而更新slave机器的数据,使其与master的数据一致。只要该线程与I/O线程保持一致,中继日志通常会位于os缓存中,所以中继日志的开销很小。

 为什么要有relay log中继日志?

        主要是为了保证数据的一致性和可靠性。主库发过来的二进制日志数据会存到从库的relay log上,并在后续的过程中应用这些操作到自己的数据库中。

        避免因网络故障、从库宕机等原因导致数据丢失或数据不一致的问题。

        从库出现故障导致数据丢失或者不一致,可以通过relay log来重新同步数据。

为什么要有主从复制,好处? 

        1. 可以实现数据备份

        可实现热备份,可通过数据库中间件mycat可直接配置热备份容灾,主库挂掉之后,mycat会自动将请求映射到从库,由从库继续对外提供服务。

        容灾:系统出现故障或异常情况时,能够保持系统的可用性和稳定性,避免系统崩溃或数据丢失。

        高可用:指系统或服务在出现故障或异常情况时,能够保持正常的运行状态,不会导致系统的崩溃或数据的丢失,从而保证业务的连续性和可靠性。

        2. 读写分离 

        实际应用中更多的是读操作,主库专门用来做数据的修改,主库通过主从复制通过bin log同步到从库上去,客户端查询的请求最终映射到从库上,一般来说一个主库可带上从库的数量根据网络以及硬件来确定,主库做数据更新存储数据,从库专门用来进行读操作,分摊读写压力。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值