mysql复制架构迁移到pxc_2020-03-18 Mysql常见的HA中间层架构mmm,pxc,mha
1、MMM結構(雙主復制的結構)
Master-Master Replication Manager for MySQL 是一套腳本集合,用以監控、管理雙主復制架構,通過設置一個可寫的VIP和多個只讀的VIP,完成故障自動轉移、讀負載分攤等功能;雙主互為主從
MMM
存在問題:
通過vip實現漂移,不能跨網段,更不能跨機房
網絡分區,導致數據庫雙寫,數據沖突,需要業務修改數據或者重做
DBA部署和運維不方便,容易出問題(綁定vip,配置文件等)
使用binlog進行同步會有延時,如果寫節點寫操作過程中掛了,集群中其他節點無法訪問掛掉的 寫節點的binlog,就 無法同步這部分數據,導致數據丟失。
MMM的版本已不更新,談不上對mysql新特性的支持
不適合于對數據一致性要求很高的場景。(異步復制,數據雙寫沖突)
VIP地址漂移原理?
1、MMM本身的monitor和agent提供了動態變更網卡IP綁定的功能(網卡可以綁定多個IP的呢)
2、借用keepalived的虛擬路由冗余協議,實現這種高可用的VIP機制(ARP表原理), 所以又有MM+Keepalived組合
明白了VIP地址漂移的道理,那么不能跨網段就顯而易見了(多網段VIP沒辦法路由呢)。
2、PXC結構
Percona XtraDB Cluster是一個為MySQL用戶提供高可用性和伸縮性的解決方案,采用ZK作為中央控制模塊。
GTID:Global Transaction ID? ??全局事務唯一id
PXC
1、同步復制,事務要么在所有節點提交或不提交,一致性高。(一半以上結點OK則事務成功,高可用)
2、多主復制,可以在任意節點進行寫操作,當然也可以讀。
一致性最高,但是QPS相對受限。
2、mha結構
MHA(Master High Availability)是一套優秀的作為MySQL高可用性環境下故障切換和主從提升的高可用軟件。在MySQL故障切換過程中,MHA能做到在0~30秒之內自動完成數據庫的故障切換操作,并且在進行故障切換的過程中,MHA能在最大程度上保證數據的一致性,以達到真正意義上的高可用。
組成部分:
1.MHA manager,管理節點
2.MHA node,數據節點
部署架構:
MHA manager可以單獨部署在一臺機器上,管理多個master-slave集群,也可以單獨部署在一個slave節點上。MHA manager探測集群的node節點,當發現master故障時,會選取擁有最新數據的slave提升為新的master,然后將其他的slave導向新的master節點,并完成數據的同步,整個故障轉移過程對于客戶端應用程序來說是完全透明的。
MHA
原理介紹:
MHA的目的在于維持MySQL Replication中Master庫的高可用性,其最大特點是可以修復多個Slave之間的差異日志,最終使所有Slave保持數據一致,然后從中選擇一個充當新的Master,并將其它Slave指向它。
當master出現故障時,可以通過對比slave之間I/O thread 讀取主庫binlog的position號,選取最接近的slave做為備選主庫(備胎)。其它的從庫可以通過與備選主庫對比生成差異的中繼日志。在備選主庫上應用從原來master保存的binlog,同時將備選主庫提升為master。最后在其它slave上應用相應的差異中繼日志并開始從新的master開始復制。
過程:
(1)從宕機崩潰的master保存二進制日志事件(binlog events);
(2)識別含有最新更新的slave,作為備選主庫;
(3)對比備選主庫和其他slave,生成差異的中繼日志(relay log);
(4)應用從master保存的二進制日志事件(binlog events)到備選主庫;
(5)提升提升備選主庫為新的master主庫;
(6)在其他slave上應用差異中繼日志(relay log);
(6)使其他的slave連接新的master進行復制;
優點:
1. 故障切換時,可以自行判斷哪個從庫與主庫的數據最接近,就切換到上面,可以減少數據的丟失,保證數據的一致性
2. 支持 binlog server,可提高 binlog 傳送效率,進一步減少數據丟失風險。
3. 可以配置 mysql 5.7 的增強半同步,來保證數據的時時同步
在MHA自動故障切換過程中,MHA試圖從宕機的主服務器上保存二進制日志,最大程度的保證數據的不丟失,但這并不總是可行的。例如,如果主服務器硬件故障或無法通過ssh訪問,MHA沒法保存二進制日志,只進行故障轉移而丟失了最新的數據。使用MySQL 5.5的半同步復制,可以大大降低數據丟失的風險。MHA可以與半同步復制結合起來。如果只有一個slave已經收到了最新的二進制日志,MHA可以將最新的二進制日志應用于其他所有的slave服務器上,因此可以保證所有節點的數據一致性。
Manager若自身需要是高可用的,且保證對各個機房的可達性。
另外,可自定義開發哨兵Sentinel集群替代Manager。
總結
以上是生活随笔為你收集整理的mysql复制架构迁移到pxc_2020-03-18 Mysql常见的HA中间层架构mmm,pxc,mha的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 秘密的英文
- 下一篇: 爱因斯坦的名言名句262个