此表提供了应用程序线程在副本或组复制组成员上处理的事务的详细信息。对于单线程副本,显示副本的单个应用程序线程的数据。对于多线程副本,数据针对每个应用程序线程单独显示。多线程副本上的应用程序线程有时称为工作者。副本或组复制组成员上的应用程序线程数由
系统变量replica_parallel_workers
或
slave_parallel_workers
系统变量设置,对于单线程副本,该变量设置为零。多线程副本也有一个协调器线程来管理应用程序线程,这个线程的状态显示在
replication_applier_status_by_coordinator
桌子。
与错误相关的列中显示的所有错误代码和消息对应于 服务器错误消息参考中列出的错误值。
禁用性能模式时,不会收集本地时间信息,因此显示应用事务的开始和结束时间戳的字段为零。此表中的开始时间戳是指工作人员何时开始应用第一个事件,结束时间戳是指应用事务的最后一个事件的时间。
当副本通过
START
REPLICA
语句重新启动时,开始的列
APPLYING_TRANSACTION
将被重置。在 MySQL 8.0.13 之前,这些列不会在以单线程模式运行的副本上重置,只会在多线程副本上重置。
该
replication_applier_status_by_worker
表有以下列:
CHANNEL_NAME
此行显示的复制通道。总是有一个默认的复制通道,可以添加更多的复制通道。有关更多信息,请参阅 第 17.2.2 节,“复制通道”。
WORKER_ID
id
工作人员标识符(与表中列的 值相同mysql.slave_worker_info
)。在 之后STOP REPLICA
,该THREAD_ID
列变为NULL
,但WORKER_ID
值被保留。THREAD_ID
工作线程 ID。
SERVICE_STATE
ON
(线程存在并且处于活动或空闲状态)或OFF
(线程不再存在)。LAST_ERROR_NUMBER
,LAST_ERROR_MESSAGE
导致工作线程停止的最近错误的错误号和错误消息。错误号 0 和空字符串的消息表示“没有错误”。如果该
LAST_ERROR_MESSAGE
值不为空,则错误值也会出现在副本的错误日志中。发出
RESET MASTER
或RESET REPLICA
重置这些列中显示的值。LAST_ERROR_TIMESTAMP
格式的时间戳 ,显示最近发生工作程序错误的时间。
'
YYYY-MM-DD hh:mm:ss
[.fraction
]'LAST_APPLIED_TRANSACTION
此 worker 应用的最后一个事务的全局事务 ID (GTID)。
LAST_APPLIED_TRANSACTION_ORIGINAL_COMMIT_TIMESTAMP
格式的时间戳 ,显示此工作程序应用的最后一个事务何时在原始源上提交。
'
YYYY-MM-DD hh:mm:ss
[.fraction
]'LAST_APPLIED_TRANSACTION_IMMEDIATE_COMMIT_TIMESTAMP
格式的时间戳 ,显示此工作程序应用的最后一个事务何时在直接源上提交。
'
YYYY-MM-DD hh:mm:ss
[.fraction
]'LAST_APPLIED_TRANSACTION_START_APPLY_TIMESTAMP
格式的时间戳 ,显示此工作人员何时开始应用最后应用的事务。
'
YYYY-MM-DD hh:mm:ss
[.fraction
]'LAST_APPLIED_TRANSACTION_END_APPLY_TIMESTAMP
时间戳 格式显示此工作人员何时完成应用最后应用的事务。
'
YYYY-MM-DD hh:mm:ss
[.fraction
]'APPLYING_TRANSACTION
此工作程序当前正在应用的事务的全局事务 ID (GTID)。
APPLYING_TRANSACTION_ORIGINAL_COMMIT_TIMESTAMP
格式的时间戳 显示此工作人员当前正在应用的事务何时在原始源上提交。
'
YYYY-MM-DD hh:mm:ss
[.fraction
]'APPLYING_TRANSACTION_IMMEDIATE_COMMIT_TIMESTAMP
格式的时间戳 显示此工作人员当前应用的事务何时在直接源上提交。
'
YYYY-MM-DD hh:mm:ss
[.fraction
]'APPLYING_TRANSACTION_START_APPLY_TIMESTAMP
格式的时间戳 显示此工作人员何时开始首次尝试应用当前正在应用的事务。在 MySQL 8.0.13 之前,这个时间戳会在事务因暂时性错误而重试时刷新,因此它显示了最近一次尝试应用事务的时间戳。
'
YYYY-MM-DD hh:mm:ss
[.fraction
]'LAST_APPLIED_TRANSACTION_RETRIES_COUNT
工人在第一次尝试后重试最后应用事务的次数。如果交易是在第一次尝试时应用的,则此数字为零。
LAST_APPLIED_TRANSACTION_LAST_TRANSIENT_ERROR_NUMBER
导致重试事务的最后一个暂时性错误的错误号。
LAST_APPLIED_TRANSACTION_LAST_TRANSIENT_ERROR_MESSAGE
导致重试事务的最后一个暂时性错误的消息文本。
LAST_APPLIED_TRANSACTION_LAST_TRANSIENT_ERROR_TIMESTAMP
导致重试事务的最后一个瞬态错误 的时间戳格式。
'
YYYY-MM-DD hh:mm:ss
[.fraction
]'APPLYING_TRANSACTION_RETRIES_COUNT
直到此时重试当前正在应用的事务的次数。如果交易是在第一次尝试时应用的,则此数字为零。
APPLYING_TRANSACTION_LAST_TRANSIENT_ERROR_NUMBER
导致重试当前事务的最后一个暂时性错误的错误号。
APPLYING_TRANSACTION_LAST_TRANSIENT_ERROR_MESSAGE
导致重试当前事务的最后一个暂时性错误的消息文本。
APPLYING_TRANSACTION_LAST_TRANSIENT_ERROR_TIMESTAMP
导致重试当前事务的最后一个瞬态错误 的时间戳格式。
'
YYYY-MM-DD hh:mm:ss
[.fraction
]'
该
replication_applier_status_by_worker
表具有以下索引:
CHANNEL_NAME
( ,WORKER_ID
) 上的主键索引 (
THREAD_ID
)
下表是
replication_applier_status_by_worker
列与
SHOW
REPLICA STATUS
列的对应关系。
replication_applier_status_by_worker 柱子 |
SHOW REPLICA STATUS 柱子 |
---|---|
WORKER_ID |
没有任何 |
THREAD_ID |
没有任何 |
SERVICE_STATE |
没有任何 |
LAST_ERROR_NUMBER |
Last_SQL_Errno |
LAST_ERROR_MESSAGE |
Last_SQL_Error |
LAST_ERROR_TIMESTAMP |
Last_SQL_Error_Timestamp |