#### 27.12.11.8 复制\_应用程序\_状态\_经过\_工人表

[](<>)[](<>)

此表提供副本或组复制组成员上的应用程序线程处理的事务的详细信息。对于单线程副本，显示副本的单个应用程序线程的数据。对于多线程副本，为每个应用程序线程单独显示数据。多线程副本上的应用程序线程有时称为工作线程。副本或组复制组成员上的应用程序线程数由[`replica_parallel_workers`](replication-options-replica.html#sysvar_replica_parallel_workers)要么[`slave_parallel_workers`](replication-options-replica.html#sysvar_slave_parallel_workers)系统变量，对于单线程副本设置为零。一个多线程副本也有一个协调线程来管理应用线程，这个线程的状态显示在[`replication_applier_status_by_coordinator`](performance-schema-replication-applier-status-by-coordinator-table.html)桌子。

与错误相关的列中显示的所有错误代码和消息对应于列出的错误值[服务器错误消息参考](https://dev.mysql.com/doc/mysql-errors/8.0/en/server-error-reference.html).

禁用性能模式时，不会收集本地时间信息，因此显示应用事务的开始和结束时间戳的字段为零。此表中的开始时间戳是指工作人员开始应用第一个事件的时间，结束时间戳是指应用事务的最后一个事件的时间。

当一个副本被一个[`开始复制`](start-replica.html)语句，列开始`APPLYING_TRANSACTION`被重置。在 MySQL 8.0.13 之前，这些列不会在以单线程模式运行的副本上重置，仅在多线程副本上重置。

这[`replication_applier_status_by_worker`](performance-schema-replication-applier-status-by-worker-table.html)表有这些列：

-   `CHANNEL_NAME`

    此行显示的复制通道。总是有一个默认的复制通道，并且可以添加更多的复制通道。看[第 17.2.2 节，“复制通道”](replication-channels.html)了解更多信息。

-   `WORKER_ID`

    工作人员标识符（与`id`列中的`mysql.slave_worker_info`桌子）。后[`停止复制`](stop-replica.html)， 这`THREAD_ID`列变成`空值`，但是`WORKER_ID`价值得以保留。

-   `THREAD_ID`

    工作线程 ID。

-   `服务状态`

    `在`（线程存在并且处于活动或空闲状态）或`离开`（线程不再存在）。

-   `LAST_ERROR_NUMBER`,`LAST_ERROR_MESSAGE`

    导致工作线程停止的最新错误的错误号和错误消息。错误号 0 和空字符串的消息表示“没有错误”。如果`LAST_ERROR_MESSAGE`value 不为空，错误值也会出现在副本的错误日志中。

    发行[`复位主机`](reset-master.html)要么[`重置副本`](reset-replica.html)重置这些列中显示的值。

-   `LAST_ERROR_TIMESTAMP`

    时间戳记`'*`YYYY-MM-DD hh:mm:ss`*[.*`分数`*]'`显示最近一次工作人员错误发生时间的格式。

-   `LAST_APPLIED_TRANSACTION`

    此 worker 应用的最后一个事务的全局事务 ID (GTID)。

-   `LAST_APPLIED_TRANSACTION_ORIGINAL_COMMIT_TIMESTAMP`

    时间戳记`'*`YYYY-MM-DD hh:mm:ss`*[.*`分数`*]'`显示此工作者应用的最后一个事务何时在原始源上提交的格式。

-   `LAST_APPLIED_TRANSACTION_IMMEDIATE_COMMIT_TIMESTAMP`

    时间戳记`'*`YYYY-MM-DD hh:mm:ss`*[.*`分数`*]'`显示此工作人员应用的最后一个事务何时在直接源上提交的格式。

-   `LAST_APPLIED_TRANSACTION_START_APPLY_TIMESTAMP`

    时间戳记`'*`YYYY-MM-DD hh:mm:ss`*[.*`分数`*]'`显示此工作人员何时开始应用上次应用事务的格式。

-   `LAST_APPLIED_TRANSACTION_END_APPLY_TIMESTAMP`

    时间戳记`'*`YYYY-MM-DD hh:mm:ss`*[.*`分数`*]'`显示此工作人员何时完成应用最后一个应用事务的格式。

-   `APPLYING_TRANSACTION`

    此工作人员当前正在应用的事务的全局事务 ID (GTID)。

-   `APPLYING_TRANSACTION_ORIGINAL_COMMIT_TIMESTAMP`

    时间戳记`'*`YYYY-MM-DD hh:mm:ss`*[.*`分数`*]'`显示此工作人员当前正在应用的事务何时在原始源上提交的格式。

-   `APPLYING_TRANSACTION_IMMEDIATE_COMMIT_TIMESTAMP`

    时间戳记`'*`YYYY-MM-DD hh:mm:ss`*[.*`分数`*]'`显示此工作人员当前正在应用的事务何时在直接源上提交的格式。

-   `APPLYING_TRANSACTION_START_APPLY_TIMESTAMP`

    时间戳记`'*`YYYY-MM-DD hh:mm:ss`*[.*`分数`*]'`显示此工作人员何时开始首次尝试应用当前正在应用的事务的格式。在 MySQL 8.0.13 之前，由于暂时性错误重试事务时会刷新此时间戳，因此它显示最近尝试应用事务的时间戳。

-   `LAST_APPLIED_TRANSACTION_RETRIES_COUNT`

    在第一次尝试后，worker 重试上次应用的事务的次数。如果在第一次尝试时应用了事务，则此数字为零。

-   `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`*[.*`分数`*]'`导致事务重试的最后一个瞬态错误的格式。

-   `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`*[.*`分数`*]'`导致当前事务重试的最后一个瞬态错误的格式。

    这[`replication_applier_status_by_worker`](performance-schema-replication-applier-status-by-worker-table.html)表有这些索引：

-   主键打开 (`CHANNEL_NAME`,`WORKER_ID`)

-   索引 (`THREAD_ID`)

    下表显示了之间的对应关系[`replication_applier_status_by_worker`](performance-schema-replication-applier-status-by-worker-table.html)列和[`显示副本状态`](show-replica-status.html)列。

| `replication_applier_status_by_worker`柱子 | `显示副本状态`柱子 |
| ---------------------------------------- | ---------- |
| `WORKER_ID` | 没有 |
| `THREAD_ID` | 没有 |
| `服务状态` | 没有 |
| `LAST_ERROR_NUMBER` | `Last_SQL_Errno` |
| `LAST_ERROR_MESSAGE` | `Last_SQL_Error` |
| `LAST_ERROR_TIMESTAMP` | `Last_SQL_Error_Timestamp` |
