MySQL 8.4 Release Notes
19.2 复制实现
复制基于源服务器跟踪其数据库的所有变化(更新、删除等)在其二进制日志中。二进制日志作为源服务器从启动到现在的所有事件的记录。通常,SELECT
语句不会被记录,因为它们既不修改数据库结构也不修改内容。
每个副本都请求从源获取一个复制的二进制日志副本。这意味着,它从源获取数据,而不是源将数据推送到副本中。副本还执行从二进制日志中接收到的事件。这使得在源上执行的原始变化被重复执行。表格被创建或结构被修改,数据被插入、删除和更新,以便在源上执行的原始变化。
因为每个副本都是独立的,源的二进制日志的重新播放在每个副本上独立执行。此外,因为每个副本从源请求二进制日志副本,可以在副本上读取和更新数据库副本的速度,可以在源或副本上停止和恢复复制过程。
关于复制实现的详细信息,请见第19.2.3节,“复制线程”。
源服务器和副本报告它们在复制过程中的状态,以便您可以监控它们。见第10.14节,“检查服务器线程(进程)信息”,了解所有复制相关状态的描述。
源服务器的二进制日志将被写入到本地中继日志中,然后再被处理。中继服务器还记录了源服务器的二进制日志和本地中继日志的当前位置信息。请参见第19.2.4节,“中继日志和复制元数据存储库”。
根据各种配置选项和变量控制事件评估的规则,中继服务器对数据库更改进行过滤。关于这些规则的应用细节,请参见第19.2.5节,“服务器评估复制过滤规则”。