主从复制工作原理介绍

主从复制工作过程:

1在从库中执change master to命令后,命令中的信息会被记录到master.info文件中,当我们在从库执启动target="_blank">线程命令start slave;的一瞬间,我们的从库会立即启动两个线程(Slave_IO_Running和Slave_SQL_Running),其中Slave_IO_Runninmysql索引g负责读取master.info文件获取主库信息并向f50主库发起连接请求,如果请求连接成功,那么主库会生成一个Binlog_Dump Thread线程最终完成三次握手。

2主从建立连接后,从库线程Slave_IO_Runn数据库软件ing会拿孙侨潞着master.info文件中binlog日志名和位置点询问主库Binlog_Dump Thread是否有更新的内容,数据库查询语句主库Binlog_Dump Thread收到请求后会执语句show master status;进行查询binlog日志的新位置点,如果有新的binlog日志mysql密码忘记了怎么办产生,那么就会截取新的内容后发送给从数据库软件库的Slave_IO_Running

3从库Slave_IO_Running收到信息后,会先将内容刷写到内存中,同时给Binl孙侨潞og_Dump Thread发送一个AK信号,紧接着Slmysql索引ave_IO_Running会再将内存的binlog数据刷写到磁盘同时将binlog记录更新到master.f5负载均衡info文件中,此时Slave_IO_Running线程完成任务。

4线程Slave_IO_Running干完活后,Slave_SQL_Runningmysql怎么读就开始干活了,Sla帅气撩人高冷动漫男头ve_SQL_Running会首先读取relaylog.info应用信息文件,这个文件主要哦用于记录上次运行时的relaylog的位置点,然后Slave_SQL_Running线程会根据这个位置点去磁盘里找到该位置点后开始执行线程,执行完毕后将最近的一条记录再次更新到relaylog.info应用信息文件里。此时主从复制过程完成。

从库文件介绍

[root@instance-r5y0pf5d ~]# cd /data/3308/data
[root@instance-r5y0pf5d data]# ll
total 125256
-rw-r----- 1 mysql mysql 56 Feb 9 16:49 auto.cnf
-rw-r----- 1 mysql mysql 419 Feb 9 16:49 ib_buffer_pool
-rw-r----- 1 mysql mysql 12582912 Feb 19 11:53 ibdata1
-rw-r----- 1 mysql mysql 50331648 Feb 19 11:53 ib_logfile0
-rw-r----- 1 mysql mysql 50331648 Feb 9 16:49 ib_logfile1
-rw-r----- 1 mysql mysql 12582912 Feb 9 16:51 ibtmp1
-rw-r----- 1 mysql mysql 5 Feb 9 16:51 instance-r5y0pf5d.pid
-rw-r----- 1 mysql mysql 154 Feb 20 15:05 instance-r5y0pf5d-relay-bin.000001
-rw-r----- 1 mysql mysql 37 Feb 20 15:05 instance-r5y0pf5d-relay-bin.index
-rw-r----- 1 mysql mysql 90 Feb 20 15:05 master.info #主库信息文件
drwxr-x--- 2 mysql mysql 4096 Feb 19 11:53 mysql
-rw-r----- 1 mysql mysql 1652257 Feb 20 15:27 mysql.err
drwxr-x--- 2 mysql mysql 4096 Feb 9 16:49 performance_schema
-rw-r----- 1 mysql mysql 69 Feb 20 15:06 relay-log.info #中继日志应用信息
-rw-r----- 1 mysql mysql 723533 Feb 19 11:53 slow.log
drwxr-x--- 2 mysql mysql 12288 Feb 9 16:49 sys