数据库主从复制和读写分离
- 主从复制
1.1 主从复制原理
- Master的更新事件(update、insert、delete)会按照顺序写入bin-log中。当Slave连接到Master的
后,Master机器会为Slave开启binlog dump线程,该线程会去读取bin-log日志
(2) Slave连接到Master后,Slave库有一个I/O线程,通过请求binlog dump thread读取bin-log日志,然
后写入从库的relay log日志中。
(3) Slave还有一个 SQL线程,实时监控 relay-log日志内容是否有更新,解析文件中的SQL语句,在Slave
数据库中去执行。
主从复制工作(过程)原理
1.从库执行change master to 命令(主库的连接信息+复制的起点)
2.从库会将以上信息,记录到master.info文件
3.从库执行 start slave 命令,立即开启IO_T和SQL_T
4.从库 IO_T,读取master.info文件中的信息,获取到IP,PORT,User,Pass,binlog的位置信息
5.从库IO_T请求连接主库,主库专门提供一个DUMP_T,负责和IO_T交互
6.IO_T根据binlog的位置信息(mysql-bin.000002 , 448),请求主库新的binlog
7.主库通过DUMP_T将最新的binlog,通过网络传输给从库的IO_T
8.IO_T接收到新的binlog日志,存储到TCP/IP缓存,立即返回ACK给主库,并更新master.info
9.IO_T将TCP/IP缓存中数据转储到磁盘relaylog中.
10.SQL_T读取relay.info中的信息,获取到上次已经应用过的relaylog的位置信息
11.SQL_T会按照上次的位置点回放最新的relaylog,再次更新relay.info信息12.从库会自动清理应用过的relay文件
补充说明:
一旦主从复制构建成功,主库当中发生了新的变化,都会通过dump_T发送信号给IO_T,增强了主从复
制的实时性

浙公网安备 33010602011771号