Mysql | 主从复制的工作机制

主从复制的工作机制

Mysql的主从复制 从库主要是读取主库的binlog日志来完成数据同步的, binlog中存储了对数据库所有修改SQL的语句。

  1. 首先Master开启BinLog二进制的写入。
  2. Slave从库通过ip、port、账号、密码链接到Master主数据库,链接成功后从库会向主数据库获取Binlog的位置、 偏移量等信息,来确定从库应该从主库的Binlog的那个位置开始读取。
  3. Master主数据库接收到从库的请求后,会根据从库提供的Binlog位置信息,从响应的位置开始读取Binlog文件,并将内容发送给从库。 主数据库会通过一个专门的线程(Binlog Dump Thread)来完成这个任务,该线程会持续监控binlog文件的变化,并将新的变更发送给从库
  4. Slave从数据库会通过一个IO Thread来接收Master主库的Binlog内容并先写道中继日志中
  5. Slave从数据库会通过一个专门的SQL Thread 来读取中继日志中的内容,并执行其中记录的SQL内容

中继日志

中继日志是从数据库的一个临时日志文件, 用于存储主数据库发送过来的Binlog内容。 它的作用是解耦从库的IO Thread 与SQL Thread 使这两个线程都可以独立工作。

IO Thread 负责接收主数据的Binlog内容,并写入到中继日志中

SQL Thread 负责读取中继日志并执行其中的SQL语句

相关推荐
gsfl1 小时前
Redis 缓存
数据库·redis·缓存
恒悦sunsite8 小时前
Ubuntu之apt安装ClickHouse数据库
数据库·clickhouse·ubuntu·列式存储·8123
奥尔特星云大使8 小时前
MySQL 慢查询日志slow query log
android·数据库·mysql·adb·慢日志·slow query log
来自宇宙的曹先生8 小时前
MySQL 存储引擎 API
数据库·mysql
间彧8 小时前
MySQL Performance Schema详解与实战应用
数据库
间彧8 小时前
MySQL Exporter采集的关键指标有哪些,如何解读这些指标?
数据库
weixin_446260859 小时前
Django - 让开发变得简单高效的Web框架
前端·数据库·django
mpHH9 小时前
babelfish for postgresql 分析--todo
数据库·postgresql
zizisuo9 小时前
解决在使用Lombok时maven install 找不到符号的问题
java·数据库·maven
老苏畅谈运维10 小时前
Oracle的connect by level在MySQL中的华丽变身
mysql·oracle