MySQL組複製MGR(三)-- 組複製監控
如果MySQL啟用了效能監控資料庫performance_schema,則在搭建組複製的時候會建立2個表:
- performance_schema.replication_group_members
- performance_schema.replication_group_member_stats
這些performance_schema裡面的表也顯示組複製的資訊:
- performance_schema.replication_connection_status
- performance_schema.replication_applier_status
由複製外掛建立的複製通道被命名為:
- group_replication_recovery:此通道用於與分散式恢復階段相關的複製更改
- group_replication_applier:此通道用於來自組的傳入更改。
下面主要介紹前2個表。
(1)performance_schema.replication_group_members
該表用於監控MySQL組成員的狀態資訊
mysql> select * from performance_schema.replication_group_members; +---------------------------+--------------------------------------+-------------+-------------+--------------+ |CHANNEL_NAME | MEMBER_ID | MEMBER_HOST | MEMBER_PORT | MEMBER_STATE | +---------------------------+--------------------------------------+-------------+-------------+--------------+ | group_replication_applier | 533fe6ba-bcdf-11ea-9516-000c295111ae | mgr-node1 |3306 | ONLINE | | group_replication_applier | 5ca45641-bcdd-11ea-918e-000c29fa726d | mgr-node2 | 3306 | ONLINE | | group_replication_applier | 62ad32e3-bcdd-11ea-9bbb-000c2978d7f6 | mgr-node3 | 3306 | ONLINE | +---------------------------+--------------------------------------+-------------+-------------+--------------+
這裡需要關注組成員的數量已經成員狀態(MEMBER_STATE):
狀態 | 描述 | 組同步 |
ONLINE | 該成員可以作為一個具有所有功能的組成員,客戶端可以開始連線執行事務 | 是 |
RECOVERING | 該成員正在恢復成為一個活躍的組成員 | 否 |
OFFLINE | 外掛已載入但成員不屬於任何組 | 否 |
ERROR | 恢復階段或者應用更改時出現錯誤,server就會進入此狀態 | 否 |
UNREACHABLE | 每當本地故障檢測器懷疑給定伺服器無法訪問時(例如由於非自願斷開連線),它將顯示該伺服器的狀態為UNREACHABLE 。 |
否 |
(2)performance_schema.replication_group_member_stats
複製組中的每個成員都認證並應用該組接收的事務,該表記錄了認證過程相關的資訊,如檢查了多少事務、發現了多少衝突。
mysql> select * from performance_schema.replication_group_member_stats \G *************************** 1. row *************************** CHANNEL_NAME: group_replication_applier VIEW_ID: 15956427854145598:3 MEMBER_ID: 533fe6ba-bcdf-11ea-9516-000c295111ae COUNT_TRANSACTIONS_IN_QUEUE: 0 COUNT_TRANSACTIONS_CHECKED: 20000 COUNT_CONFLICTS_DETECTED: 0 COUNT_TRANSACTIONS_ROWS_VALIDATING: 2 TRANSACTIONS_COMMITTED_ALL_MEMBERS: dc04ba77-bcf2-11ea-85bf-000c295111ae:1-276051:1000003-1005707 LAST_CONFLICT_FREE_TRANSACTION: dc04ba77-bcf2-11ea-85bf-000c295111ae:276051
各個欄位的含義:
CHANNEL_NAME: 組複製通道的名稱
VIEW_ID:
MEMBER_ID: 成員的id
COUNT_TRANSACTIONS_IN_QUEUE: 佇列中等待衝突檢測的事務數,衝突檢測後,排隊等待應用
COUNT_TRANSACTIONS_CHECKED: 已進行衝突檢查的事務數量
COUNT_CONFLICTS_DETECTED: 未通過沖突檢查的事務數量
COUNT_TRANSACTIONS_ROWS_VALIDATING: 表示衝突檢測資料庫的當前大小
TRANSACTIONS_COMMITTED_ALL_MEMBERS: 表示在當前檢視的成員上成功提交的事務
LAST_CONFLICT_FREE_TRANSACTION: 顯示最後一個檢查無衝突的事務識別符號
這些資訊對於組效能監控非常重要,例如,假設組成員之一總是報出大量事務在佇列中,這意味著該成員資料存在延遲,不能保持最新。基於這些資訊,你可以決定去移除該成員,或者延遲其它節點的事務處理,從而減小排隊的影響。
【完】