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日志(中继日志)文件中