91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

常見的MySQL高可用方案有哪些

發布時間:2022-05-31 13:55:10 來源:億速云 閱讀:194 作者:iii 欄目:MySQL數據庫

這篇文章主要介紹了常見的MySQL高可用方案有哪些的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇常見的MySQL高可用方案有哪些文章都會有所收獲,下面我們一起來看看吧。

常見的MySQL高可用方案有哪些

1. 概述

我們在考慮MySQL數據庫的高可用的架構時,主要要考慮如下幾方面:

  • 如果數據庫發生了宕機或者意外中斷等故障,能盡快恢復數據庫的可用性,盡可能的減少停機時間,保證業務不會因為數據庫的故障而中斷。

  • 用作備份、只讀副本等功能的非主節點的數據應該和主節點的數據實時或者最終保持一致。

  • 當業務發生數據庫切換時,切換前后的數據庫內容應當一致,不會因為數據缺失或者數據不一致而影響業務。

關于對高可用的分級在這里我們不做詳細的討論,這里只討論常用高可用方案的優缺點以及高可用方案的選型。

2. 高可用方案

2.1. 主從或主主半同步復制

使用雙節點數據庫,搭建單向或者雙向的半同步復制。在5.7以后的版本中,由于lossless replication、logical多線程復制等一些列新特性的引入,使得MySQL原生半同步復制更加可靠。

常見架構如下:
常見的MySQL高可用方案有哪些
通常會和proxy、keepalived等第三方軟件同時使用,即可以用來監控數據庫的健康,又可以執行一系列管理命令。如果主庫發生故障,切換到備庫后仍然可以繼續使用數據庫。

優點:

  • 架構比較簡單,使用原生半同步復制作為數據同步的依據;

  • 雙節點,沒有主機宕機后的選主問題,直接切換即可;

  • 雙節點,需求資源少,部署簡單;

缺點:

  • 完全依賴于半同步復制,如果半同步復制退化為異步復制,數據一致性無法得到保證;

  • 需要額外考慮haproxy、keepalived的高可用機制。

2.2. 半同步復制優化

半同步復制機制是可靠的。如果半同步復制一直是生效的,那么便可以認為數據是一致的。但是由于網絡波動等一些客觀原因,導致半同步復制發生超時而切換為異步復制,那么這時便不能保證數據的一致性。所以盡可能的保證半同步復制,便可提高數據的一致性。

該方案同樣使用雙節點架構,但是在原有半同復制的基礎上做了功能上的優化,使半同步復制的機制變得更加可靠。

可參考的優化方案如下:

2.2.1. 雙通道復制

常見的MySQL高可用方案有哪些
半同步復制由于發生超時后,復制斷開,當再次建立起復制時,同時建立兩條通道,其中一條半同步復制通道從當前位置開始復制,保證從機知道當前主機執行的進度。另外一條異步復制通道開始追補從機落后的數據。當異步復制通道追趕到半同步復制的起始位置時,恢復半同步復制。

2.2.2. binlog文件服務器

常見的MySQL高可用方案有哪些

搭建兩條半同步復制通道,其中連接文件服務器的半同步通道正常情況下不啟用,當主從的半同步復制發生網絡問題退化后,啟動與文件服務器的半同步復制通道。當主從半同步復制恢復后,關閉與文件服務器的半同步復制通道。

優點:

雙節點,需求資源少,部署簡單;
架構簡單,沒有選主的問題,直接切換即可;
相比于原生復制,優化后的半同步復制更能保證數據的一致性。

缺點:

需要修改內核源碼或者使用mysql通信協議。需要對源碼有一定的了解,并能做一定程度的二次開發。
依舊依賴于半同步復制,沒有從根本上解決數據一致性問題。

2.3. 高可用架構優化

將雙節點數據庫擴展到多節點數據庫,或者多節點數據庫集群。可以根據自己的需要選擇一主兩從、一主多從或者多主多從的集群。

由于半同步復制,存在接收到一個從機的成功應答即認為半同步復制成功的特性,所以多從半同步復制的可靠性要優于單從半同步復制的可靠性。并且多節點同時宕機的幾率也要小于單節點宕機的幾率,所以多節點架構在一定程度上可以認為高可用性是好于雙節點架構。

但是由于數據庫數量較多,所以需要數據庫管理軟件來保證數據庫的可維護性。可以選擇MMM、MHA或者各個版本的proxy等等。常見方案如下:

2.3.1. MHA+多節點集群

常見的MySQL高可用方案有哪些
MHA Manager會定時探測集群中的master節點,當master出現故障時,它可以自動將最新數據的slave提升為新的master,然后將所有其他的slave重新指向新的master,整個故障轉移過程對應用程序完全透明。

MHA Node運行在每臺MySQL服務器上,主要作用是切換時處理二進制日志,確保切換盡量少丟數據。

MHA也可以擴展到如下的多節點集群:
常見的MySQL高可用方案有哪些
優點:

可以進行故障的自動檢測和轉移;
可擴展性較好,可以根據需要擴展MySQL的節點數量和結構;
相比于雙節點的MySQL復制,三節點/多節點的MySQL發生不可用的概率更低

