《Disney +》 迪士尼、Marvel、彼思、星球大戰…  《A Memoir Blue》講述一切盡在不言中的動人故事   【情報解禁】KOF XV新角色「KING」介紹短片公開!   區塊鏈遊戲「The Sandbox」中的土地「 LAND」已經在可以輕鬆買賣NFT的平台「 Coincheck NFT(β版)」上販售!   Pokémon Presents放送決定!會發表「Pokémon 鑽石/珍珠」和「Pokémon LEGENDS 阿爾宙斯」的最新情報   集結Sony黑科技之5G旗艦「Xperia 1 III」正式發表!   PlayStation® Partner Awards 2021日本及亞洲地區得獎者名單將自12月2日起接連兩天公布!   人偶劇「到BIO村玩吧♪」最終回大公開!《惡靈古堡8村莊》全球出貨量突破300萬套!   聖劍傳說高清復刻手遊版開售!12月21日前有早鳥優惠! 

MySQL Master-Master Replication Manager(1)

商業

什麼是 MySQL Master-Master Replication Manager(MMM)?

  • MMM (MySQL Master-Master Replication Manager) 是整合 Script 做 監控/管理 MySQL Master-Master replication cluster 的設定配置.
  • Master-Master 的意思不是同時有兩台 Master 應付寫入的動作, 而是要做備援, 若 Master 死掉, 可於最短的時間內(幾秒內), 將備援的 Master 替換上線, 而這台備援的 Master, 平常也可以當 Slave (Reader).
  • 當 Slave 的 Replication Failed 時, 會自動讓此 Slave 停止提供服務, 避免不同步的狀況發生.
  • MMM 可解決 Master 死掉時, 需要停機或停止所有寫入的問題.

MMM 的特色

上述的事情, 只要在程式判斷 Master 死掉, 之後就永遠寫 Slave 等, 就可以做到(Master 回復時, 再手動去做切換), 但是 MMM 能夠多處理哪些東西呢? MMM 的設定/原理大概是怎麼樣呢?
  • MMM 的基本設定是 Master-Master (就是兩台 MySQL Server 互相設對方為自己的 Master, 自己是對方的 Slave), 所以在任何一台正常回復, 會將資料自動透過 Replication 同步.
  • MMM 能夠在 Master(db1) 死掉時, 在最短的時間, 自動切換到另一台當 Master(db2). 當 Master(db1) 回復時, 會直接當現在 Master(db2) 的 Slave, 不過不會直接上線, 要等資料 sync 同步後, MMM 才會允許手動設定上線.
  • 另可參考: Typical Use Cases 使用情境(常見使用架構)

MMM 的運作原理

MMM 主要做法是 Master(db1), Master(db2) 設定固定 IP, 然後 Monitor 也設定一個固定 IP, 再來 Monitor 的設定再加上兩個 IP(Writer, Reader), 程式讀取/寫入 都是透過 Monitor 另外設的這兩個 IP, 當任何一台機器死掉(不管是 Reader/Writer), Monitor 會自動將 IP 設 到另一台機器上. 註: 透過 ARP(Address Resolution Protocol)iproute 將 IP 指到另一台. 設定依正常設定, 兩台 MySQL Server 各設自己原本的 IP, Monitor 會依照設定檔另外再綁上各自讀寫用的 IP, 跟之前主要的差異是, 兩台 MySQL Server 要多跑 mmm_agent daemon, Monitor 要跑 mmm_mon daemon. MMM 是透過下述 check MySQL servers 是否活著:
  1. IP connectivity (fping)
  2. MySQL connectivity (mysql connect and SELECT NOW())
  3. MySQL IO and SQL threads status (SHOW SLAVE STATUS)
  4. MySQL replication backlog - seconds behind master (SHOW SLAVE STATUS)

MMM 的官方資源

MMM 的更多介紹、說明

Source from Tsung's blog

隨機商業新聞

Disney Plus