MySQL的主从复制

作者: zhl 分类: MySQL 发布时间: 2023-12-07 16:59

MySQL的主从复制是一种数据库复制技术,用于实现数据在多个MySQL服务器之间的同步。

  • 在主从复制中,有一个主数据库(称为主服务器,或主库,master)和一个或多个从数据库(称为从服务器,或从库,slave)。主库负责接收和处理所有的写操作(如插入、更新、删除),而从库则复制主服务器上的数据,并将其应用到自己的数据库中。
  • 底层是基于MySQL数据库自带的二进制日志功能。
    就是从库对主库进行日志的复制然后再解析日志并应用到自身,最终实现从库的数据和主库的数据保持一致。
  • MySQL主从复制是MySQL数据库自带功能,无需借助第三方工具
  • 注意主从复制是异步的,意味着主库和从库之间可能存在着延迟,

MySQL复制过程分成三步:

  • master将变更记录到二进制日志(binary log)
  • slave将master的binary log拷贝到它的中继日志(relay log)
  • slave重做(replay)中继日志中的事件,将改变应用到本库中

主库把增删改查操作记录到本库日志中,从库把主库日志写入到relay log日志中,最后从库执行relay log中的操作,将更新的内容写入到从库的数据库。

主从复制的特点

主从复制的优点

  • 高性能方面:主库负责处理事务性的操作,从库负责处理操作,能够有效的避免由数据更新导致的行锁,使得整个系统的查询性能得到极大的改善

  • 安全性方面:从库可以用作主库的备份,以防止数据丢失或损坏。在主库发生故障时,可以将从库提升为新的主库,从而实现快速的恢复

  • 可靠性方面:主从在对外提供服务的时候,若是主库挂了,会有通过主从切换,选择其中的一台Slave作为Master;若是Slave挂了,还有其它的Slave提供读服务,提高了系统的可靠性和稳定性

主从复制的问题

  • 主库发生宕机时,从库得到数据可能丢失
  • 在主库并发运行查询时,从库只能串行化执行,因为从库只有一个SQL线程重做中继日志中的事件,导致性能变差。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注