MariaDB主从同步基于二进制日志(binlog)和中继日志(relay log)实现,核心流程如下:
- 主服务器(Master)记录操作:
主服务器将数据变更(如INSERT、UPDATE、DELETE等)以事件形式记录到二进制日志中。
- 从服务器(Slave)拉取日志:
- 从服务器通过I/O线程连接主服务器,请求二进制日志事件。
- 主服务器生成Binlog Dump线程,将日志事件发送给从服务器的I/O线程。
- 从服务器将接收到的日志事件写入本地中继日志。
- 从服务器执行日志事件:
从服务器的SQL线程读取中继日志中的事件,并在本地数据库执行,实现数据同步。
关键特点:
- 异步复制:主从同步非实时,存在网络延迟,可能导致短暂数据不一致。
- 单向同步:默认主服务器可读写,从服务器仅可读(需配置为只读模式)。
- 扩展性:支持一主多从、级联复制,可分担读压力。
配置时需确保主从服务器的server-id唯一,并通过CHANGE MASTER TO指定同步起点。