1-MySQL主从复制简介。
主从复制作用:
1.保证数据安全(异机实时备份)
2.保证服务持续运行(宕机接管)
主从复制实现基本原理:
1.自带功能,复制是 MySQL 的一项功能,允许服务器更改,从一个实例复制到另一个实例。
2.主服务器将所有数据和结构更改记录到二进制日志中。
3.从服务器向主服务器请求该二进制日志,并在本地应用其内容,即通过把主库的binlog传送到从库,重新解析应用到从库。
MySQL主从复制原理(面试说):
(1) 主库将改变记录到二进制日志;
(2) 从库将主的二进制日志的事件拷贝到它的中继日志(relay log);
(3) 从库重做中继日志中的事件。
2-MySQL主从复制原理介绍。
复制过程:
1、主库开启binlog日志,把binlog传送到从库,重新解析应用到从库。
2、主从复制需要3个线程(dump、io、sql)完成,5.6从库多个sql。
3、主从复制是异步的过程,是异步的逻辑SQL语句级的复制。
复制前提:
1、主服务器一定要先打开二进制日志
2、必须两台服务器(或多个实例)
3、从服务器需要一次数据初始化
如果主从服务器都是新搭建的话,可以不做初始化。
如果主服务器已经运行了很长时间,可以通过备份将主库数据恢复到从库。
4、主库必须要有对从库复制请求的用户。
5、从库需要有relay-log设置,存放从主库传送过来的二进制日志
show variables like '%relay%';
6、在第一次的时候,从库需要change master to 去连接主库。
7、change master信息需要存放到master.info中
show variables like '%master_info%';
8、从库怎么知道,主库发生了新的变化?
通过relay-log.info记录的已经应用过的relay-log信息。
9、在复制过程中涉及到的线程
从库会开启一个IO thread(线程),负责连接主库,请求binlog,接收binlog并写入relay-log。
从库会开启一个SQL thread(线程),负责执行relay-log中的事件。
主库会开启一个dump thread(线程),负责响应IO thread的请求。
主从怎么实现的?
1、通过二进制日志。
2、至少两台(主、从)。
3、主服务器的二进制日志“拿”到从服务器上再运行一遍。
4、通过网络连接两台机器,一般都会出现延迟的状态,是异步的。