MST

星途 面试题库

面试题:MySQL主 - 主复制结构中备库的作用及实现原理

在MySQL拥有备库的主 - 主复制结构中,请阐述备库在整个架构里起到什么作用,并且简要说明其实现的原理是什么?
24.7万 热度难度
数据库MySQL

知识考点

AI 面试

面试题答案

一键面试

备库在主 - 主复制结构中的作用

  1. 数据冗余与容灾:提供数据副本,当主库出现故障(如硬件损坏、软件错误、人为误操作等)时,备库可以迅速接管服务,保证数据的可用性,减少因主库故障导致的业务中断时间。
  2. 负载均衡:可以分担读操作的压力。在很多应用场景中,读操作远远多于写操作,备库可以处理部分读请求,从而减轻主库的负载,提高整个系统的并发处理能力。

备库实现原理

  1. 二进制日志(Binlog):主库在执行写操作(如INSERT、UPDATE、DELETE等)时,会将这些操作记录到二进制日志中。这个日志记录了数据库状态改变的所有操作细节。
  2. 日志传送:备库通过I/O线程连接到主库,请求获取主库二进制日志中更新的部分。主库的I/O线程将二进制日志以事件的形式传送给备库的I/O线程。备库的I/O线程接收到这些日志事件后,将其写入到中继日志(Relay Log)中。
  3. 重放日志:备库的SQL线程从备库的中继日志中读取日志事件,并在备库上按照事件顺序重新执行这些操作,从而使备库的数据状态与主库保持一致,实现数据的复制。