Mysql-Replication
在 MySQL-MMM 集群中重新配置複製後,如何更正主 master 上的複制?
我有一個帶有三台數據庫伺服器(兩台主機和一台從機)的 MySQL-MMM 集群。最近複製被直接插入從數據庫伺服器的人破壞了。在我發現這一點後,我重新建立了從
db1
系統到db2
和db3
系統的複制。複製現在正在執行,mmm_control show
並將伺服器顯示為全部線上:[root@host ~]# mmm_control show db1(10.1.0.21) master/ONLINE. Roles: reader(10.1.0.31), writer(10.1.0.30) db2(10.1.0.22) master/ONLINE. Roles: reader(10.1.0.32) db3(10.1.0.23) slave/ONLINE. Roles: reader(10.1.0.33)
但是,當我檢查所有狀態檢查時,我發現
db1
複製已損壞:[root@host ~]# mmm_control checks all db2 ping [last change: 2010/11/24 03:57:48] OK db2 mysql [last change: 2010/11/27 03:21:42] OK db2 rep_threads [last change: 2010/11/27 03:23:19] OK db2 rep_backlog [last change: 2010/11/24 03:57:48] OK: Backlog is null db3 ping [last change: 2010/11/24 03:58:15] OK db3 mysql [last change: 2010/11/27 03:19:21] OK db3 rep_threads [last change: 2010/11/27 03:23:06] OK db3 rep_backlog [last change: 2010/11/24 03:58:23] OK: Backlog is null db1 ping [last change: 2010/11/24 03:57:48] OK db1 mysql [last change: 2010/11/27 03:22:27] OK db1 rep_threads [last change: 2010/11/27 02:14:46] ERROR: Replication is broken db1 rep_backlog [last change: 2010/11/24 03:58:00] OK: Backlog is null
db1
由於數據庫似乎是同步的,我需要做什麼來修復複製?
登錄到 db1 的 mysql 並執行“顯示從屬狀態”,它會告訴你出了什麼問題。如果您在“I/O 執行緒正在執行”和“SQL 執行緒正在執行”中看到“是”,則複製沒問題。MMM 可能會感到困惑。
旁注:我認為您的 MMM 配置不是最佳的。根據我在您的 mmm_control show 輸出中看到的內容,如果您的主主機出現故障,除非經過適當的負載平衡,否則您的從屬伺服器將使其流量翻倍(它將從剛剛發生故障的主機獲得讀取器角色,因為沒有主機可以擁有超過一個角色比任何其他主機都多)。一個更明智的選擇是兩個 master 和兩個 slave,其中 master 只有 writer 角色,slave 都有 1 個 reader 角色。只是我的 2 美分 :)