主库必须开启二进制日志
当主库有写操作时(比如insert、update,delete),会记录到主库的Binlog中
从库通过IO线程读取主库的Binlog里面的内容,传给从库的Relay Log(中继日志)
从库的sql线程负责读取它的relay log里的信息并应用到数据库中
4 两种复制方法
基于位点的复制
从库根据主库的位点信息进行执行回放。
这些位点信息包括二进制日志文件名(File Name)和事件位置(Position)。
比如我们执行
File就是当前实例最后一个事务写的Binlog文件
Position 就是最后一个事务在Binlog中的位点
Binlog_Do_DB 表示需要记录Binlog的数据库,可以通过参数配置,我们会在这一章后面的内容详细介绍
Binlog_Ignore_DB 表示不会记录Binlog的数据库
Executed_Gtid_Set 表示执行过的GTID(全局事务标识符)集合
基于GTID的复制
GTID是MySQL 5.6 引入的一种全局事务标识
在基于 GTID 的复制中,主库上,每个事务都会被分配一个唯一的GTID,从库使用这些 GTID 来同步主
库的事务。
评论