模式
1.master---slave模式
master負責R/W,slave 從master複製binlog備份數據,主要解決讀取瓶頸
2.master---master模式
主要針對master部分維護時停機問題,這樣兩個master互爲master--slave
3.master--slave--slave模式
4.dualMaster -- 級聯
MYSQL數據庫常用架構解決方案
MMM架構
MHA架構
雙主從備份
對比
類型 |
MMM |
MHA |
作用 |
檢測master數據庫健康狀態 |
並在master出現問題時完成自動切換 |
出現故障時 |
1.備master切換爲新的master 2.slave切換指向到新master |
1.找出最新的slave 2.將宕機的master的bin-log保存 3.將slave同步最新master的數據 4.將所有庫同步宕機master的bin-log 5.將最新slave作爲master 6.配置其他slave連接到新master |
優點 |
1.讀寫VIP的配置,讀寫請求都可以做到高可用 2.工具包相對完善,不需要額外開發腳本 3.完成故障轉移後,可以繼續對mysql集羣監控 |
1.日誌點的主從同步,也支持GTID的主從同步 2.無需單獨的master備份 3.嘗試從舊master中儘可能多保存和獲取未同步的日誌 |
缺點 |
1.社區不活躍 2.需要的機器和IP地址資源較多 3.原生不支持GTID的複製方式 |
1.自行開發VIP轉移腳本 |
還有阿里的TMHA,一主一從。而MHA是一主兩從
數據庫利用第三方插件擴展
方案1:memcached只作爲數據緩存,不需要修改mysq
所有數據都會寫入MySQLMaster中,包括數據第一次寫入時候的INSERT,同時也包括對已有數據的UPDATE和DELETE。不過,如果是對已經存在的數據,則需要在UPDATE或者DELETEMySQL中數據的同時,刪除Memcached中的數據,以此保證整體數據的一致性。而所有的讀請求首先會發往Memcached中,如果讀取到數據則直接返回,如果沒有讀取到數據,則再到MySQLSlaves中讀取數據,並將讀取得到的數據寫入到Memcached中進行Cache。
特點:比較適用於需要緩存對象類型少,而需要緩存的數據量又比較大的環境
方案2 :mysql通過自己編寫的UDF控制memcached。
本文圖片來自網絡