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_timeout
和 net_retry_count
的值;如需更多資訊,請參閱第 7.1.8 節, 「伺服器系統變數」。
SHOW REPLICA STATUS
陳述式提供關於副本伺服器上複製處理的其他資訊。請參閱第 19.1.7.1 節, 「檢查複製狀態」。