このセクションでは、クローニング操作を監視するためのオプションについて説明します。
データの量やデータ転送に関連するその他の要因によっては、クローニング操作の完了に時間がかかる場合があります。 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
権限が必要です。
クローニング操作の状態を確認するには:
受信者の MySQL サーバーインスタンスに接続します。
-
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" |
+-----------+----------+---------------+
クローニング操作の各ステージの詳細を確認するには:
受信者の MySQL サーバーインスタンスに接続します。
-
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「パフォーマンススキーマステージイベントテーブル」 を参照してください。
-
stage/innodb/clone%
インストゥルメントを有効にします:mysql> UPDATE performance_schema.setup_instruments SET ENABLED = 'YES' WHERE NAME LIKE 'stage/innodb/clone%';
-
ステージイベントコンシューマテーブル (
events_stages_current
、events_stages_history
およびevents_stages_history_long
を含む) を有効にします。mysql> UPDATE performance_schema.setup_consumers SET ENABLED = 'YES' WHERE NAME LIKE '%stages%';
-
クローニング操作を実行します。 この例では、ローカルデータディレクトリが
cloned_dir
という名前のディレクトリにクローニングされます。mysql> CLONE LOCAL DATA DIRECTORY = '/path/to/cloned_dir';
-
パフォーマンススキーマ
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
ステータス変数は、CLONE
ステートメントの実行回数を提供します。
詳細は、セクション5.1.10「サーバーステータス変数」 の Com_xxx
ステートメントカウンタ変数に関する説明を参照してください。