• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • 位置: MySQL 8 中文手册 -> MySQL 性能模式

    性能架构复制表

    性能架构提供了一些表,这些表公开了复制信息。这类似于该SHOW SLAVE STATUS语句中可用的信息,但是以表格形式表示更易于访问并且具有可用性的好处:

    • SHOW SLAVE STATUS输出对于视觉检查很有用,但对于程序使用却没有太大帮助。相比之下,使用性能模式表,可以使用常规SELECT查询(包括复杂WHERE条件,联接等)来搜索有关从站状态的信息。
    • 查询结果可以保存在表中以进行进一步分析,或分配给变量,从而在存储过程中使用。
    • 复制表提供了更好的诊断信息。对于多线程从属操作,请SHOW SLAVE STATUS使用Last_SQL_ErrnoLast_SQL_Error字段报告所有协调器和工作线程错误,因此只有这些错误中的最新错误才可见,并且信息可能丢失。复制表按线程存储错误,而不会丢失信息。
    • 在每个员工的基础上,最后看到的事务在复制表中可见。这是无法获得的信息SHOW SLAVE STATUS
    • 熟悉Performance Schema界面的开发人员可以通过向表添加行来扩展复制表,以提供其他信息。

    复制表说明

    性能架构提供以下与复制相关的表:

    • 包含有关从服务器到主服务器的连接信息的表:

      • replication_connection_configuration:用于连接主站的配置参数
      • replication_connection_status:与主站连接的当前状态
    • 包含有关事务处理请求者的常规(非特定于线程)信息的表:

      • 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:提供有关组成员及其参与的交易的统计信息。

      有关更多信息,请参见“监视组复制”。

    禁用性能架构后,将继续填充以下性能架构复制表:

    • replication_connection_configuration
    • replication_connection_status
    • replication_applier_configuration
    • replication_applier_status
    • replication_applier_status_by_coordinator
    • replication_applier_status_by_worker

    唯一的例外是在复制表的本地定时信息(开始和结束时间戳进行交易)replication_connection_statusreplication_applier_status_by_coordinatorreplication_applier_status_by_worker。禁用性能架构时,不会收集此信息。

    以下各节将更详细地描述每个复制表,包括由产生的SHOW SLAVE STATUS列与其中显示相同信息的复制表列之间的对应关系。

    本复制表简介的其余部分描述了性能模式如何填充它们以及SHOW SLAVE STATUS表中未表示来自哪些字段。

    复制表生命周期

    性能架构按以下方式填充复制表:

    • 在执行之前CHANGE MASTER TO,表为空。
    • 之后CHANGE MASTER TO,可以在表中看到配置参数。在这个时候,没有活动的从属线程,所以THREAD_IDNULLSERVICE_STATE列具有的价值OFF
    • 之后START SLAVENULLTHREAD_ID可以看到非值。空闲或活动的线程的SERVICE_STATE值为ON。连接到主服务器的线程CONNECTING在建立连接时具有值,ON此后只要连接持续就具有值。
    • 之后STOP SLAVE,该THREAD_ID列变为,NULL并且SERVICE_STATE不再存在的线程的列的值为OFF
    • STOP SLAVE由于错误,表将在线程死后被保留。
    • replication_applier_status_by_worker仅当从属设备在多线程模式下运行时,该表才是非空的。也就是说,如果slave_parallel_workers系统变量大于0,则在START SLAVE执行该表时将填充该表,并且行数显示工作程序数。

    显示从站状态信息不在复制表中

    性能模式复制表中的信息与可用信息有所不同,SHOW SLAVE STATUS因为这些表是针对使用全局事务标识符(GTID)而非文件名和位置的,并且它们表示服务器UUID值而不是服务器ID值。由于这些差异,SHOW 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_id,not server_uuid和不保留:

      Master_Server_Id
      Replicate_Ignore_Server_Ids
      
    • Skip_Counter字段基于事件计数,而不是GTID,并且不会保留。
    • 这些错误字段是Last_SQL_Errno和的别名Last_SQL_Error,因此不会保留它们:

      Last_Errno
      Last_Error
      

      在性能模式中,此错误信息在表的LAST_ERROR_NUMBERLAST_ERROR_MESSAGE列中可用replication_applier_status_by_coordinator(并且replication_applier_status_by_worker如果从属服务器是多线程的)。这些表提供比可从更具体的每个线程的错误信息Last_ErrnoLast_Error

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

      Replicate_Do_DB
      Replicate_Ignore_DB
      Replicate_Do_Table
      Replicate_Ignore_Table
      Replicate_Wild_Do_Table
      Replicate_Wild_Ignore_Table
      
    • Slave_IO_StateSlave_SQL_Running_State字段不保留。如果需要,可以通过使用THREAD_ID适当的复制表的ID列并将其与INFORMATION_SCHEMAPROCESSLIST表中的列连接以选择STATE后者表中的列,从过程列表中获取这些值。
    • Executed_Gtid_Set字段可以显示大量文本。相反,性能架构表显示从属服务器当前正在应用的事务的GTID。或者,可以从gtid_executed系统变量的值中获取已执行的GTID的集合。
    • Seconds_Behind_MasterRelay_Log_Space字段在待决定状态,并不会保留。

    复制通道

    复制性能模式表的第一列是CHANNEL_NAME。这使每个复制通道都可以查看表。在非多源复制设置中,只有一个默认复制通道。在从属服务器上使用多个复制通道时,可以过滤每个复制通道的表以监视特定的复制通道。有关更多信息,请参见“复制通道”和“监视多源复制”。