Documentation Home
MySQL 8.4 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 39.8Mb
PDF (A4) - 39.9Mb
Man Pages (TGZ) - 257.9Kb
Man Pages (Zip) - 364.9Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 Reference Manual  /  ...  /  Replication Threads

19.2.3 复制线程

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

  • 二进制日志dump线程。 源服务器创建一个线程,用于将二进制日志内容发送到副本服务器时,副本服务器连接时。这个线程可以在源服务器上使用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_workers大于0时,有N个应用线程和一个协调线程,协调线程从中继日志中读取事务,并将其分配给工作线程,每个工作线程应用协调线程分配给它的事务。

您可以通过设置系统变量replica_parallel_workers的值大于0来启用副本服务器的多线程应用。这样,副本服务器将创建指定数量的工作线程来应用事务,并且一个协调线程来读取事务从中继日志,并将其分配给工作线程。如果您使用多个复制通道,每个通道都可以使用这个变量指定线程数量。

NDB 集群还支持多线程复制。详见第25.7.11节,“NDB 集群使用多线程应用程序”,了解更多信息。