Documentation Home
MySQL 8.3 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 40.8Mb
PDF (A4) - 40.9Mb
Man Pages (TGZ) - 294.0Kb
Man Pages (Zip) - 409.0Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb
Excerpts from this Manual

MySQL 8.3 Reference Manual  /  ...  /  Performance Schema Replication Tables

29.12.11 性能模式复制表

性能模式提供了表格,以暴露复制信息。这类似于从 SHOW REPLICA STATUS 语句中获得的信息,但以表格形式表示更加易于访问和使用:

  • SHOW REPLICA STATUS 输出适合视觉检查,但不太适合编程使用。相比之下,使用性能模式表格,可以使用通用 SELECT 查询,包括复杂的 WHERE 条件、连接等。

  • 查询结果可以保存在表格中,以便进一步分析,或者分配给变量,以便在存储过程中使用。

  • 复制表格提供了更好的诊断信息。对于多线程复制操作,SHOW REPLICA STATUS 报告所有协调器和工作线程错误,使用 Last_SQL_ErrnoLast_SQL_Error 字段,因此只有最新的错误信息可见,信息可能会丢失。复制表格存储每个线程的错误信息,不会丢失信息。

  • 每个工作线程的最后一个事务是可见的,信息来自复制表格。这是 SHOW REPLICA STATUS 无法提供的信息。

  • 熟悉性能模式接口的开发者可以通过添加表格行来扩展复制表格,以提供更多信息。

复制表格描述

性能模式提供了以下复制相关表格:

以下 Performance Schema 复制表在禁用 Performance Schema 时继续填充:

异常是本地计时信息(事务的开始和结束时间戳)在复制表中replication_connection_statusreplication_applier_status_by_coordinatorreplication_applier_status_by_worker。这些信息在性能模式禁用时不被收集。

以下部分详细描述每个复制表,包括SHOW REPLICA STATUS生成的列与复制表中的列之间的对应关系。

本介绍的其余部分描述了性能模式如何填充这些表,以及SHOW REPLICA STATUS中的哪些字段不在表中表示。

复制表生命周期

性能模式按照以下方式填充复制表:

副本状态信息不在复制表中

性能模式复制表中的信息与SHOW REPLICA STATUS中的信息不同,因为表是面向使用全局事务标识符(GTIDs),而不是文件名和位置,并且它们表示服务器UUID值,而不是服务器ID值。由于这些差异,一些SHOW REPLICA 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
  • The Master_Info_File字段不被保留。它引用了master.info文件,该文件用于副本的源元数据存储库,该存储库已经被崩溃安全表所取代。

  • 以下字段基于server_id,而不是server_uuid,不被保留:

    Master_Server_Id
    Replicate_Ignore_Server_Ids
  • Skip_Counter 字段基于事件计数,而不是 GTIDs,不会被保留。

  • 这些错误字段是 Last_SQL_ErrnoLast_SQL_Error 的别名,因此它们不会被保留:

    Last_Errno
    Last_Error

    在性能模式中,这些错误信息可在 replication_applier_status_by_worker 表(如果副本是多线程的,则为 replication_applier_status_by_coordinator 表)的 LAST_ERROR_NUMBERLAST_ERROR_MESSAGE 列中找到。这些表提供了比 Last_ErrnoLast_Error 更具体的每线程错误信息。

  • 提供命令行过滤选项信息的字段不会被保留:

    Replicate_Do_DB
    Replicate_Ignore_DB
    Replicate_Do_Table
    Replicate_Ignore_Table
    Replicate_Wild_Do_Table
    Replicate_Wild_Ignore_Table
  • Replica_IO_StateReplica_SQL_Running_State 字段不会被保留。如果需要,这些值可以从进程列表中通过使用 THREAD_ID 列和 INFORMATION_SCHEMA PROCESSLIST 表的 ID 列来获取 STATE 列。

  • Executed_Gtid_Set 字段可以显示大量文本。相反,性能模式表显示当前由副本应用的交易的 GTIDs。或者,可以从 gtid_executed 系统变量的值中获取已执行的 GTID 集合。

  • Seconds_Behind_MasterRelay_Log_Space 字段的状态未定,并且不会被保留。

复制通道

性能模式表的第一列是 CHANNEL_NAME。这使得表可以按复制通道查看。在非多源复制设置中,有一个默认的复制通道。当您在副本上使用多个复制通道时,可以按复制通道过滤表以监控特定的复制通道。请参阅 第 19.2.2 节,“复制通道”第 19.1.5.8 节,“监控多源复制” 以获取更多信息。