MySQL 8.0 リファレンスマニュアル


MySQL 8.0 リファレンスマニュアル  /  ...  /  行ベースのレプリケーションの監視

17.4.3 行ベースのレプリケーションの監視

行ベースレプリケーション使用時のレプリケーションアプライアンス (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;

関連キーワード:  ベース, ソース, バイナリ, GTID, トランザクション, テーブル, ステートメント, 構成, 変数, 設定