Mysql-Replication

在 MySQL-MMM 集群中重新配置複製後,如何更正主 master 上的複制?

  • November 27, 2010

我有一個帶有三台數據庫伺服器(兩台主機和一台從機)的 MySQL-MMM 集群。最近複製被直接插入從數據庫伺服器的人破壞了。在我發現這一點後,我重新建立了從db1系統到db2db3系統的複制。複製現在正在執行,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 美分 :)

引用自:https://serverfault.com/questions/206560