#### 17.2.3.1 监控复制主线程

这[`显示进程列表`](show-processlist.html)语句提供的信息告诉您源上和副本上发生的有关复制的情况。有关源状态的信息，请参阅[第 8.14.4 节，“复制源线程状态”](source-thread-states.html).对于副本状态，请参阅[第 8.14.5 节，“复制 I/O（接收器）线程状态”](replica-io-thread-states.html)， 和[第 8.14.6 节，“复制 SQL 线程状态”](replica-sql-thread-states.html).

以下示例说明了三个主要复制线程，二进制日志转储线程、复制 I/O（接收者）线程和复制 SQL（应用程序）线程，如何显示在来自[`显示进程列表`](show-processlist.html).

在源服务器上，来自[`显示进程列表`](show-processlist.html)看起来像这样：

```
mysql> SHOW PROCESSLIST\G
*************************** 1. row ***************************
     Id: 2
   User: root
   Host: localhost:32931
     db: NULL
Command: Binlog Dump
   Time: 94
  State: Has sent all binlog to slave; waiting for binlog to
         be updated
   Info: NULL
```

这里，线程 2 是`二进制日志转储`为连接的副本提供服务的线程。这`状态`信息表明所有未完成的更新都已发送到副本，并且源正在等待更多更新发生。如果你看到没有`二进制日志转储`源服务器上的线程，这意味着复制没有运行；也就是说，当前没有连接副本。

在副本服务器上，输出来自[`显示进程列表`](show-processlist.html)看起来像这样：

```
mysql> SHOW PROCESSLIST\G
*************************** 1. row ***************************
     Id: 10
   User: system user
   Host:
     db: NULL
Command: Connect
   Time: 11
  State: Waiting for master to send event
   Info: NULL
*************************** 2. row ***************************
     Id: 11
   User: system user
   Host:
     db: NULL
Command: Connect
   Time: 11
  State: Has read all relay log; waiting for the slave I/O
         thread to update it
   Info: NULL
```

这`状态`信息表明线程 10 是与源服务器通信的复制 I/O（接收者）线程，线程 11 是正在处理存储在中继日志中的更新的复制 SQL（应用程序）线程。当时那个[`显示进程列表`](show-processlist.html)已运行，两个线程都处于空闲状态，等待进一步更新。

中的值`时间`列可以显示副本与源相比的延迟时间。看[第 A.14 节，“MySQL 8.0 常见问题解答：复制”](faqs-replication.html).如果源端有足够的时间过去，而源端没有活动`二进制日志转储`线程，源确定副本不再连接。对于任何其他客户端连接，超时取决于`net_write_timeout`和`net_retry_count`;有关这些的更多信息，请参阅[第 5.1.8 节，“服务器系统变量”](server-system-variables.html).

这[`显示副本状态`](show-replica-status.html)语句提供有关副本服务器上的复制处理的附加信息。看[第 17.1.7.1 节，“检查复制状态”](replication-administration-status.html).
