文档首页
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.1 监控复制主线程

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 8.4 常见问题解答:复制”。如果在源端经过足够的时间,Binlog Dump 线程没有活动,源会确定副本不再连接。对于任何其他客户端连接,这取决于net_write_timeoutnet_retry_count 的值;有关这些的更多信息,请参阅第 7.1.8 节,“服务器系统变量”

SHOW REPLICA STATUS 语句提供了有关副本服务器上复制处理的更多信息。请参阅第 19.1.7.1 节,“检查复制状态”