MySQL - binlog同步过程

2023-09-10 08:56:24 浏览数 (1)

binlog作用

MySQL 的 binlog(二进制日志) 是一种记录数据库所有数据更改操作的日志,可以用于数据库备份、恢复、错误排查、数据同步等操作。binlog 是 MySQL 中的一个重要组件,能够记录下所有对数据库的修改操作,包括添加、删除和修改数据,以及更改数据库结构(例如:创建、删除表)等操作。 MySQL 的 binlog 同步原理是主从复制 (Master-Slave Replication),主库 (Master) 将所有数据更改操作记录保存在 binlog 中,并通过网络发送给一个或多个从库 (Slave),从库再将主库的 binlog 应用到自己的数据库中,从而实现数据的同步。


binlog同步过程

具体步骤如下:

  1. 主库 (Master) 将数据更改操作记录保存在 binlog 中,包括对表的增删改操作,以及对数据库结构的更改操作(例如:创建、删除表)。
  2. 从库 (Slave) 连接到主库,并请求复制数据。从库发送一个命令 (CHANGE MASTER TO) 告诉主库它想要复制的日志文件和位置 (Position)。
  3. 主库收到从库的请求,将 binlog 文件和位置发送给从库。
  4. 从库收到 binlog 文件和位置后,开始应用这些更改操作。从库将主库的 binlog 文件保存在自己的数据库中,并使用主库的 binlog 位置开始复制。
  5. 当从库复制完一个 binlog 文件后,会发送一个确认 (ACK) 给主库,告诉主库它已经复制完该文件。
  6. 主库收到确认后,会继续将下一个 binlog 文件发送给从库,直到所有 binlog 文件都被复制完成。 通过以上步骤,主从库之间可以实现数据的同步,从库可以实时地备份主库的数据,以便在主库出现故障时能够快速地进行恢复。同时,binlog 也可以用于数据分析和迁移等操作,提高了数据库的可用性和灵活性。

主从同步架构图(异步同步)

0 人点赞