该表提供了副本或组复制组成员上应用线程处理的事务的详细信息。对于单线程副本,将显示副本的单个应用线程的数据。对于多线程副本,将分别显示每个应用线程的数据。多线程副本上的应用线程有时称为工作线程。副本或组复制组成员上的应用线程数量由 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_STATE
ON
(线程存在且处于活动或空闲状态)或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 |