- 29.12.11.1 复制连接配置表
- 29.12.11.2 复制连接状态表
- 29.12.11.3 异步连接故障转移表
- 29.12.11.4 异步连接故障转移管理表
- 29.12.11.5 复制应用程序配置表
- 29.12.11.6 复制应用程序状态表
- 29.12.11.7 按协调器的复制应用程序状态表
- 29.12.11.8 按工作线程的复制应用程序状态表
- 29.12.11.9 全局过滤器表
- 29.12.11.10 复制应用程序过滤器表
- 29.12.11.11 复制组成员表
- 29.12.11.12 复制组成员统计表
- 29.12.11.13 复制组成员操作表
- 29.12.11.14 复制组配置版本表
- 29.12.11.15 复制组通信信息表
- 29.12.11.16 二进制日志事务压缩统计表
性能模式提供了表格,以暴露复制信息。这类似于从 SHOW REPLICA STATUS
语句中获得的信息,但以表格形式表示更加易于访问和使用:
-
SHOW REPLICA STATUS
输出适合视觉检查,但不太适合编程使用。相比之下,使用性能模式表格,可以使用通用SELECT
查询,包括复杂的WHERE
条件、连接等。 -
查询结果可以保存在表格中,以便进一步分析,或者分配给变量,以便在存储过程中使用。
-
复制表格提供了更好的诊断信息。对于多线程复制操作,
SHOW REPLICA STATUS
报告所有协调器和工作线程错误,使用Last_SQL_Errno
和Last_SQL_Error
字段,因此只有最新的错误信息可见,信息可能会丢失。复制表格存储每个线程的错误信息,不会丢失信息。 -
每个工作线程的最后一个事务是可见的,信息来自复制表格。这是
SHOW REPLICA STATUS
无法提供的信息。 -
熟悉性能模式接口的开发者可以通过添加表格行来扩展复制表格,以提供更多信息。
复制表格描述
性能模式提供了以下复制相关表格:
-
包含复制连接信息的表格:
-
replication_connection_configuration
:连接到源的配置参数 -
replication_connection_status
:当前连接到源的状态 -
异步连接故障转移
: 来源列表,用于异步连接故障转移机制
-
-
包含事务应用程序的通用(非线程特定)信息的表:
-
包含特定线程信息的表,负责应用从源接收的事务:
-
事务应用程序状态_by_coordinator
: 协调器线程的状态(除非副本是多线程的,否则为空)。 -
事务应用程序状态_by_worker
: 应用程序线程或工作线程的状态,如果副本是多线程的。
-
-
包含基于通道的复制过滤器信息的表:
-
复制应用程序过滤器
: 提供特定复制通道上的复制过滤器信息。 -
全局复制应用程序过滤器
: 提供所有复制通道上的全局复制过滤器信息。
-
-
包含组复制成员信息的表:
更多信息,请参阅 第 20.4 节,“监控组复制”。
以下 Performance Schema 复制表在禁用 Performance Schema 时继续填充:
异常是本地计时信息(事务的开始和结束时间戳)在复制表中replication_connection_status
、replication_applier_status_by_coordinator
和replication_applier_status_by_worker
。这些信息在性能模式禁用时不被收集。
以下部分详细描述每个复制表,包括SHOW REPLICA STATUS
生成的列与复制表中的列之间的对应关系。
本介绍的其余部分描述了性能模式如何填充这些表,以及SHOW REPLICA STATUS
中的哪些字段不在表中表示。
复制表生命周期
性能模式按照以下方式填充复制表:
-
在执行
CHANGE REPLICATION SOURCE TO
之前,表为空。 -
在
CHANGE REPLICATION SOURCE TO
之后,配置参数可以在表中看到。此时,没有活动的复制线程,因此THREAD_ID
列为空,SERVICE_STATE
列的值为OFF
。 -
在
START REPLICA
之后,非空THREAD_ID
值可以看到。空闲或活动的线程具有SERVICE_STATE
值ON
。连接源的线程具有CONNECTING
值,而连接建立后为ON
。 -
在
STOP REPLICA
之后,THREAD_ID
列为空,SERVICE_STATE
列的值为OFF
。 -
表在
STOP REPLICA
或线程停止due to error后被保留。 -
只有在副本操作multithreaded模式时,
replication_applier_status_by_worker
表才不是空的。也就是说,如果replica_parallel_workers
系统变量大于0,则在执行START REPLICA
时,该表将被填充,行数显示worker的数量。
副本状态信息不在复制表中
性能模式复制表中的信息与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_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_SCHEMA
PROCESSLIST
表的ID
列来获取STATE
列。 -
该
Executed_Gtid_Set
字段可以显示大量文本。相反,性能模式表显示当前由副本应用的交易的 GTIDs。或者,可以从gtid_executed
系统变量的值中获取已执行的 GTID 集合。 -
该
Seconds_Behind_Master
和Relay_Log_Space
字段的状态未定,并且不会被保留。
复制通道
性能模式表的第一列是 CHANNEL_NAME
。这使得表可以按复制通道查看。在非多源复制设置中,有一个默认的复制通道。当您在副本上使用多个复制通道时,可以按复制通道过滤表以监控特定的复制通道。请参阅 第 19.2.2 节,“复制通道” 和 第 19.1.5.8 节,“监控多源复制” 以获取更多信息。