25.12.11.6 Replication_Applier_status_by_workertable
如果副本不是多线程的,则此 table 显示应用程序线程的状态。否则,副本将使用多个工作线程和一个协调程序线程来 Management 它们,并且此 table 显示了工作线程的状态。对于多线程副本,replication_applier_status_by_coordinatortable 显示了协调线程的状态。
replication_applier_status_by_worker
table 具有以下列:
CHANNEL_NAME
该行正在显示的复制通道。始终有一个默认的复制通道,并且可以添加更多的复制通道。有关更多信息,请参见第 16.2.3 节“复制通道”。
WORKER_ID
工作程序标识符(与mysql.slave_worker_info
table 中的id
列相同的值)。在STOP SLAVE之后,THREAD_ID
列变为NULL
,但保留WORKER_ID
值。
THREAD_ID
工作线程标识符。
SERVICE_STATE
ON
(线程存在并且处于活动或空闲状态)或OFF
(线程不再存在)。
LAST_SEEN_TRANSACTION
Worker 最后一次见过的 Transaction。Worker 不一定必须应用此事务,因为它可能仍在进行中。
如果gtid_mode系统变量值为OFF
,则此列为ANONYMOUS
,table 示事务不具有全局事务标识符(GTID),并且仅由文件和位置标识。
如果gtid_mode为ON
,则列值定义如下:
-
如果未执行任何事务,则该列为空。
SELECT GTID_SUBSET(LAST_SEEN_TRANSACTION, @@GLOBAL.GTID_EXECUTED)
FROM performance_schema.replication_applier_status_by_worker;
如果该语句返回零,则说明该事务尚未提交,这是因为它仍在处理中,或者是因为工作线程在处理时已停止。如果该语句返回非零值,则 table 示事务已提交。
LAST_ERROR_NUMBER
,LAST_ERROR_MESSAGE
导致工作线程停止的最新错误的错误号和错误消息。错误号 0 和空字符串的消息 table 示“无错误”。如果LAST_ERROR_MESSAGE
值不为空,则错误值也会出现在副本的错误日志中。
发出RESET MASTER或RESET SLAVE会重置这些列中显示的值。
LAST_ERROR_NUMBER
和LAST_ERROR_MESSAGE
列中显示的所有错误代码和消息均与第 B.3.1 节“服务器错误消息参考”中列出的错误值相对应。
LAST_ERROR_TIMESTAMP
YYMMDD hh:mm:ss
*格式的时间戳,显示最近的工作程序错误发生的时间。
replication_applier_status_by_workertable 不允许TRUNCATE TABLE。
下 table 显示了replication_applier_status_by_worker
列和显示从站状态列之间的对应关系。
replication_applier_status_by_worker 列 | SHOW SLAVE STATUS 列 |
---|---|
WORKER_ID | None |
THREAD_ID | None |
SERVICE_STATE | None |
LAST_SEEN_TRANSACTION | None |
LAST_ERROR_NUMBER | Last_SQL_Errno |
LAST_ERROR_MESSAGE | Last_SQL_Error |
LAST_ERROR_TIMESTAMP | Last_SQL_Error_Timestamp |