SHOW PROCESSLIST
语句提供有关源和副本上复制情况的信息。有关源状态的信息,请参见 第 10.14.4 节,“复制源线程状态”。有关副本状态的信息,请参见 第 10.14.5 节,“复制 I/O(接收器)线程状态” 和 第 10.14.6 节,“复制 SQL 线程状态”.
以下示例说明了三个主要复制线程(二进制日志转储线程、复制 I/O(接收器)线程和复制 SQL(应用器)线程)如何在 SHOW PROCESSLIST
的输出中显示。
在源服务器上,SHOW PROCESSLIST
的输出如下所示
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 是一个 Binlog Dump
线程,它为连接的副本提供服务。 State
信息表明所有未完成的更新都已发送到副本,源正在等待发生更多更新。如果在源服务器上没有看到任何 Binlog Dump
线程,这意味着复制没有运行,即没有副本当前连接。
在副本服务器上,SHOW PROCESSLIST
的输出如下所示
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
State
信息表明线程 10 是与源服务器通信的复制 I/O(接收器)线程,线程 11 是处理中继日志中存储的更新的复制 SQL(应用器)线程。在运行 SHOW PROCESSLIST
时,这两个线程都处于空闲状态,等待进一步的更新。
Time
列中的值可以显示副本与源相比的延迟程度。请参见 第 A.14 节,“MySQL 9.0 常见问题解答:复制”。如果在源端经过足够的时间没有 Binlog Dump
线程上的活动,源会确定副本不再连接。与任何其他客户端连接一样,这取决于 net_write_timeout
和 net_retry_count
的值;有关这些值的更多信息,请参见 第 7.1.8 节,“服务器系统变量”.
SHOW REPLICA STATUS
语句提供有关副本服务器上复制处理的更多信息。请参见 第 19.1.7.1 节,“检查复制状态”.