MySQL主从复制原理之过程讲解

相信大家对MySQL多少都会有一些了解,利用MySQL自身提供的主从复制技术,在企业生产场景中,可以很好的对数数据进行多处自动备份,并且实现数据库的扩展。比如:在做定时备份时,备份的过程可能需要锁表操作,在备份锁表期间,用户无法访问数据,虽然可以选择在业务低谷期进行备份,但是多少都会有影响,这时可以通过主从复制的从库进行锁表备份。那么,MySQL主从复制原理是怎样的?这个问题就由小编来告诉大家。

下面我们来了解一下主从复制的过程,主从复制过程存在三个线程,Master端的I/O线程,Slave的I/O线程与SQL线程。Master端需要开启binlog日志,Slave端需要开启relay日志。

 

1、Slave端的I/O读取master.info文件,获取binlog文件名和位置点,然后向Master端的I/O线程请求,该binlog文件名和位置点的binlog信息。

 

(master.info文件在配置主从复制时使用change master命令来指定生成)

 

2、Master端的I/O线程会根据Slave端的I/O线程请求的信息来读取Master的binlog日志信息与及读取到最新的binlog文件名和位置点一同返回给Slave的I/O线程。

 

3、Slave端的I/O线程会把获取到的binlog日志写入relay日志(中继日志)文件中,并且更新master.info文件信息。(把读取到Master最新的binlog日志文件名和位置点更新到master.info文件中,下一次当前位置去读取Master的binlog日志)

 

4、Slave端的SQL线程会定期读取relay日志,把二进制的日志解析成SQL语句,并执行这些SQL语句,同步数据到从库中。

 

上一篇:[redis-持久化,主从复制原理,Redis-Sentinel]


下一篇:python flask实战订餐系统微信小程序-43初始化上次圖片的配置