缺點:

至少需要三節點,相對于雙節點需要更多的資源;
邏輯較為復雜,發生故障后排查問題,定位問題更加困難;
數據一致性仍然靠原生半同步復制保證,仍然存在數據不一致的風險;
可能因為網絡分區發生腦裂現象;

2.3.2. zookeeper+proxy

Zookeeper使用分布式算法保證集群數據的一致性,使用zookeeper可以有效的保證proxy的高可用性,可以較好的避免網絡分區現象的產生。

常見的MySQL高可用方案有哪些

優點:

較好的保證了整個系統的高可用性,包括proxy、MySQL;
擴展性較好,可以擴展為大規模集群;

缺點:

數據一致性仍然依賴于原生的mysql半同步復制;
引入zk,整個系統的邏輯變得更加復雜;

2.4. 共享存儲

共享存儲實現了數據庫服務器和存儲設備的解耦,不同數據庫之間的數據同步不再依賴于MySQL的原生復制功能,而是通過磁盤數據同步的手段,來保證數據的一致性。

2.4.1. SAN共享儲存

SAN的概念是允許存儲設備和處理器(服務器)之間建立直接的高速網絡(與LAN相比)連接,通過這種連接實現數據的集中式存儲。常用架構如下:

常見的MySQL高可用方案有哪些
使用共享存儲時,MySQL服務器能夠正常掛載文件系統并操作,如果主庫發生宕機,備庫可以掛載相同的文件系統,保證主庫和備庫使用相同的數據。

優點:

兩節點即可,部署簡單,切換邏輯簡單;
很好的保證數據的強一致性;
不會因為MySQL的邏輯錯誤發生數據不一致的情況;

缺點:

需要考慮共享存儲的高可用;
價格昂貴;

2.4.2. DRBD磁盤復制

DRBD是一種基于軟件、基于網絡的塊復制存儲解決方案,主要用于對服務器之間的磁盤、分區、邏輯卷等進行數據鏡像,當用戶將數據寫入本地磁盤時,還會將數據發送到網絡中另一臺主機的磁盤上,這樣的本地主機(主節點)與遠程主機(備節點)的數據就可以保證實時同步。常用架構如下:
常見的MySQL高可用方案有哪些

當本地主機出現問題,遠程主機上還保留著一份相同的數據,可以繼續使用,保證了數據的安全。

DRBD是linux內核模塊實現的快級別的同步復制技術,可以與SAN達到相同的共享存儲效果。

優點:

兩節點即可,部署簡單,切換邏輯簡單;
相比于SAN儲存網絡,價格低廉;
保證數據的強一致性;

缺點:

對io性能影響較大;
從庫不提供讀操作;

2.5. 分布式協議

分布式協議可以很好解決數據一致性問題。比較常見的方案如下:

2.5.1. MySQL cluster

MySQL cluster是官方集群的部署方案,通過使用NDB存儲引擎實時備份冗余數據,實現數據庫的高可用性和數據一致性。
常見的MySQL高可用方案有哪些

優點:

全部使用官方組件,不依賴于第三方軟件;
可以實現數據的強一致性;

缺點:

國內使用的較少;
配置較復雜,需要使用NDB儲存引擎,與MySQL常規引擎存在一定差異;
至少三節點;

2.5.2. Galera

基于Galera的MySQL高可用集群, 是多主數據同步的MySQL集群解決方案,使用簡單,沒有單點故障,可用性高。常見架構如下:

常見的MySQL高可用方案有哪些

優點:

多主寫入,無延遲復制,能保證數據強一致性;
有成熟的社區,有互聯網公司在大規模的使用;
自動故障轉移,自動添加、剔除節點;

缺點:

需要為原生MySQL節點打wsrep補丁
只支持innodb儲存引擎
至少三節點;

2.5.3. POAXS

Paxos 算法解決的問題是一個分布式系統如何就某個值(決議)達成一致。這個算法被認為是同類算法中最有效的。Paxos與MySQL相結合可以實現在分布式的MySQL數據的強一致性。常見架構如下:

常見的MySQL高可用方案有哪些
優點:

多主寫入,無延遲復制,能保證數據強一致性;
有成熟理論基礎;
自動故障轉移,自動添加、剔除節點;

缺點:

只支持innodb儲存引擎
至少三節點。

關于“常見的MySQL高可用方案有哪些”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“常見的MySQL高可用方案有哪些”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

德惠市| 武山县| 嵊州市| 轮台县| 日土县| 阳东县| 临漳县| 海原县| 宜丰县| 拜城县| 星子县| 门源| 正阳县| 通辽市| 古丈县| 景谷| 松桃| 邵阳县| 碌曲县| 综艺| 涿州市| 延寿县| 襄城县| 滦平县| 株洲县| 西林县| 沾益县| 普宁市| 海口市| 许昌县| 锡林浩特市| 虹口区| 鱼台县| 新丰县| 昌平区| 昌吉市| 苏州市| 道孚县| 辛集市| 宜昌市| 奎屯市|