Skip to content

Latest commit

 

History

History
17 lines (17 loc) · 1.66 KB

MySQL的主从复制是如何实现的?.md

File metadata and controls

17 lines (17 loc) · 1.66 KB
  1. 日志文件和位置(Binary Log and Position)
    • 主服务器上的所有数据更改(如INSERT、UPDATE、DELETE等)都会记录在二进制日志(Binary Log)中。这个日志包含了所有更改数据的事件以及标识这些事件位置的日志点(Log Position)。
  2. 配置主服务器
    • 在主服务器上,需要启用二进制日志,并配置一个唯一的服务器ID。
  3. 配置从服务器
    • 在从服务器上,也需要配置一个唯一的服务器ID,它与主服务器的ID不同。
    • 设置从服务器以连接到主服务器,并指定要开始复制的二进制日志文件名和日志位置。
    • 从服务器会启动两个重要的线程:I/O线程和SQL线程。
      • I/O线程:连接到主服务器并请求从指定的日志文件和位置开始复制数据,然后将接收到的二进制日志事件复制到从服务器的中继日志(Relay Log)。
      • SQL线程:读取中继日志中的事件并在从服务器上重新执行这些事件,以此来更新从服务器上的数据。
  4. 数据复制过程
    • 主服务器的二进制日志被不断记录数据变更。
    • 从服务器的I/O线程从主服务器请求并获取二进制日志的更新,并将它们写入中继日志。
    • 从服务器的SQL线程读取中继日志中的事件,并将这些事件应用到从服务器的数据库中,确保与主服务器的数据一致。
  5. 监控和维护
    • 复制过程可以监控各种状态和性能指标,如延迟、错误和日志文件的大小。
    • 维护复制环境可能涉及处理错误、重新同步数据和升级服务器。