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