Documentation Home
MySQL 8.0 参考手册  / 第 27 章 MySQL 性能模式  / 27.12 性能模式表描述  / 27.12.11 性能模式复制表  /  25.12.11.6 replication_applier_status_by_worker 表

25.12.11.6 replication_applier_status_by_worker 表

如果副本不是多线程的,则此表显示应用程序线程的状态。否则,副本使用多个工作线程和一个协调线程来管理它们,此表显示工作线程的状态。对于多线程副本,该 replication_applier_status_by_coordinator 表显示协调器线程的状态。

replication_applier_status_by_worker 表有以下列:

  • CHANNEL_NAME

    此行显示的复制通道。总是有一个默认的复制通道,可以添加更多的复制通道。有关详细信息,请参阅 第 16.2.2 节,“复制通道”

  • WORKER_ID

    id工作人员标识符(与表中列的 值相同 mysql.slave_worker_info)。在 之后 STOP SLAVE,该 THREAD_ID列变为 NULL,但 WORKER_ID值被保留。

  • THREAD_ID

    工作线程标识符。

  • SERVICE_STATE

    ON(线程存在并且处于活动或空闲状态)或OFF(线程不再存在)。

  • LAST_SEEN_TRANSACTION

    工作人员最后看到的交易。工作人员不一定应用此事务,因为它可能仍在执行此操作。

    如果gtid_mode系统变量值为OFF,则此 ANONYMOUS列为 ,表示事务没有全局事务标识符(GTID),仅通过文件和位置标识。

    如果gtid_modeON,列值定义如下:

    • 如果没有交易执行,则该列为空。

    • 事务执行后,该列会在设置后gtid_next立即gtid_next设置。从这一刻起,该列始终显示 GTID。

    • GTID 会一直保留到执行下一个事务为止。如果发生错误,该列的值是错误发生时worker正在执行的事务的GTID。以下语句显示该事务是否已提交:

      SELECT GTID_SUBSET(LAST_SEEN_TRANSACTION, @@GLOBAL.GTID_EXECUTED)
      FROM performance_schema.replication_applier_status_by_worker;

      如果该语句返回零,则事务尚未提交,因为它仍在处理中,或者因为工作线程在处理时已停止。如果语句返回非零值,则事务已提交。

  • LAST_ERROR_NUMBER, LAST_ERROR_MESSAGE

    导致工作线程停止的最近错误的错误号和错误消息。错误号 0 和空字符串的消息表示没有错误。如果该 LAST_ERROR_MESSAGE值不为空,则错误值也会出现在副本的错误日志中。

    发出RESET MASTERRESET SLAVE重置这些列中显示的值。

    LAST_ERROR_NUMBER和 列 中显示的所有错误代码和消息 LAST_ERROR_MESSAGE对应于 服务器错误消息参考中列出的错误值。

  • LAST_ERROR_TIMESTAMP

    格式的时间戳YYMMDD hh:mm:ss ,显示最近发生工作程序错误的时间。

TRUNCATE TABLE不允许用于 replication_applier_status_by_worker 表。

下表是 replication_applier_status_by_worker 列与SHOW SLAVE STATUS 列的对应关系。

replication_applier_status_by_worker柱子 SHOW SLAVE STATUS柱子
WORKER_ID 没有任何
THREAD_ID 没有任何
SERVICE_STATE 没有任何
LAST_SEEN_TRANSACTION 没有任何
LAST_ERROR_NUMBER Last_SQL_Errno
LAST_ERROR_MESSAGE Last_SQL_Error
LAST_ERROR_TIMESTAMP Last_SQL_Error_Timestamp