数据库主从复制和读写分离

  1. 主从复制
    1.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,增强了主从复

制的实时性


__EOF__

本文作者Crushz
本文链接https://www.cnblogs.com/Crushz-2024/p/18390306.html
关于博主:Crushz
版权声明:转载请注明来源哟~ QAQ
声援博主:UP UP UP !!!
posted @   Crushz  阅读(9)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
点击右上角即可分享
微信分享提示