- 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 資料表
效能架構提供公開複寫資訊的資料表。這類似於從 SHOW REPLICA STATUS 陳述式取得的資訊,但以資料表形式呈現更容易存取且具有可用性優勢
SHOW REPLICA STATUS的輸出對於視覺檢查很有用,但對於程式化使用則不太有用。相比之下,使用效能架構資料表,可以使用一般的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之後,可以看到非 null 的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_PosMaster_Info_File欄位不保留。它參照用於複本來源中繼資料儲存庫的master.info檔案,該檔案已由使用當機安全表格取代。下列欄位是以
server_id而非server_uuid為基礎,因此不保留Master_Server_Id Replicate_Ignore_Server_IdsSkip_Counter欄位是以事件計數而非 GTID 為基礎,因此不保留。這些錯誤欄位是
Last_SQL_Errno和Last_SQL_Error的別名,因此不保留Last_Errno Last_Error在 Performance Schema 中,此錯誤資訊可在
replication_applier_status_by_worker表格(以及如果複本是多執行緒,則為replication_applier_status_by_coordinator)的LAST_ERROR_NUMBER和LAST_ERROR_MESSAGE資料行中取得。這些表格提供比從Last_Errno和Last_Error取得的更具體的每個執行緒錯誤資訊。提供關於命令列篩選選項的欄位不保留
Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_TableReplica_IO_State和Replica_SQL_Running_State欄位不保留。如果需要,可以從程序清單中取得這些值,方法是使用適當複寫表格的THREAD_ID資料行,並將其與INFORMATION_SCHEMAPROCESSLIST表格中的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 節「監控多重來源複寫」。