该表提供了副本或组复制组成员上应用线程处理的事务的详细信息。对于单线程副本,将显示副本的单个应用线程的数据。对于多线程副本,将分别显示每个应用线程的数据。多线程副本上的应用线程有时称为工作线程。副本或组复制组成员上的应用线程数量由 replica_parallel_workers 系统变量设置,该变量对于单线程副本设置为零。多线程副本还有一个协调器线程来管理应用线程,该线程的状态显示在 replication_applier_status_by_coordinator 表中。
与错误相关的列中显示的所有错误代码和消息对应于 服务器错误消息参考 中列出的错误值。
禁用性能模式后,将不会收集本地计时信息,因此显示应用事务的开始和结束时间戳的字段为零。此表中的开始时间戳指的是工作线程开始应用第一个事件的时间,结束时间戳指的是应用事务的最后一个事件的时间。
当副本通过 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导致工作线程停止的最新错误的错误号和错误消息。错误号 0 和空字符串消息表示“无错误”。如果
LAST_ERROR_MESSAGE值不为空,则错误值也会出现在副本的错误日志中。发出
RESET BINARY LOGS AND GTIDS或RESET REPLICA将重置这些列中显示的值。LAST_ERROR_TIMESTAMP一个
'格式的时间戳,显示最近一次工作线程错误发生的时间。YYYY-MM-DD hh:mm:ss[.fraction]'LAST_APPLIED_TRANSACTION此工作线程应用的最后一个事务的全局事务 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显示此工作线程开始首次尝试应用当前正在应用的事务的时间戳,格式为
'。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 |