Documentation Home

27.12.11 性能模式复制表

性能模式提供公开复制信息的表。这类似于SHOW REPLICA STATUS语句中可用的信息,但表格形式的表示更易于访问并且具有可用性优势:

  • SHOW REPLICA STATUSoutput 对于目视检查很有用,但对于编程用途则没有那么多。相比之下,使用 Performance Schema 表,可以使用一般 SELECT查询来搜索有关副本状态的信息,包括复杂WHERE条件、连接等。

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

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

  • 最后看到的事务在每个工作人员的复制表中是可见的。这是无法从 获得的信息 SHOW REPLICA STATUS

  • 熟悉 Performance Schema 接口的开发人员可以扩展复制表,通过向表中添加行来提供额外的信息。

复制表说明

Performance Schema 提供了以下与复制相关的表:

禁用性能模式时,将继续填充以下性能模式复制表:

replication_connection_status例外是复制表、 replication_applier_status_by_coordinator和 中的本地计时信息(事务的开始和结束时间戳) replication_applier_status_by_worker。禁用性能模式时不会收集此信息。

以下部分更详细地描述了每个复制表,包括生成的 SHOW REPLICA STATUS列与出现相同信息的复制表列之间的对应关系。

复制表介绍的其余部分描述了性能模式如何填充它们以及 SHOW REPLICA STATUS表中未表示的字段。

复制表生命周期

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

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

Performance Schema 复制表中的信息与可用信息有些不同, SHOW REPLICA STATUS因为这些表面向使用全局事务标识符 (GTID),而不是文件名和位置,并且它们表示服务器 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
  • Master_Info_File字段未保留。它指的是master.info 用于副本的源元数据存储库的文件,该文件已被存储库的崩溃安全表所取代。

  • 以下字段基于 server_id、不是 server_uuid且不保留:

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

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

    Last_Errno
    Last_Error

    在 Performance Schema 中,此错误信息在表的LAST_ERROR_NUMBERLAST_ERROR_MESSAGE列中 可用replication_applier_status_by_workerreplication_applier_status_by_coordinator 如果副本是多线程的)。这些表提供了比 和 提供的更具体的每线程错误 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 如果需要,可以通过使用适当复制表的列并将其与表中的ID列 连接INFORMATION_SCHEMA PROCESSLIST以选择后表的 列,从进程列表中获取这些值STATE

  • Executed_Gtid_Set字段可以显示包含大量文本的大集合。相反,性能模式表显示副本当前正在应用的事务的 GTID。或者,可以从gtid_executed系统变量的值中获取一组已执行的 GTID。

  • 和字段处于待定状态,不保留 Seconds_Behind_MasterRelay_Log_Space

复制通道

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