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


5.6.7.9 クローニング操作の監視

このセクションでは、クローニング操作を監視するためのオプションについて説明します。

パフォーマンススキーマクローンテーブルを使用したクローニング操作のモニタリング

データの量やデータ転送に関連するその他の要因によっては、クローニング操作の完了に時間がかかる場合があります。 clone_status および clone_progress「パフォーマンススキーマ」テーブルを使用して、受信者 MySQL サーバーインスタンスでのクローニング操作のステータスおよび進行状況を監視できます。

注記

clone_status および clone_progress「パフォーマンススキーマ」テーブルは、受信者 MySQL サーバーインスタンスでのみクローニング操作を監視するために使用できます。 ドナー MySQL サーバーインスタンスでクローニング操作を監視するには、パフォーマンススキーマステージイベントを使用したクローニング操作の監視 の説明に従ってクローンステージイベントを使用します。

  • clone_status テーブルには、現在または最後に実行されたクローニング操作の状態が表示されます。 クローン操作には、4 つの状態があります: Not Started, In Progress, Completed および Failed

  • clone_progress テーブルには、現在または最後に実行されたクローン操作の進行状況情報がステージ別に表示されます。 クローニング操作のステージには、DROP DATA, FILE COPY, PAGE_COPY, REDO_COPY, FILE_SYNC, RESTART および RECOVERY が含まれます。

パフォーマンススキーマクローンテーブルにアクセスするには、パフォーマンススキーマに対する SELECT および EXECUTE 権限が必要です。

クローニング操作の状態を確認するには:

  1. 受信者の MySQL サーバーインスタンスに接続します。

  2. clone_status テーブルをクエリーします:

    mysql> SELECT STATE FROM performance_schema.clone_status;
    +-----------+
    | STATE     |
    +-----------+
    | Completed |
    +-----------+

クローニング操作中に障害が発生した場合は、clone_status テーブルにエラー情報をクエリーすることができます:

mysql> SELECT STATE, ERROR_NO, ERROR_MESSAGE FROM performance_schema.clone_status;
+-----------+----------+---------------+
| STATE     | ERROR_NO | ERROR_MESSAGE |
+-----------+----------+---------------+
| Failed    |      xxx | "xxxxxxxxxxx" |
+-----------+----------+---------------+

クローニング操作の各ステージの詳細を確認するには:

  1. 受信者の MySQL サーバーインスタンスに接続します。

  2. clone_progress テーブルをクエリーします。 たとえば、次のクエリーでは、クローニング操作の各ステージの状態および終了時間データが提供されます:

    mysql> SELECT STAGE, STATE, END_TIME FROM performance_schema.clone_progress;
    +-----------+-----------+----------------------------+
    | stage     | state     | end_time                   |
    +-----------+-----------+----------------------------+
    | DROP DATA | Completed | 2019-01-27 22:45:43.141261 |
    | FILE COPY | Completed | 2019-01-27 22:45:44.457572 |
    | PAGE COPY | Completed | 2019-01-27 22:45:44.577330 |
    | REDO COPY | Completed | 2019-01-27 22:45:44.679570 |
    | FILE SYNC | Completed | 2019-01-27 22:45:44.918547 |
    | RESTART   | Completed | 2019-01-27 22:45:48.583565 |
    | RECOVERY  | Completed | 2019-01-27 22:45:49.626595 |
    +-----------+-----------+----------------------------+

    監視可能なその他のクローンステータスおよび進捗データポイントについては、セクション27.12.17「パフォーマンススキーマクローンテーブル」 を参照してください。

パフォーマンススキーマステージイベントを使用したクローニング操作の監視

データの量やデータ転送に関連するその他の要因によっては、クローニング操作の完了に時間がかかる場合があります。 クローニング操作の進行状況を監視するには、3 つのステージイベントがあります。 各ステージイベントでは、WORK_COMPLETED および WORK_ESTIMATED の値がレポートされます。 レポートされた値は、操作の進行に応じて改訂されます。

クローニング操作を監視するこの方法は、ドナーまたは受信者の MySQL サーバーインスタンスで使用できます。

