文档首页
MySQL 8.4 参考手册
相关文档 下载本手册
PDF (US Ltr) - 39.9Mb
PDF (A4) - 40.0Mb
手册页 (TGZ) - 258.5Kb
手册页 (Zip) - 365.5Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 参考手册  /  ...  /  复制线程

19.2.3 复制线程

MySQL 复制功能使用以下类型的线程实现

  • 二进制日志转储线程。 当副本连接时,源创建一个线程来将二进制日志内容发送到副本。此线程可以在源上的 SHOW PROCESSLIST 的输出中标识为 Binlog Dump 线程。

  • 复制 I/O 接收线程。 当在副本服务器上发出 START REPLICA 语句时,副本将创建一个 I/O(接收)线程,该线程连接到源并要求它发送其二进制日志中记录的更新。

    复制接收线程读取源的 Binlog Dump 线程发送的更新(见上一项),并将它们复制到构成副本中继日志的本地文件。

    此线程的状态在 SHOW REPLICA STATUS 的输出中显示为 Slave_IO_running

  • 复制 SQL 应用线程。replica_parallel_workers 等于 0 时,副本将创建一个 SQL(应用)线程来读取由复制接收线程写入的中继日志,并执行其中包含的事务。当 replica_parallel_workersN >= 1 时,将有 N 个应用线程和一个协调器线程,协调器线程从中继日志中顺序读取事务,并将它们调度到工作线程进行应用。每个工作线程应用协调器分配给它的事务。

通过将系统变量 replica_parallel_workers 设置为大于 0 的值,可以为副本上的任务启用进一步的并行化。完成此操作后,副本将创建指定数量的工作线程来应用事务,以及一个协调器线程,该线程从中继日志中读取事务并将它们分配给工作线程。具有 replica_parallel_workers (slave_parallel_workers) 设置为大于 0 的值的副本称为多线程副本。如果使用多个复制通道,则每个通道都有使用此变量指定的线程数。

NDB 集群也支持多线程副本。有关更多信息,请参见 第 25.7.11 节,“使用多线程应用器进行 NDB 集群复制”