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