MySQL通过三个线程来实现复制功能,一个在master server上,两个在slave server上:
1.binlog dump thread 当slave连接到master之后,master server会创建一个线程来发生binlog到slave,在主库上执行show processlist能够看到Binlog Dump这样一个线程。
在master server上,这个dump线程会将每一个将要发送到slave的event加一把锁,一旦读完这个event,甚至该event在被发送到该slave server之前这个锁就被释放掉了。
2.slave I/O thread 如果你在slave server上执行start slave语句,那么同时slave server会创建一个I/O线程,这个线程连接到主库并请求主库发送binlog
slave I/O线程会读master server的binlog dump线程发送的binlog event,并且复制这些event到该slave server本地的relay log文件中。
通过show slave status语句查看slave_IO_running,或者show status查看slave_running记录来获取该slave上当前io线程的状态。
Slave SQL thread读relay log并应用event.
前面提到的三个线程,在每一对master/slave连接上都存在,
阅读(636) | 评论(0) | 转发(0) |