本节包含一个笔记如下:
https://www.jianshu.com/p/a81d62bf6b31
如果要保证从库的IO线程、SQL线程、以及MTS工作线程的正常启动,就必须保证表slave_master_info、表slave_relay_log_info、表slave_worker_info和relay log的信息是准确的(我们只考虑信息保存在TABLE中的情况),否则启动后可能会出现错误。
当然在GTID AUTO_POSITION MODE模式下面位点信息的作用将被弱化,下面我们就能看到GTID AUTO_POSITION MODE模式下只需要将从库Retrieved_Gtid_Set和Executed_Gtid_Set的并集交给主库就可以了。另外如果设置了recovery_relay_log=ON,slave_master_info和relay log的作用也会弱化。这些我们将在25节进行描述,这里就假定它们都是正确的,否则就没有办法描述了。
总的说来IO线程有三个主要的功能:
- 初始化情况下将需要读取的信息发送给主库。
- 接收来自DUMP线程的Event。
- 将这些Event写入到relay log。
一、IO线程的启动流程图
,我将用一张图来展示大概的流程,如下(图22-1):
网友评论