主从复制原理如下。
slave(从服务器)
master(主服务器)
mysql主从是异步复制过程
master开启bin-log功能,日志文件用于记录数据库的读写增删
主从同步过程中主服务器master有一个工作线程i/o dump thread,从服务器slave有两个工作线程i/o thread和sql thread。
slave 通过io线程连接master,并且请求某个bin-log,position之后的内容。
master服务器收到slave io线程发来的日志请求信息,io线程去将bin-log内容,position返回给slave io线程。
slave服务器收到bin-log日志内容,将bin-log日志内容写入relay-log中继日志,创建一个master.info的文件,该文件记录了master ip 用户名 密码 master bin-log名称,bin-log position。
slave端开启sql线程,实时监控relay-log日志内容是否有更新,解析文件中的sql语句,在slave数据库中去执行。