- 10.11.1 replication_connection_configuration表
- 10.11.2 replication_connection_status表
- 10.11.3 replication_asynchronous_connection_failover表
- 10.11.4 replication_asynchronous_connection_failover_managed表
- 10.11.5 replication_applier_configuration表
- 10.11.6 replication_applier_status表
- 10.11.7 replication_applier_status_by_coordinator表
- 10.11.8 replication_applier_status_by_worker表
- 10.11.9 replication_applier_global_filters表
- 10.11.10 replication_applier_filters Table
- 10.11.11 replication_group_members表
- 10.11.12 replication_group_member_stats表
- 10.11.13 replication_group_member_actions表
- 10.11.14 replication_group_configuration_version表
- 10.11.15 binary_log_transaction_compression_stats表
性能模式提供了公开复制信息的表。这与可用的信息类似显示复制状态
语句,但表格形式的表示更容易访问,并具有可用性的好处:
显示复制状态
输出对于可视化检查很有用,但对于编程使用就不那么有用了。相比之下,使用Performance Schema表,可以使用general搜索关于副本状态的信息选择
复杂的查询,包括在哪里
条件、连接等等。查询结果可以保存在表中以便进一步分析,也可以赋值给变量,从而在存储过程中使用。
复制表提供更好的诊断信息。对于多线程复制操作,
显示复制状态
方法报告所有协调器和工作线程错误Last_SQL_Errno
而且Last_SQL_Error
字段,因此只有最近的错误是可见的,信息可能会丢失。复制表在每个线程的基础上存储错误,而不会丢失信息。在每个工作者的基础上,最后看到的事务在复制表中可见。这是无法获得的信息
显示复制状态
.熟悉Performance Schema接口的开发人员可以扩展复制表,通过向表中添加行来提供额外的信息。
复制表的描述
性能模式提供了以下与复制相关的表:
包含副本到源的连接信息的表:
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
:提供组成员及其参与的事务的统计信息。
有关更多信息,请参见监测组复制.
当禁用性能模式时,将继续填充以下性能模式复制表:
例外情况是复制表中的本地计时信息(事务的开始和结束时间戳)replication_connection_status
,replication_applier_status_by_coordinator
,replication_applier_status_by_worker
.当禁用性能架构时,不收集此信息。
下面的部分将更详细地描述每个复制表,包括生成的列之间的对应关系显示复制状态
以及复制表中出现相同信息的列。
本文对复制表的其余介绍将描述Performance Schema如何填充复制表以及从哪些字段填充复制表显示复制状态
没有在表中表示。
复制表生命周期
性能模式按照以下方式填充复制表:
后
将复制源更改为
|改变主
,配置参数见表。此时,没有活动的复制线程,因此THREAD_ID
列是零
和SERVICE_STATE
列的值为从
.后
开始复制
(或MySQL 8.0.22之前,开始的奴隶
),非零
THREAD_ID
价值是可见的。空闲或活动的线程有一个SERVICE_STATE
的价值在
.连接到源的线程的值为连接
当它建立连接的时候在
之后,只要连接持续。后
停止复制
,THREAD_ID
列成为零
和SERVICE_STATE
不再存在的线程的列的值为从
.之后,表格会保留下来
停止复制
或者线程由于错误而停止。的
replication_applier_status_by_worker
表仅当副本在多线程模式下操作时为非空。也就是说,如果replica_parallel_workers
或slave_parallel_workers
系统变量大于0时,该表填充开始复制
,行数显示工作人员的数量。
复制状态信息不在复制表中
性能模式复制表中的信息与可用的信息有些不同显示复制状态
因为这些表面向全局事务标识符(gtid)的使用,而不是文件名和位置,并且它们表示服务器UUID值,而不是服务器ID值。由于这些差异,几个显示复制状态
列不保留在性能模式复制表中,或者以不同的方式表示:
以下字段表示文件名和位置,不保留:
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_Errno
而且Last_SQL_Error
,所以没有保存下来:Last_Errno Last_Error
在性能架构中,此错误信息可在
LAST_ERROR_NUMBER
而且LAST_ERROR_MESSAGE
列的replication_applier_status_by_worker
表(和replication_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
表来选择状态
后一个表的列。的
Executed_Gtid_Set
字段可以显示包含大量文本的大集合。相反,Performance Schema表显示当前由副本应用的事务的gtid。的值可以获取已执行gtid的集合gtid_executed
系统变量。的
Seconds_Behind_Master
而且Relay_Log_Space
字段处于待决定状态,不保留。
复制通道
复制性能模式表的第一列为CHANNEL_NAME
.这使得可以在每个复制区域通道中查看表。在非多源复制设置中,有一个默认复制区域通道。当您在一个复制上使用多个复制区域通道时,您可以筛选每个复制区域通道的表,以监视特定的复制区域通道。看到复制通道而且监测多源复制为更多的信息。