面试题答案
一键面试备库在主 - 主复制结构中的作用
- 数据冗余与容灾:提供数据副本,当主库出现故障(如硬件损坏、软件错误、人为误操作等)时,备库可以迅速接管服务,保证数据的可用性,减少因主库故障导致的业务中断时间。
- 负载均衡:可以分担读操作的压力。在很多应用场景中,读操作远远多于写操作,备库可以处理部分读请求,从而减轻主库的负载,提高整个系统的并发处理能力。
备库实现原理
- 二进制日志(Binlog):主库在执行写操作(如INSERT、UPDATE、DELETE等)时,会将这些操作记录到二进制日志中。这个日志记录了数据库状态改变的所有操作细节。
- 日志传送:备库通过I/O线程连接到主库,请求获取主库二进制日志中更新的部分。主库的I/O线程将二进制日志以事件的形式传送给备库的I/O线程。备库的I/O线程接收到这些日志事件后,将其写入到中继日志(Relay Log)中。
- 重放日志:备库的SQL线程从备库的中继日志中读取日志事件,并在备库上按照事件顺序重新执行这些操作,从而使备库的数据状态与主库保持一致,实现数据的复制。