本节将来看看GTID模块的初始化,它会在实例启动的时候进行,但是在从库信息初始化之前,从库信息的初始化将在第25节描述。因为如果是GTID AUTO_POSITION MODE模式,IO线程将会使用到GTID相关的信息进行从库的启动,这个将在第22节描述。因此GTID模块的初始化必须在从库信息初始化之前进行。
同时本节也会讨论下面两种GTID持久化的介质在GTID模块初始化的时候担当什么样的角色,曾经有一段时间我也在纠结mysql.gtid_executed表到底是什么时候读取的:
- binary log文件
- mysql.gtid_executed表
我们将分别讨论主从GTID模块的初始化,因为它们的流程不同。主要是下面两种情况:
- 主库开启GTID开启bianry log。下面简称主库。
- 从库开启GTID开启bianry log但不开启log_slave_updates参数。下面简称从库。
这也是我们常见的配置方式。