MySQL主从同步流程详解
-
从库进行配置,设置从库要从主库binlog的哪一个位置开始请求数据,这个位置信息包括主库binlog文件名及偏移量。
-
从库开始执行主从同步,这时从库会开启两个线程,一个是IO线程,一个是SQL线程。IO线程负责与主库建立连接,连接建立后,从库向主库发送身份信息、所需的binlog文件名及偏移量。
-
主库开启一个dump线程,与从库建立连接(当主库连接了多个从库时,主库会为每一个当前连接的从库建一个dump线程)。连接后校验从库的身份信息,然后根据从库发来的binlog文件名及偏移量,从本地读取指定binlog文件,然后发送给从库。
-
从库拿到binlog数据后,将其写入本地的中转日志。
-
从库的SQL线程读取中转日志,逐个解析出日志里的命令,然后执行这些命令。