行ベースレプリケーション使用時のレプリケーションアプライアンス (SQL) スレッドの現在の進行状況は、パフォーマンススキーマインストゥルメントステージを介してモニターされるため、操作の処理を追跡したり、完了した作業量や推定作業量を確認したりできます。 これらのパフォーマンススキーマインストゥルメントステージが有効になっている場合、events_stages_current
テーブルにはアプライヤスレッドのステージとその進行状況が表示されます。 背景情報については、セクション27.12.5「パフォーマンススキーマステージイベントテーブル」 を参照してください。
3 つのすべての行ベースのレプリケーションイベントタイプ (書込み、更新、削除) の進行状況を追跡するには:
-
次を発行して、3 つのパフォーマンススキーマステージを有効にします:
mysql> UPDATE performance_schema.setup_instruments SET ENABLED = 'YES' -> WHERE NAME LIKE 'stage/sql/Applying batch of row changes%';
-
一部のイベントがレプリケーションアプライヤスレッドによって処理されるまで待機し、
events_stages_current
テーブルを参照して進行状況を確認します。 たとえば、update
イベントの進捗を取得するには、次のようにします:mysql> SELECT WORK_COMPLETED, WORK_ESTIMATED FROM performance_schema.events_stages_current -> WHERE EVENT_NAME LIKE 'stage/sql/Applying batch of row changes (update)'
-
binlog_rows_query_log_events
が有効な場合、クエリーに関する情報はバイナリログに格納され、processlist_info
フィールドに表示されます。 このイベントをトリガーした元のクエリーを表示するには:mysql> SELECT db, processlist_state, processlist_info FROM performance_schema.threads -> WHERE processlist_state LIKE 'stage/sql/Applying batch of row changes%' AND thread_id = N;