発生順に、クローニング操作ステージイベントは次のとおりです:

  • stage/innodb/clone (file copy): クローニング操作のファイルコピーフェーズの進行状況を示します。 WORK_ESTIMATED および WORK_COMPLETED ユニットはファイルチャンクです。 転送されるファイルの数はファイルコピーフェーズの開始時に認識され、チャンクの数はファイルの数に基づいて推定されます。 WORK_ESTIMATED は、推定ファイルチャンクの数に設定されます。 WORK_COMPLETED は、各チャンクの送信後に更新されます。

  • stage/innodb/clone (page copy): クローニング操作のページコピーフェーズの進行状況を示します。 WORK_ESTIMATED および WORK_COMPLETED ユニットはページです。 ファイルのコピーフェーズが完了すると、転送されるページ数がわかり、WORK_ESTIMATED はこの値に設定されます。 WORK_COMPLETED は、各ページの送信後に更新されます。

  • stage/innodb/clone (redo copy): クローニング操作の redo コピーフェーズの進行状況を示します。 WORK_ESTIMATED および WORK_COMPLETED ユニットは redo チャンクです。 ページコピーフェーズが完了すると、転送される redo チャンクの数がわかり、WORK_ESTIMATED はこの値に設定されます。 WORK_COMPLETED は、各チャンクの送信後に更新されます。

次の例は、クローニング操作を監視するために stage/innodb/clone% イベントインストゥルメントおよび関連コンシューマテーブルを有効にする方法を示しています。 パフォーマンススキーマステージイベントインストゥルメントおよび関連コンシューマについては、セクション27.12.5「パフォーマンススキーマステージイベントテーブル」 を参照してください。

  1. stage/innodb/clone% インストゥルメントを有効にします:

    mysql> UPDATE performance_schema.setup_instruments SET ENABLED = 'YES'
           WHERE NAME LIKE 'stage/innodb/clone%';
  2. ステージイベントコンシューマテーブル (events_stages_currentevents_stages_history および events_stages_history_long を含む) を有効にします。

    mysql> UPDATE performance_schema.setup_consumers SET ENABLED = 'YES'
           WHERE NAME LIKE '%stages%';
  3. クローニング操作を実行します。 この例では、ローカルデータディレクトリが cloned_dir という名前のディレクトリにクローニングされます。

    mysql> CLONE LOCAL DATA DIRECTORY = '/path/to/cloned_dir';
  4. パフォーマンススキーマ events_stages_current テーブルをクエリーして、クローニング操作の進行状況を確認します。 表示されるステージイベントは、進行中のクローニングフェーズによって異なります。 WORK_COMPLETED カラムには、完了した作業が表示されます。 WORK_ESTIMATED カラムには、必要な作業の合計が表示されます。

    mysql> SELECT EVENT_NAME, WORK_COMPLETED, WORK_ESTIMATED FROM performance_schema.events_stages_current
           WHERE EVENT_NAME LIKE 'stage/innodb/clone%';
    +--------------------------------+----------------+----------------+
    | EVENT_NAME                     | WORK_COMPLETED | WORK_ESTIMATED |
    +--------------------------------+----------------+----------------+
    | stage/innodb/clone (redo copy) |              1 |              1 |
    +--------------------------------+----------------+----------------+

    クローニング操作が終了すると、events_stages_current テーブルは空のセットを返します。 この場合、events_stages_history テーブルをチェックして、完了した操作のイベントデータを表示できます。 例:

    mysql> SELECT EVENT_NAME, WORK_COMPLETED, WORK_ESTIMATED FROM events_stages_history
           WHERE EVENT_NAME LIKE 'stage/innodb/clone%';
    +--------------------------------+----------------+----------------+
    | EVENT_NAME                     | WORK_COMPLETED | WORK_ESTIMATED |
    +--------------------------------+----------------+----------------+
    | stage/innodb/clone (file copy) |            301 |            301 |
    | stage/innodb/clone (page copy) |              0 |              0 |
    | stage/innodb/clone (redo copy) |              1 |              1 |
    +--------------------------------+----------------+----------------+
パフォーマンススキーマクローンの計測を使用したクローニング操作のモニタリング

Performance Schema は、クローン操作の高度なパフォーマンス監視のためのインストゥルメンテーションを提供します。 使用可能なクローンインストゥルメンテーションを表示するには、次のクエリーを発行します:

mysql> SELECT * FROM performance_schema.setup_instruments
       WHERE NAME LIKE WHERE NAME LIKE '%clone%';
+----------------------------------------------+---------+
| NAME                                         | ENABLED |
+----------------------------------------------+---------+
| wait/synch/mutex/innodb/clone_snapshot_mutex | NO      |
| wait/synch/mutex/innodb/clone_sys_mutex      | NO      |
| wait/synch/mutex/innodb/clone_task_mutex     | NO      |
| wait/io/file/innodb/innodb_clone_file        | YES     |
| stage/innodb/clone (file copy)               | YES     |
| stage/innodb/clone (redo copy)               | YES     |
| stage/innodb/clone (page copy)               | YES     |
| statement/abstract/clone                     | YES     |
| statement/clone/local                        | YES     |
| statement/clone/client                       | YES     |
| statement/clone/server                       | YES     |
| memory/innodb/clone                          | YES     |
| memory/clone/data                            | YES     |
+----------------------------------------------+---------+
待機インストゥルメント

