此表提供了有关副本或组复制组成员上的应用线程处理的事务的详细信息。对于单线程副本,显示的是副本的单个应用线程的数据。对于多线程副本,则分别显示每个应用线程的数据。多线程副本上的应用线程有时被称为工作线程。副本或组复制组成员上的应用线程数量由 replica_parallel_workers 系统变量设置,对于单线程副本,该变量设置为零。多线程副本还具有一个协调器线程来管理应用线程,此线程的状态显示在 replication_applier_status_by_coordinator 表中。
与错误相关的列中显示的所有错误代码和消息对应于 服务器错误消息参考 中列出的错误值。
当 Performance Schema 被禁用时,不会收集本地计时信息,因此显示应用事务的开始和结束时间戳的字段为零。此表中的开始时间戳是指工作线程开始应用第一个事件的时间,结束时间戳是指应用事务的最后一个事件的时间。
当副本通过 START REPLICA 语句重新启动时,以 APPLYING_TRANSACTION 开头的列将被重置。
replication_applier_status_by_worker 表包含以下列
CHANNEL_NAME此行显示的复制通道。始终存在一个默认复制通道,并且可以添加更多复制通道。有关更多信息,请参阅 第 19.2.2 节,“复制通道”。
WORKER_ID工作线程标识符(与
mysql.slave_worker_info表中的id列相同的值)。在STOP REPLICA之后,THREAD_ID列变为NULL,但WORKER_ID值将被保留。THREAD_ID工作线程 ID。
SERVICE_STATEON(线程存在且处于活动状态或空闲状态)或OFF(线程不再存在)。LAST_ERROR_NUMBER,LAST_ERROR_MESSAGE导致工作线程停止的最 recent 错误的错误编号和错误消息。错误编号 0 和空字符串消息表示 “无错误”。如果
LAST_ERROR_MESSAGE值不为空,则错误值也会显示在副本的错误日志中。发出
RESET BINARY LOGS AND GTIDS或RESET REPLICA将重置这些列中显示的值。LAST_ERROR_TIMESTAMP以
'格式显示最 recent 工作线程错误发生时间的 timestamp。YYYY-MM-DD hh:mm:ss[.fraction]'LAST_APPLIED_TRANSACTION此工作线程应用的最后一个事务的全局事务 ID (GTID)。
LAST_APPLIED_TRANSACTION_ORIGINAL_COMMIT_TIMESTAMP以
'格式显示此工作线程应用的最后一个事务在原始源上提交时间的 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一个以
'格式表示的时间戳,它显示了此工作进程第一次尝试应用当前正在应用的交易的时间。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 |