文档首页
MySQL 9.0 参考手册
相关文档 下载此手册
PDF (美国信纸) - 40.0Mb
PDF (A4) - 40.1Mb
手册页 (TGZ) - 258.2Kb
手册页 (Zip) - 365.3Kb
信息 (Gzip) - 4.0Mb
信息 (Zip) - 4.0Mb


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

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_workersslave_parallel_workers)设置为大于 0 的值的副本称为多线程副本。如果您使用多个复制通道,则每个通道都具有使用此变量指定的线程数。

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