このページは機械翻訳したものです。
- 27.12.11.1 replication_connection_configuration テーブル
- 27.12.11.2 replication_connection_status テーブル
- 27.12.11.3 replication_asynchronous_connection_failover テーブル
- 27.12.11.4 replication_applier_configuration テーブル
- 27.12.11.5 replication_applier_status テーブル
- 27.12.11.6 replication_applier_status_by_coordinator テーブル
- 27.12.11.7 replication_applier_status_by_worker テーブル
- 27.12.11.8 replication_applier_global_filters テーブル
- 27.12.11.9 replication_applier_filters テーブル
- 27.12.11.10 replication_group_members テーブル
- 27.12.11.11 replication_group_member_stats テーブル
- 27.12.11.12 binary_log_transaction_compression_stats テーブル
パフォーマンススキーマは、レプリケーション情報を公開するテーブルを提供します。 これは、SHOW REPLICA | SLAVE STATUS ステートメントから入手できる情報に似ていますが、テーブル形式での表現はアクセスしやすく、ユーザビリティ上の利点があります:
SHOW REPLICA | SLAVE STATUS出力は、視覚的な検査に役立ちますが、プログラムでの使用にはあまり役立ちません。 対照的に、「パフォーマンススキーマ」テーブルを使用すると、複雑なWHERE条件、結合など、一般的なSELECTクエリーを使用してレプリカステータスに関する情報を検索できます。クエリー結果は、さらに分析するためにテーブルに保存することも、変数に割り当ててストアドプロシージャで使用することもできます。
レプリケーションテーブルは、より適切な診断情報を提供します。 マルチスレッドレプリカ操作の場合、
SHOW REPLICA | SLAVE STATUSはLast_SQL_ErrnoおよびLast_SQL_Errorフィールドを使用してすべてのコーディネータおよびワーカースレッドエラーをレポートするため、最新のエラーのみが表示され、情報が失われる可能性があります。 レプリケーションテーブルには、情報を失わずにスレッドごとにエラーが格納されます。最後に表示されたトランザクションは、ワーカーごとにレプリケーションテーブルに表示されます。 これは、
SHOW REPLICA | SLAVE STATUSからは入手できない情報です。パフォーマンススキーマインタフェースに精通している開発者は、テーブルに行を追加することによって、レプリケーションテーブルを拡張して追加情報を提供できます。
レプリケーションテーブルの説明
パフォーマンススキーマは、次のレプリケーション関連テーブルを提供します:
-
ソースへのレプリカの接続に関する情報を含むテーブル:
replication_connection_configuration: ソースに接続するための構成パラメータreplication_connection_status: ソースへの接続の現在のステータスreplication_asynchronous_connection_failover: 非同期接続フェイルオーバーメカニズムのソースリスト
-
トランザクションアプライアンスに関する一般的な (スレッド固有ではない) 情報を含むテーブル:
replication_applier_configuration: レプリカ上のトランザクションアプライアンスの構成パラメータ。replication_applier_status: レプリカ上のトランザクションアプライアンスの現在のステータス。
-
ソースから受信したトランザクションの適用を担当する特定のスレッドに関する情報を含むテーブル:
replication_applier_status_by_coordinator: コーディネータスレッドのステータス (レプリカがマルチスレッドでないかぎり空)。replication_applier_status_by_worker: レプリカがマルチスレッドの場合のアプライヤスレッドまたはワーカースレッドのステータス。
-
チャネルベースのレプリケーションフィルタに関する情報を含むテーブル:
replication_applier_filters: 特定のレプリケーションチャネルに構成されているレプリケーションフィルタに関する情報を提供します。replication_applier_global_filters: すべてのレプリケーションチャネルに適用されるグローバルレプリケーションフィルタに関する情報を提供します。
-
グループレプリケーションメンバーに関する情報を含むテーブル:
replication_group_members: グループメンバーのネットワークおよびステータス情報を提供します。replication_group_member_stats: 参加しているグループメンバーおよびトランザクションに関する統計情報を提供します。
詳細は、セクション18.3「グループレプリケーションの監視」 を参照してください。
パフォーマンススキーマが無効になっている場合、次のパフォーマンススキーマレプリケーションテーブルは引き続き移入されます:
replication_connection_configurationreplication_connection_statusreplication_asynchronous_connection_failoverreplication_applier_configurationreplication_applier_statusreplication_applier_status_by_coordinatorreplication_applier_status_by_worker
例外は、レプリケーションテーブル replication_connection_status、replication_applier_status_by_coordinator および replication_applier_status_by_worker のローカルタイミング情報 (トランザクションの開始タイムスタンプと終了タイムスタンプ) です。 パフォーマンススキーマが無効になっている場合、この情報は収集されません。
次の各セクションでは、SHOW REPLICA | SLAVE STATUS によって生成されるカラムと、同じ情報が表示されるレプリケーションテーブルのカラムとの対応など、各レプリケーションテーブルについて詳しく説明します。
このレプリケーションテーブルの残りの部分では、パフォーマンススキーマがそれらをどのように移入するか、および SHOW REPLICA | SLAVE STATUS のどのフィールドがテーブルに表示されないかについて説明します。
レプリケーションテーブルのライフサイクル
パフォーマンススキーマは、次のようにレプリケーションテーブルに移入します:
CHANGE REPLICATION SOURCE TO|CHANGE MASTER TOを実行する前は、テーブルは空です。CHANGE REPLICATION SOURCE TO|CHANGE MASTER TOの後、構成パラメータはテーブルに表示されます。 現時点では、アクティブなレプリケーションスレッドはないため、THREAD_IDカラムはNULLで、SERVICE_STATEカラムの値はOFFです。START REPLICA | SLAVEの後、NULL以外のTHREAD_ID値が表示されます。 アイドル状態またはアクティブなスレッドのSERVICE_STATE値はONです。 ソースに接続するスレッドは、接続の確立中はCONNECTINGの値を持ち、接続が継続しているかぎりONの値を持ちます。STOP REPLICA | SLAVEの後、THREAD_IDカラムはNULLになり、存在しなくなったスレッドのSERVICE_STATEカラムの値はOFFになります。テーブルは、
STOP REPLICA | SLAVEまたはスレッドがエラーのために停止した後も保持されます。replication_applier_status_by_workerテーブルは、レプリカがマルチスレッドモードで動作している場合にのみ空ではありません。 つまり、slave_parallel_workersシステム変数が 0 より大きい場合、このテーブルはSTART REPLICA | SLAVEの実行時に移入され、行数にワーカー数が表示されます。
レプリケーションテーブルにないレプリカステータス情報
パフォーマンススキーマレプリケーションテーブル内の情報は、SHOW REPLICA | SLAVE STATUS から使用可能な情報とは多少異なります。テーブルは、ファイル名や位置ではなくグローバルトランザクション識別子 (GTID) の使用に向けており、サーバー ID 値ではなくサーバー UUID 値を表しているためです。 これらの違いのため、いくつかの SHOW REPLICA | SLAVE STATUS カラムはパフォーマンススキーマレプリケーションテーブルに保持されないか、別の方法で表されます:
-
次のフィールドはファイル名と位置を参照し、保持されません:
Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Exec_Master_Log_Pos Until_Condition Until_Log_File Until_Log_Pos Master_Info_Fileフィールドは保持されません。 これは、レプリカソースメタデータリポジトリに使用されるmaster.infoファイルを参照します。これは、リポジトリにクラッシュセーフテーブルを使用することで置き換えられています。-
次のフィールドは、
server_uuidではなくserver_idに基づいており、保持されません:Master_Server_Id Replicate_Ignore_Server_Ids Skip_Counterフィールドは GTID ではなくイベント数に基づいており、保持されません。-
これらのエラーフィールドは
Last_SQL_ErrnoおよびLast_SQL_Errorのエイリアスであるため、保持されません:Last_Errno Last_Errorパフォーマンススキーマでは、このエラー情報は
replication_applier_status_by_workerテーブル (およびレプリカがマルチスレッドの場合はreplication_applier_status_by_coordinator) のLAST_ERROR_NUMBERおよびLAST_ERROR_MESSAGEカラムで使用できます。 これらのテーブルは、Last_ErrnoおよびLast_Errorから入手できるよりも具体的なスレッドエラーごとの情報を提供します。 -
コマンド行フィルタリングオプションに関する情報を提供するフィールドは保持されません:
Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Replica_IO_StateおよびReplica_SQL_Running_Stateのフィールドは保持されません。 必要に応じて、適切なレプリケーションテーブルのTHREAD_IDカラムを使用し、INFORMATION_SCHEMAPROCESSLISTテーブルのIDカラムと結合して、プロセスリストからこれらの値を取得し、後者のテーブルのSTATEカラムを選択できます。Executed_Gtid_Setフィールドには、大量のテキストを含む大きなセットを表示できます。 代わりに、「パフォーマンススキーマ」テーブルには、レプリカによって現在適用されているトランザクションの GTID が表示されます。 または、実行された GTID のセットをgtid_executedシステム変数の値から取得できます。Seconds_Behind_MasterおよびRelay_Log_Spaceフィールドは指定予定のステータスであり、保持されません。
レプリケーションチャネル
レプリケーション「パフォーマンススキーマ」テーブルの最初のカラムは CHANNEL_NAME です。 これにより、レプリケーションチャネルごとにテーブルを表示できます。 非マルチソースレプリケーション設定には、単一のデフォルトレプリケーションチャネルがあります。 レプリカで複数のレプリケーションチャネルを使用している場合は、レプリケーションチャネルごとにテーブルをフィルタして、特定のレプリケーションチャネルを監視できます。 詳細は、セクション17.2.2「レプリケーションチャネル」 および セクション17.1.5.8「マルチソースレプリケーションの監視」 を参照してください。