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

溫馨提示×

溫馨提示×

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

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

淺析開源數據庫MySQL架構

發布時間:2020-09-26 11:45:09 來源:網絡 閱讀:2475 作者:個推 欄目:MySQL數據庫

數據庫是所有應用系統的核心,故保證數據庫穩定、高效、安全地運行是所有企業日常工作的重中之重。數據庫系統一旦出現問題無法提供服務,有可能導致整個系統都無法繼續工作。所以,一個成功的數據庫架構在高可用設計方面也是需要充分考慮的。下面就為大家介紹一下如何構建一個高可用的MySQL數據庫系統。

做過DBA或者是運維的同學都應該知道,任何設備或服務,存在單點就會帶來巨大風險,因為這臺物理機一旦宕機或服務模塊crash,若在短時間內無法找到替換的設備,勢必會影響整個應用系統。因而如何保證不出現單點就是我們的重要工作,使用MySQL高可用方案可以很好地解決這個問題,一般有以下幾種:

一、利用MySQL自身的Replication來實現高可用

MySQL自帶的Replication就是我們常說的主從復制(AB復制),通過對主服務器做一個從機,在主服務器宕機的情況下快速地將業務切換到從機上,保證應用的正常使用。利用AB復制做高可用方案也分為幾種不同的架構:

1、常規的MASTER---SLAVE解決方案

普通的MASTER---SLAVE是目前國內外大多數中小型公司最常用的一種架構方案,主要的好處就是簡單、使用設備較少(成本較低)、維護方便。這種架構能解決單點的問題,而且還能在很大程度上解決系統的性能問題。在一個MASTER后面可以帶上一個或者多個的SLAVE(主從級聯復制),不過這種架構要求一個MASTER必須能夠滿足系統所有的寫請求,不然就需要做水平拆分分擔讀的壓力。

淺析開源數據庫MySQL架構 

圖一

淺析開源數據庫MySQL架構 

圖二

圖一到圖二展示的是:解決單點問題和利用讀寫分離達到提高性能的過程。

2DUAL MASTER與級聯復制結合

雙主多從是在上面的方案中衍生而來的一種更加合理的方案。這個方案的好處是:當兩個主服務器中任何一個掛掉時,整個架構都不用做大的調整。

淺析開源數據庫MySQL架構 

圖三

淺析開源數據庫MySQL架構 

圖四

淺析開源數據庫MySQL架構 

圖五

這個過程如上圖所示。但圖五這種情況比較特殊,即MASTER-B宕機的話怎么辦呢?首先可以確定的是我們的所有Write請求都不會受到任何影響,而且所有的Read請求也都能夠正常訪問;但所有Slave的復制都會中斷,Slave上面的數據會開始出現滯后的現象。這時候我們需要做的就是將所有的Slave進行CHANGE MASTER TO操作,改為從Master A進行復制。由于所有Slave的復制都不可能超前最初的數據源,所以可以根據Slave上面的Relay Log中的時間戳信息與Master A中的時間戳信息進行對照,來找到準確的復制起始點,從而避免造成數據的丟失。

二、利用MYSQL CLUSTER實現整體的高可用

就目前而言,利用MYSQL CLUSTER實現整體的高可用(即NDB CLUSTER)的方案在國內的公司并沒有很普及。NDB CLUSTER節點實際上就是一個多節點的MySQL服務器,但是并不包含數據,所以任何機器只要安裝了就可以使用。當集群中某一個sql節點crash之后,因為節點不存具體的數據,所以數據不會丟失。如圖六:

淺析開源數據庫MySQL架構 

圖六

三、通過MySQL的衍生產品實現高可用

在目前MySQL實現高可用的衍生產品中,知名度的和普及度比較高的是GALERA CLUSTERPERCONA XTRDB CLUSTERPXC)。相關的內容本文暫不展開講述,感興趣的同學可以查閱相關資料進一步了解。這兩種集群的實現方式都是類似的,如圖七、圖八:

淺析開源數據庫MySQL架構 

圖七

淺析開源數據庫MySQL架構 

圖八

四、各種高可用方案的利弊比較

在前面各種高可用設計方案的介紹中讀者們可能已經發現,不管是哪一種方案,都存在自己獨特的優勢,但也都或多或少存在一些限制。這一節將針對上面的幾種主要方案做一個利弊分析,以供大家選擇過程中參考。

1MySQL Replication

優勢:部署簡單,實施方便,維護也不復雜,是MySQL天生就支持的功能。且主備機之間切換方便,通過第三方軟件或者自行編寫的腳本即可自動完成主備切換。

劣勢:如果Master主機硬件故障且無法恢復,則可能造成部分未傳送到Slave端的數據丟失。

2MySQL Cluster NDB

優勢:可用性非常高,性能非常好。每一份數據至少在不同主機上面存在一份拷貝,且冗余數據拷貝實時同步。

劣勢:維護較為復雜,產品較新,存在部分bug,目前還不一定適用于比較核心的線上系統。

3GALERA CLUSTERPERCONA XTRDB CLUSTERPXC

優勢:可靠性非常高,所有節點可以同時讀寫每一份數據,至少在不同主機上面存在一份拷貝,且冗余數據拷貝實時同步。

劣勢:隨著集群的規模擴大,性能會越來越差。

4、 不得不提的DRBD磁盤網絡鏡像方案

從架構上來說,它有點類似Replication,只是它是通過第三方的軟件實現數據同步的過程,可靠性比Replication更高,但是也犧牲了性能。

優勢:軟件功能強大,數據在底層塊設備級別跨物理主機鏡像,且可根據性能和可靠性要求配置不同級別的同步。IO操作保持順序,可滿足數據庫對數據一致性的苛刻要求。

劣勢:非分布式文件系統環境無法支持鏡像數據同時可見,即性能和可靠性兩者相互矛盾,無法適用于對二者要求都比較苛刻的環境。維護成本高于MySQL Replication

說完了各種常用架構的優缺點后,剩下的就是如何選擇合適的架構在現實的生產環境中使用的問題。在這方面每個人都有自己的想法和經驗,具體哪個方案是最優的就見仁見智了。在日常的工作中架構的完善并不是一蹴而就,而是一個不斷演變優化完善的過程。

個推在數據庫方面也經歷了從單點到主從再到主從+高可用的過程,同時也經歷了從單一的MySQL+redisMySQL+redis+es,最后到現在MySQL+redis+es+codis等等的演變。每一次的演變都是為了解決生產環境下的實際問題和痛點。單從MySQL來說任何一個架構都無法解決所有的問題(痛點),都需要根據實際的情況選擇一個合適架構。MySQL集群實現的方案非常靈活多變,對于MySQL工作者來說如何選擇一個合適的架構也是一種挑戰,同時也是我們不斷鉆研和學習MySQL的動力。

向AI問一下細節

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

AI

东至县| 泗阳县| 青川县| 东山县| 苍梧县| 静海县| 定州市| 小金县| 郓城县| 九江县| 岱山县| 彩票| 洱源县| 榆林市| 渝北区| 永修县| 且末县| 五原县| 府谷县| 清涧县| 乌兰浩特市| 宜丰县| 田东县| 交口县| 宜黄县| 惠州市| 扶风县| 体育| 本溪| 邯郸市| 壶关县| 额济纳旗| 遂昌县| 托克托县| 报价| 景泰县| 兴和县| 平昌县| 平和县| 佛学| 弋阳县|