- 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_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
表格(以及如果複本是多執行緒,則為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_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 節「監控多重來源複寫」。