MySQL复制机制原理
1,MySQL的复制是异步执行的,因为MySQL的特殊机制,让复制的延迟控制较小;
2,MySQL的复制是从一个MySQL进程复制到另一个MySQL进程,被复制方我们称为Master;复制方我们称为Slave;
3,MySQL的复制依赖一种叫做bin-log的日志文件,bin-log记录了所有在Master端执行的DDL/DML/事务操作序列,并同步到Slave端,Slave根据日志复现操作序列,即完成同步;
4,复制流程:
1,Slave 上面的IO 线程连接上Master,并请求从指定日志文件的指定位置之后的日志内容;
2,Master 接收到来自Slave 的IO 线程的请求后,通过负责复制的IO线程根据请求信息读取指定日志指定位置之后的日志信息,返回给Slave 端的IO线程;
3,Slave 的IO 线程接收到信息后,将接收到的日志内容依次写入到Slave 端的Relay Log 文件(mysql-relay-bin.xxxxxx)的最末端;
4,Slave 的SQL 线程检测到Relay Log 中新增加了内容后,会马上解析该Log 文件中的内容成为在Master 端真实执行时候的那些可执行的Query 语句,并在自身执行这些Query;
5,复制一定会存在延迟和数据丢失的风险;