该表提供了复制应用程序线程在副本或组复制组成员上处理的事务详细信息。对于单线程副本,显示单个应用程序线程的数据。对于多线程副本,显示每个应用程序线程的数据。这些应用程序线程有时称为工作者。副本或组复制组成员上的应用程序线程数量由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
]' -
最后应用事务开始应用时间戳
以
'
格式显示该工作者开始应用最后应用事务的时间戳。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 Column |
SHOW REPLICA STATUS Column |
---|---|
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 |