1. 程式人生 > 實用技巧 >MySQL組複製MGR(三)-- 組複製監控

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: 顯示最後一個檢查無衝突的事務識別符號

這些資訊對於組效能監控非常重要,例如,假設組成員之一總是報出大量事務在佇列中,這意味著該成員資料存在延遲,不能保持最新。基於這些資訊,你可以決定去移除該成員,或者延遲其它節點的事務處理,從而減小排隊的影響。



【完】