SHOW PROCESSLIST
ステートメントは、レプリケーションに関してソースおよびレプリカで何が起こっているかを示す情報を提供します。 ソースの状態の詳細は、セクション8.14.4「レプリケーションソーススレッドの状態」 を参照してください。 レプリカの状態については、セクション8.14.5「レプリケーション I/O スレッドの状態」 および セクション8.14.6「レプリケーション SQL スレッドの状態」 を参照してください。
次の例は、バイナリログダンプスレッド、Replicatin I/O スレッド、およびレプリケーション SQL スレッドの 3 つのメインレプリケーションスレッドが 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.0 FAQ: レプリケーション」を参照してください。 Binlog Dump
スレッドのアクティビティなしでソース側で十分な時間が経過すると、ソースはレプリカが接続されなくなったと判断します。 ほかのクライアント接続に関して、これのタイムアウトは net_write_timeout
および net_retry_count
の値によって異なります。これらの詳細については、セクション5.1.8「サーバーシステム変数」を参照してください。
SHOW REPLICA | SLAVE STATUS
ステートメントは、レプリカサーバーでのレプリケーション処理に関する追加情報を提供します。 セクション17.1.7.1「レプリケーションステータスの確認」を参照してください。