MySQL 8.4 版本说明
本节介绍基于二进制日志文件位置的 MySQL 服务器之间的复制,其中作为源(数据库更改发生的地方)运行的 MySQL 实例将更新和更改作为“事件”写入二进制日志。二进制日志中的信息根据记录的数据库更改以不同的日志记录格式存储。副本配置为从源读取二进制日志并在副本的本地数据库上执行二进制日志中的事件。
每个副本都会收到二进制日志完整内容的副本。副本负责决定应执行二进制日志中的哪些语句。除非您另行指定,否则源二进制日志中的所有事件都会在副本上执行。如果需要,您可以配置副本以仅处理适用于特定数据库或表的事件。
重要
您无法配置源以仅记录某些事件。
每个副本都会记录二进制日志坐标:它从源读取并处理的文件名以及该文件中的位置。这意味着多个副本可以连接到源并执行同一二进制日志的不同部分。由于副本控制此过程,因此可以在不影响源操作的情况下将各个副本连接和断开连接。此外,由于每个副本都会记录二进制日志中的当前位置,因此副本可以断开连接、重新连接,然后继续处理。
源和每个副本都必须使用唯一的 ID 进行配置(使用 server_id
系统变量)。此外,每个副本都必须配置有关源的主机名、日志文件名以及该文件中的位置的信息。这些详细信息可以使用副本上的 CHANGE REPLICATION SOURCE TO
语句在 MySQL 会话中进行控制。这些详细信息存储在副本的连接元数据存储库中(参见 第 19.2.4 节,“中继日志和复制元数据存储库”)。