《深入理解mysql主从原理32讲》学习笔记
每一个mysql的从库slave都会对于一个 dump线程,如上图的 Binlog Dump GTID .
实际上在启动之前还会和从库的IO线程进行多次的语句交互,然后注册从库,最后才是进行DUMP线程的启动。这些内容会在后续的IO线程中讲解,这里主要讨论的是POSITION MODE模式和GTID AUTO_POSITION MODE模式下的启动流程
一,POSITION MODE模式和GTID AUTO_POSITION MODE模式的不同
首先获取从库的信息是不一样的,调用的接口也不一样。
POSITION模式:调用的是com_binlog_dump函数
使用到IO线程传输过来的信息master log name 和master log position 进行主库binary log 的定位
GTID_AUTO_POSITION模式:调用com_binlog_dump_gtid函数
使用的是从库的GTID SET信息进行主库 binary log 文件的查找,然后使用GTID SET在binary log 文件内部进行过滤查找具体的文职,也就是说这种模式下master log name 和master log position是没有用处的。注意这个GTID_SET 和参数relay_log_recovery参数设置有关,如果设置了relay_log_recovery=ON,retrieved_gtid_set 将不会使用。
下面结合一下从库的IO线程,看看IO线程是如何发送信息