此資料表提供複本或群組複製群組成員上套用執行緒所處理的交易詳細資訊。對於單執行緒複本,會顯示該複本單一套用執行緒的資料。對於多執行緒複本,會個別顯示每個套用執行緒的資料。多執行緒複本上的套用執行緒有時稱為工作者。複本或群組複製群組成員上的套用執行緒數量由 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
導致工作者執行緒停止的最新錯誤的錯誤編號和錯誤訊息。錯誤編號為 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
]'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 |