1 mariadb数据复制原理
Mariadb的复制功能是基于binlog进行的。
复制的工作主要是由主库上Master dump 线程、从库上的slave IO线程以及slave SQL线程来完成的。
复制的大概过程可以总结为如下3步:
(1)主库将所有的修改以事件的形式记录到binlog中,主库的master dump线程负责发送binlog内容到从库。
(2)从库的slave IO 线程将接收到的binlog事件记录到本地的relay-log中。
(3)从库的slave SQL线程重放relay-log中的事件。
Slave先通过io线程读取master的binarylog文件(Master_Log_File)和偏移(Read_Master_Log_Pos)
然后同步到本地(从库服务器)的中继文件(Relay_Log_File)中并记录已经读取到的偏移(Relay_Log_Pos),
再通过Slave的SQL Thread去读取中继文件(Relay_Log_File),
这个SQL Thread会记录已经执行到了master的哪个bin-log文件(Relay_Master_Log_File)
和哪个偏移(Exec_Master_Log_Pos)。
参考:
https://blog.csdn.net/amimidou_212/article/details/90055408
https://blog.csdn.net/amimidou_212/article/details/90055408