- 29.12.11.1 replication_connection_configuration 表格
- 29.12.11.2 replication_connection_status 表格
- 29.12.11.3 replication_asynchronous_connection_failover 表格
- 29.12.11.4 replication_asynchronous_connection_failover_managed 表格
- 29.12.11.5 replication_applier_configuration 表格
- 29.12.11.6 replication_applier_status 表格
- 29.12.11.7 replication_applier_status_by_coordinator 表格
- 29.12.11.8 replication_applier_status_by_worker 表格
- 29.12.11.9 replication_applier_global_filters 表格
- 29.12.11.10 replication_applier_filters 表格
- 29.12.11.11 replication_group_members 表格
- 29.12.11.12 replication_group_member_stats 表格
- 29.12.11.13 replication_group_member_actions 表格
- 29.12.11.14 replication_group_configuration_version 表格
- 29.12.11.15 replication_group_communication_information 表格
- 29.12.11.16 binary_log_transaction_compression_stats 表格
Performance Schema 提供表格來公開複製資訊。這類似於從 SHOW REPLICA STATUS
陳述式取得的資訊,但是以表格形式呈現更易於存取,且具有可用性優勢
SHOW REPLICA STATUS
的輸出對於視覺檢查很有用,但對於程式化使用則不太方便。 相反地,使用 Performance Schema 表格,可以使用一般的SELECT
查詢(包括複雜的WHERE
條件、聯結等等)搜尋關於複本狀態的資訊。查詢結果可以儲存在表格中以進行進一步分析,或者指派給變數,從而在預存程序中使用。
複製表格提供更好的診斷資訊。對於多執行緒複本操作,
SHOW REPLICA STATUS
使用Last_SQL_Errno
和Last_SQL_Error
欄位報告所有協調器和工作執行緒錯誤,因此只有最新的那些錯誤可見,並且資訊可能會遺失。複製表格會按每個執行緒儲存錯誤,而不會遺失資訊。最後一次看到的交易記錄會在每個工作執行緒的複寫表格中顯示。這項資訊無法從
SHOW REPLICA STATUS
取得。熟悉 Performance Schema 介面的開發人員可以藉由在表格中新增列來擴充複寫表格,以提供額外資訊。
複寫表格說明
Performance Schema 提供以下與複寫相關的表格
包含關於複本連線到來源的資訊的表格
replication_connection_configuration
:連線到來源的組態參數replication_connection_status
:連線到來源的目前狀態replication_asynchronous_connection_failover
:非同步連線容錯移轉機制的來源清單
包含關於交易應用程式的一般資訊(非執行緒特定)的表格
replication_applier_configuration
:複本上交易應用程式的組態參數。replication_applier_status
:複本上交易應用程式的目前狀態。
包含關於負責套用從來源接收的交易之特定執行緒的資訊的表格
replication_applier_status_by_coordinator
:協調器執行緒的狀態(除非複本為多執行緒,否則為空)。replication_applier_status_by_worker
:應用程式執行緒或工作執行緒的狀態(如果複本為多執行緒)。
包含關於基於通道的複寫篩選器的資訊的表格
replication_applier_filters
:提供關於在特定複寫通道上設定的複寫篩選器的資訊。replication_applier_global_filters
:提供關於全域複寫篩選器的資訊,這些篩選器會套用至所有複寫通道。
包含關於群組複寫成員的資訊的表格
replication_group_members
:提供群組成員的網路和狀態資訊。replication_group_member_stats
:提供關於群組成員及其參與交易的統計資訊。
如需更多資訊,請參閱 第 20.4 節「監控群組複寫」。
當 Performance Schema 停用時,下列 Performance Schema 複寫表格仍會繼續填入資料
例外情況是複寫表格 replication_connection_status
、replication_applier_status_by_coordinator
和 replication_applier_status_by_worker
中的本機時間資訊(交易的開始和結束時間戳記)。當 Performance Schema 停用時,不會收集此資訊。
以下章節將更詳細地說明每個複寫表格,包括 SHOW REPLICA STATUS
產生的資料行與顯示相同資訊的複寫表格資料行之間的對應關係。
本複寫表格簡介的其餘部分說明 Performance Schema 如何填入這些表格,以及 SHOW REPLICA STATUS
中有哪些欄位未在表格中表示。
複寫表格生命週期
Performance Schema 會按如下方式填入複寫表格
在執行
CHANGE REPLICATION SOURCE TO
之前,表格是空的。在
CHANGE REPLICATION SOURCE TO
之後,可以在表格中看到組態參數。此時,沒有任何作用中的複寫執行緒,因此THREAD_ID
資料行會是NULL
,而SERVICE_STATE
資料行的值為OFF
。在
START REPLICA
之後,可以看到非空值的THREAD_ID
值。閒置或作用中的執行緒的SERVICE_STATE
值為ON
。連線到來源的執行緒在建立連線時的值為CONNECTING
,之後只要連線持續,其值就會是ON
。在
STOP REPLICA
之後,THREAD_ID
資料行會變成NULL
,而不存在的執行緒的SERVICE_STATE
資料行的值會是OFF
。在
STOP REPLICA
之後,或執行緒因錯誤而停止之後,表格會被保留。只有在複本以多執行緒模式運作時,
replication_applier_status_by_worker
表格才會有內容。也就是說,如果replica_parallel_workers
系統變數大於 0,則在執行START REPLICA
時會填入此表格,且資料列數會顯示工作執行緒的數目。
複本狀態資訊未在複寫表格中
Performance Schema 複寫表格中的資訊與可從 SHOW REPLICA STATUS
取得的資訊略有不同,因為這些表格是針對使用全域交易識別碼 (GTID) 而非檔案名稱和位置,而且它們代表伺服器 UUID 值而非伺服器 ID 值。由於這些差異,SHOW REPLICA STATUS
的數個資料行不會保留在 Performance Schema 複寫表格中,或以不同的方式表示
下列欄位參照檔案名稱和位置,且不會保留
Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Exec_Master_Log_Pos Until_Condition Until_Log_File Until_Log_Pos
Master_Info_File
欄位不會保留。它參照用於複本來源中繼資料儲存庫的master.info
檔案,該檔案已被取代,改為使用當機安全表格作為儲存庫。下列欄位基於
server_id
而非server_uuid
,且不會保留Master_Server_Id Replicate_Ignore_Server_Ids
Skip_Counter
欄位基於事件計數而非 GTID,且不會保留。這些錯誤欄位是
Last_SQL_Errno
和Last_SQL_Error
的別名,因此不會保留Last_Errno Last_Error
在 Performance Schema 中,此錯誤資訊可在
replication_applier_status_by_worker
表格的LAST_ERROR_NUMBER
和LAST_ERROR_MESSAGE
資料行中找到(如果複本為多執行緒,則也可在replication_applier_status_by_coordinator
中找到)。這些表格提供比Last_Errno
和Last_Error
更具體的每個執行緒錯誤資訊。提供關於命令列篩選選項的資訊的欄位不會保留
Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table
Replica_IO_State
和Replica_SQL_Running_State
欄位不會保留。如果需要,可以使用適當複寫表格的THREAD_ID
資料行,並將其與INFORMATION_SCHEMA
PROCESSLIST
表格中的ID
資料行聯結,以選取後者表格的STATE
資料行,即可從處理程序清單中取得這些值。Executed_Gtid_Set
欄位可以顯示包含大量文字的大型集合。相反地,Performance Schema 表格會顯示複本目前正在套用的交易之 GTID。或者,也可以從gtid_executed
系統變數的值中取得已執行的 GTID 集合。Seconds_Behind_Master
和Relay_Log_Space
欄位處於待定狀態,且不會保留。
複寫通道
複寫 Performance Schema 表格的第一個資料行是 CHANNEL_NAME
。這可讓每個複寫通道檢視表格。在非多來源複寫設定中,會有單一預設複寫通道。當您在複本上使用多個複寫通道時,您可以依複寫通道篩選表格,以監控特定的複寫通道。如需更多資訊,請參閱 第 19.2.2 節「複寫通道」和 第 19.1.5.8 節「監控多來源複寫」。