MySQL8.
また、replication_とreplication_があります。これらのテーブルについては、
今回は、
performance_schemaのレプリケーションテーブル
レプリケーションテーブルは、SHOW SLAVE STATUSでは表現しきれなかった項目を表示できるようになっています。
よって、Seconds_やRelay_といった項目は表示されません。また、
replication_connection_statusテーブル
このテーブルはマスターの接続状態
mysql >SELECT * FROM replication_connection_status\G
*************************** 1. row ***************************
CHANNEL_NAME:
GROUP_NAME:
SOURCE_UUID: 9f46b8ef-8039-11e9-9958-fa163f770158
THREAD_ID: 50
SERVICE_STATE: ON
COUNT_RECEIVED_HEARTBEATS: 57
LAST_HEARTBEAT_TIMESTAMP: 2019-05-27 14:35:36.359708
RECEIVED_TRANSACTION_SET: 9f46b8ef-8039-11e9-9958-fa163f770158:1-1139998
LAST_ERROR_NUMBER: 0
LAST_ERROR_MESSAGE:
LAST_ERROR_TIMESTAMP: 0000-00-00 00:00:00.000000
LAST_QUEUED_TRANSACTION: 9f46b8ef-8039-11e9-9958-fa163f770158:1139998
LAST_QUEUED_TRANSACTION_ORIGINAL_COMMIT_TIMESTAMP: 2019-05-27 14:36:46.967330
LAST_QUEUED_TRANSACTION_IMMEDIATE_COMMIT_TIMESTAMP: 2019-05-27 14:36:46.967330
LAST_QUEUED_TRANSACTION_START_QUEUE_TIMESTAMP: 2019-05-27 14:36:46.968575
LAST_QUEUED_TRANSACTION_END_QUEUE_TIMESTAMP: 2019-05-27 14:36:46.968611
QUEUEING_TRANSACTION: 9f46b8ef-8039-11e9-9958-fa163f770158:1139999
QUEUEING_TRANSACTION_ORIGINAL_COMMIT_TIMESTAMP: 2019-05-27 14:36:46.967335
QUEUEING_TRANSACTION_IMMEDIATE_COMMIT_TIMESTAMP: 2019-05-27 14:36:46.967335
QUEUEING_TRANSACTION_START_QUEUE_TIMESTAMP: 2019-05-27 14:36:46.968615
MySQL8.
- LAST_
QUEUED_ TRANSACTION - LAST_
QUEUED_ TRANSACTION_ ORIGINAL_ COMMIT_ TIMESTAMP - LAST_
QUEUED_ TRANSACTION_ IMMEDIATE_ COMMIT_ TIMESTAMP - LAST_
QUEUED_ TRANSACTION_ START_ QUEUE_ TIMESTAMP - LAST_
QUEUED_ TRANSACTION_ END_ QUEUE_ TIMESTAMP
LAST_
START_
- QUEUEING_
TRANSACTION - QUEUEING_
TRANSACTION_ ORIGINAL_ COMMIT_ TIMESTAMP - QUEUEING_
TRANSACTION_ IMMEDIATE_ COMMIT_ TIMESTAMP - QUEUEING_
TRANSACTION_ START_ QUEUE_ TIMESTAMP
QUEUEING_
replication_applier_status_by_workerテーブル
このテーブルはMTSが無効な場合はSQLスレッドの情報を提供します。MTSが有効な場合、
mysql >SELECT * FROM replication_applier_status_by_worker\G
*************************** 1. row ***************************
CHANNEL_NAME:
WORKER_ID: 0
THREAD_ID: 47
SERVICE_STATE: ON
LAST_ERROR_NUMBER: 0
LAST_ERROR_MESSAGE:
LAST_ERROR_TIMESTAMP: 0000-00-00 00:00:00.000000
LAST_APPLIED_TRANSACTION: 9f46b8ef-8039-11e9-9958-fa163f770158:595021
LAST_APPLIED_TRANSACTION_ORIGINAL_COMMIT_TIMESTAMP: 2019-05-27 14:16:33.033826
LAST_APPLIED_TRANSACTION_IMMEDIATE_COMMIT_TIMESTAMP: 2019-05-27 14:20:29.364112
LAST_APPLIED_TRANSACTION_START_APPLY_TIMESTAMP: 2019-05-27 14:48:26.755794
LAST_APPLIED_TRANSACTION_END_APPLY_TIMESTAMP: 2019-05-27 14:48:26.757305
APPLYING_TRANSACTION: 9f46b8ef-8039-11e9-9958-fa163f770158:595022
APPLYING_TRANSACTION_ORIGINAL_COMMIT_TIMESTAMP: 2019-05-27 14:16:33.034271
APPLYING_TRANSACTION_IMMEDIATE_COMMIT_TIMESTAMP: 2019-05-27 14:20:29.365344
APPLYING_TRANSACTION_START_APPLY_TIMESTAMP: 2019-05-27 14:48:26.757314
LAST_APPLIED_TRANSACTION_RETRIES_COUNT: 0
LAST_APPLIED_TRANSACTION_LAST_TRANSIENT_ERROR_NUMBER: 0
LAST_APPLIED_TRANSACTION_LAST_TRANSIENT_ERROR_MESSAGE:
LAST_APPLIED_TRANSACTION_LAST_TRANSIENT_ERROR_TIMESTAMP: 0000-00-00 00:00:00.000000
APPLYING_TRANSACTION_RETRIES_COUNT: 0
APPLYING_TRANSACTION_LAST_TRANSIENT_ERROR_NUMBER: 0
APPLYING_TRANSACTION_LAST_TRANSIENT_ERROR_MESSAGE:
APPLYING_TRANSACTION_LAST_TRANSIENT_ERROR_TIMESTAMP: 0000-00-00 00:00:00.000000
MySQL8.
- LAST_
APPLIED_ TRANSACTION - LAST_
APPLIED_ TRANSACTION_ ORIGINAL_ COMMIT_ TIMESTAMP - LAST_
APPLIED_ TRANSACTION_ IMMEDIATE_ COMMIT_ TIMESTAMP - LAST_
APPLIED_ TRANSACTION_ START_ APPLY_ TIMESTAMP - LAST_
APPLIED_ TRANSACTION_ END_ APPLY_ TIMESTAMP - LAST_
APPLIED_ TRANSACTION_ RETRIES_ COUNT - LAST_
APPLIED_ TRANSACTION_ LAST_ TRANSIENT_ ERROR_ NUMBER - LAST_
APPLIED_ TRANSACTION_ LAST_ TRANSIENT_ ERROR_ MESSAGE - LAST_
APPLIED_ TRANSACTION_ LAST_ TRANSIENT_ ERROR_ TIMESTAMP
LAST_
その他のRETRIES_
- APPLYING_
TRANSACTION - APPLYING_
TRANSACTION_ ORIGINAL_ COMMIT_ TIMESTAMP - APPLYING_
TRANSACTION_ IMMEDIATE_ COMMIT_ TIMESTAMP - APPLYING_
TRANSACTION_ START_ APPLY_ TIMESTAMP - APPLYING_
TRANSACTION_ RETRIES_ COUNT - APPLYING_
TRANSACTION_ LAST_ TRANSIENT_ ERROR_ NUMBER - APPLYING_
TRANSACTION_ LAST_ TRANSIENT_ ERROR_ MESSAGE - APPLYING_
TRANSACTION_ LAST_ TRANSIENT_ ERROR_ TIMESTAMP
APPLYING_
replication_applier_status_by_coordinatorテーブル
このテーブルはコーディネータスレッドの情報を提供します。MTSが無効の場合はこのテーブルは空です。MySQL8.
- LAST_
PROCESSED_ TRANSACTION - LAST_
PROCESSED_ TRANSACTION_ ORIGINAL_ COMMIT_ TIMESTAMP - LAST_
PROCESSED_ TRANSACTION_ IMMEDIATE_ COMMIT_ TIMESTAMP - LAST_
PROCESSED_ TRANSACTION_ START_ BUFFER_ TIMESTAMP - LAST_
PROCESSED_ TRANSACTION_ END_ BUFFER_ TIMESTAMP - PROCESSING_
TRANSACTION - PROCESSING_
TRANSACTION_ ORIGINAL_ COMMIT_ TIMESTAMP - PROCESSING_
TRANSACTION_ IMMEDIATE_ COMMIT_ TIMESTAMP - PROCESSING_
TRANSACTION_ START_ BUFFER_ TIMESTAMP
LAST_
まとめ
今回紹介した、
- LAST_
QUEUED_ TRANSACTION (IOスレッドがリレーログに書いた最後のトランザクション) - QUEUEING_
TRANSACTION (IOスレッドがリレーログに現在書いているトランザクション) - LAST_
PROCESSED_ TRANSACTION (MTSが有効な場合のみ、 コーディネータスレッドが処理した最後のトランザクション) - PROCESSING_
TRANSACTION (MTSが有効な場合のみ、 コーディネータスレッドが現在処理しているトランザクション) - LAST_
APPLIED_ TRANSACTION (SQLスレッドが適用した最後のトランザクション) - APPLYING_
TRANSACTION (SQLスレッドが現在適用しているトランザクション)
スレーブ側でもマスターで実施されたコミット時間などを把握できるようになりました。
MTSが無効の場合は、
mysql >SELECT TIMEDIFF(APPLYING_TRANSACTION_START_APPLY_TIMESTAMP,APPLYING_TRANSACTION_ORIGINAL_COMMIT_TIMESTAMP) as DIFF_TIME FROM replication_applier_status_by_worker ; +-----------------+ | DIFF_TIME | +-----------------+ | 00:29:03.374953 | +-----------------+
mysql >SELECT TIMEDIFF(APPLYING_TRANSACTION_START_APPLY_TIMESTAMP,APPLYING_TRANSACTION_IMMEDIATE_COMMIT_TIMESTAMP) as DIFF_TIME FROM replication_applier_status_by_worker ; +-----------------+ | DIFF_TIME | +-----------------+ | 00:10:01.124343 | +-----------------+
また、