Mysql
測試 MySQL 數據庫複製/同步
我正在設置一個 MySQL 主數據庫,它複製到幾個從數據庫。
我的問題是監控和/或測試從屬數據庫是否最新的最佳實踐是什麼,並且當出現導致複製停止的錯誤時會提醒管理員。
我搜尋了監控工具,但找不到任何合適的工具。
此外,測試從屬設備之間同步的“最佳實踐”方法是什麼。有沒有類似數據庫複製的單元測試的東西?
如果我對此事的無知冒犯了任何人,我深表歉意。
複製的最大問題是檢查
- 節點都已啟動,
- 所有節點都在通信(不是腦裂)
- 和處理複製日誌
- 和複製滯後
可以在相關節點上使用 SHOW MASTER STATUS / SHOW SLAVE STATUS 擷取 1、3 和 4,儘管複製延遲只有 1 秒的準確度並且僅跨每一跳。Percona 工具包有用於獲得更準確的複制滯後的腳本。
使用多主複製(例如tungsten,Percona)可以節省很多痛苦,但需要額外的努力/軟體來設置。
如果ndoes之間的網路出現故障,那麼所有程序都可以正常執行-但將無法傳輸數據-您需要對每個節點進行監控以檢查它是否可以聯繫上游節點。
一個 MySQL Master 數據庫,它複製到幾個 Slave 數據庫
最佳做法是將其中一個從屬伺服器也指定為主伺服器——雙向複製。這樣,您可以在發生中斷時輕鬆切換,或執行維護任務,例如重建索引、備份、模式更改。
根據從節點的數量,您可能還需要指定一個扇出節點來傳播更改。
在管理升級、調度腳本以收集數據等方面,有很多可用的工具可以做到這一點——我使用 nagios,很多其他人也是如此。