パフォーマンススキーマ待機インストゥルメントは、時間がかかるイベントを追跡します。 クローン待機イベントインストゥルメントには次のものがあります:

  • wait/synch/mutex/innodb/clone_snapshot_mutex: クローンスナップショット mutex の待機イベントを追跡します。これは、(ドナーと受信者の) 動的スナップショットオブジェクトへのアクセスを複数のクローンスレッド間で同期します。

  • wait/synch/mutex/innodb/clone_sys_mutex: クローン sys mutex の待機イベントを追跡します。 MySQL サーバーインスタンスには、クローンシステムオブジェクトが 1 つあります。 この mutex は、ドナーと受信者のクローンシステムオブジェクトへのアクセスを同期します。 クローンスレッド、その他のフォアグラウンドおよびバックグラウンドスレッドによって取得されます。

  • wait/synch/mutex/innodb/clone_task_mutex: クローンタスク管理に使用されるクローンタスク mutex の待機イベントを追跡します。 clone_task_mutex はクローンスレッドによって取得されます。

  • wait/io/file/innodb/innodb_clone_file: クローンが動作するファイルのすべての I/O 待機操作を追跡します。

InnoDB mutex 待機の監視の詳細は、セクション15.16.2「パフォーマンススキーマを使用した InnoDB Mutex 待機のモニタリング」 を参照してください。 待機イベントの一般的な監視の詳細は、セクション27.12.4「パフォーマンススキーマ待機イベントテーブル」 を参照してください。

証書のステージング

パフォーマンススキーマのステージイベントは、ステートメント実行プロセス中に発生する手順を追跡します。 クローンステージイベントインストゥルメントには次のものがあります:

  • stage/innodb/clone (file copy): クローニング操作のファイルコピーフェーズの進行状況を示します。

  • stage/innodb/clone (redo copy): クローニング操作の redo コピーフェーズの進行状況を示します。

  • stage/innodb/clone (page copy): クローニング操作のページコピーフェーズの進行状況を示します。

ステージイベントを使用したクローニング操作の監視の詳細は、パフォーマンススキーマステージイベントを使用したクローニング操作の監視 を参照してください。 ステージイベントの監視の一般情報は、セクション27.12.5「パフォーマンススキーマステージイベントテーブル」 を参照してください。

ステートメント証書

パフォーマンススキーマのステートメントイベントは、ステートメントの実行を追跡します。 クローン操作が開始されると、clone ステートメントインストゥルメントによって追跡される様々なステートメントタイプがパラレルで実行される場合があります。 これらのステートメントイベントは、パフォーマンススキーマステートメントイベントテーブルで監視できます。 実行されるステートメントの数は、clone_max_concurrency および clone_autotune_concurrency の設定によって異なります。

ステートメントイベントインストゥルメントのクローニングには、次のものが含まれます:

  • statement/abstract/clone: ローカル、クライアントまたはサーバー操作タイプとして分類される前に、クローン操作のステートメントイベントを追跡します。

  • statement/clone/local: ローカルクローン操作のクローンステートメントイベントを追跡します。CLONE LOCAL ステートメントの実行時に生成されます。

  • statement/clone/client: 受信者 MySQL サーバーインスタンスで発生するリモートクローニングステートメントイベントを追跡します。受信者で CLONE INSTANCE ステートメントを実行すると生成されます。

  • statement/clone/server: ドナー MySQL サーバーインスタンスで発生するリモートクローニングステートメントイベントを追跡します。受信者で CLONE INSTANCE ステートメントを実行すると生成されます。

パフォーマンススキーマのステートメントイベントのモニタリングについては、セクション27.12.6「パフォーマンススキーマステートメントイベントテーブル」 を参照してください。

メモリーインストゥルメント

パフォーマンススキーマメモリーインストゥルメントはメモリー使用状況を追跡します。 クローンメモリー使用量インスツルメントには次のものがあります:

  • memory/innodb/clone: 動的スナップショット用に InnoDB によって割り当てられたメモリーを追跡します。

  • memory/clone/data: クローン操作中にクローンプラグインによって割り当てられたメモリーを追跡します。

パフォーマンススキーマを使用したメモリー使用量のモニタリングについては、セクション27.12.18.10「メモリーサマリーテーブル」 を参照してください。

Com_clone ステータス変数

Com_clone ステータス変数は、CLONE ステートメントの実行回数を提供します。

詳細は、セクション5.1.10「サーバーステータス変数」Com_xxx ステートメントカウンタ変数に関する説明を参照してください。


関連キーワード:  操作, サーバー, WORK, 監視, パフォーマンス, 変数, stage, スキーマ, mutex, テーブル