plication_applier_status_by_worker表
下表提供了复制从属服务器或组复制组成员上的应用程序线程处理的事务的详细信息。对于单线程从属服务器,将显示该从属服务器的单应用程序线程的数据。对于多线程从属服务器,每个应用程序线程分别显示数据。多线程从站上的应用程序线程有时称为工作程序。复制从属服务器或“组复制”组成员上的应用程序线程数由slave_parallel_workers系统变量设置,对于单线程从属服务器,该变量设置为零。多线程从站也有一个协调器线程来管理应用程序线程,该线程的状态显示在replication_applier_status_by_coordinator表。
与错误相关的列中显示的所有错误代码和消息均与第B.3.1节“服务器错误消息参考”中列出的错误值相对应。
禁用性能架构后,将不收集本地时间信息,因此显示已应用事务的开始和结束时间戳记的字段为零。此表中的开始时间戳是指工作程序开始应用第一个事件的时间,结束时间戳是指事务的最后一个事件应用的时间。
通过START SLAVE语句重新启动复制从属服务器时,将APPLYING_TRANSACTION重置开始的列。在MySQL 8.0.13之前,未在以单线程模式运行的从属服务器上重置这些列,而仅在多线程从属服务器上重置了这些列。
该replication_applier_status_by_worker表包含以下列:
CHANNEL_NAME该行正在显示的复制通道。始终有一个默认的复制通道,并且可以添加更多的复制通道。有关更多信息,请参见“复制通道”。
WORKER_ID工作程序标识符(与表中的
id列相同的值mysql.slave_worker_info)。在之后STOP SLAVE,该THREAD_ID列变为NULL,但WORKER_ID保留该值。THREAD_ID工作线程ID。
SERVICE_STATEON(线程存在并且处于活动状态或空闲状态)或OFF(线程不再存在)。LAST_ERROR_NUMBER,LAST_ERROR_MESSAGE导致工作线程停止的最新错误的错误号和错误消息。错误号0和空字符串的消息表示“无错误”。如果该
LAST_ERROR_MESSAGE值不为空,则错误值也会出现在从站的错误日志中。发出
RESET MASTER或RESET SLAVE重置这些列中显示的值。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格式的时间戳,显示此工作程序何时开始首次尝试应用当前正在应用的事务。在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 SLAVE STATUS列之间的对应关系。
replication_applier_status_by_worker列 | SHOW SLAVE 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 |
