概述
主从复制是指将主数据库的DDL 和DML操作通过二进制日志传到从库服务器中,然后再从库上对这些日志重新执行(也叫重做),从而使得从库和主库的数据保持同步。
MySQL支持一台主库同时向多台从库进行复制,从库同时也可以作为其他从服务器的主库,实现链状复制。
优点
- 主库出现问题,可以快速切换到从库提供服务
- 实现读写分离,降低主库的访问压力
- 可以再从库中执行备份,以避免备份期间隐形阿根主库服务
原理
- 主数据库(Master):主数据库是被复制的源头,负责接收应用程序的写操作(INSERT、UPDATE、DELETE等),并记录这些操作到自身的binlog(二进制日志)中。binlog记录了所有数据库的变更操作,以二进制的形式存储。
- 从数据库(Slave):从数据库是复制的目标,它会连接到主数据库,并请求主数据库的binlog。从数据库将主数据库的binlog复制到自己的relay log(中继日志)中,然后执行relay log中的操作,从而实现与主数据库的数据同步。
- 主从复制过程:
- 主数据库将写操作记录到bin