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_STATE
ON
(线程存在并且处于活动状态或空闲状态)或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 |