溫馨提示×

溫馨提示×

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

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

如何進行數(shù)據(jù)庫高可用架構(gòu)的思路分析

發(fā)布時間:2021-12-02 09:23:58 來源:億速云 閱讀:157 作者:柒染 欄目:數(shù)據(jù)庫

這篇文章將為大家詳細講解有關(guān)如何進行數(shù)據(jù)庫高可用架構(gòu)的思路分析,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。

數(shù)據(jù)庫高可用架構(gòu)對于我們這些應(yīng)用端開發(fā)的人來說是一個比較陌生的領(lǐng)域,是在具體的數(shù)據(jù)庫產(chǎn)品之上搭建的環(huán)境,需要像DBA這樣對數(shù)據(jù)庫產(chǎn)品有足夠的了解才能有所涉及,雖然不能深入其中,但可以通過一些經(jīng)典的高可用架構(gòu)學習其中的思想。就我所了解到的有以下幾種:

  • MySQL Replication

  • MySQL Cluster

  • Oracle RAC

  • IBM HACMP

  • Oracle ASM

MySQL Replication

MySQL Replication就是通過異步復(fù)制多個copy以達到提高可用性的目的,常規(guī)的復(fù)制架構(gòu)有以下幾種:

  • Master-Slaves

  • Master-Master

  • Master-Master-Salves

1)Master-Slaves

Master- Slaves是最常用的提高可用的方法,特別是在互聯(lián)網(wǎng)應(yīng)用中,讀遠遠大于寫,因此提高讀的可用性是首當其中的,Master-Slaves就是讓寫的操作集中在一臺數(shù)據(jù)庫Master上,然后這個Master會把更新的操作復(fù)制到其他數(shù)據(jù)庫Slaves上,讀的操作都發(fā)生在Slaves上,架構(gòu)圖如下所示:

如何進行數(shù)據(jù)庫高可用架構(gòu)的思路分析

如上圖在SlaveC不可用時,讀和寫都不會中斷,等SlaveC恢復(fù)后會自動同步丟失的數(shù)據(jù),又能重新投入運轉(zhuǎn),可維護性非常好。但如果Master有問題就麻煩了,因此它只解決了讀的高可用性,但不保證寫的高可用性。

2)Master-Master

為解決上面談的寫的高可用性,MySQL提供了Master-Master的復(fù)制架構(gòu),如下所示:

如何進行數(shù)據(jù)庫高可用架構(gòu)的思路分析

一般說來都向MasterA寫,MasterA同步數(shù)據(jù)到MasterB,當MasterA有問題時,會自動切換到MasterB,等MasterA恢復(fù)時,MasterB同步數(shù)據(jù)到MasterA

3)Master-Master-Salves

Master-Master-Salves是結(jié)合上面兩種方案,是一種同時提供讀和寫高可用的復(fù)制架構(gòu),如下圖所示:

如何進行數(shù)據(jù)庫高可用架構(gòu)的思路分析

MySQL Cluster

MySQL Cluster主要由三個部分組成:

  • SQL服務(wù)器節(jié)點

  • NDB數(shù)據(jù)存儲節(jié)點

  • 監(jiān)控和管理節(jié)點

三個部門的組成結(jié)構(gòu)如下圖所示:

如何進行數(shù)據(jù)庫高可用架構(gòu)的思路分析

這樣的分層也是由MySQL本身把SQL處理和存儲分開的架構(gòu)相關(guān)系的。

這樣一來MySQL Cluster就可以分別在SQL處理和存儲兩個層次上做高可用的復(fù)制策略。在SQL處理層次上,比較容易做集群,因為這些SQL處理是無狀態(tài)性的,完全可以通過增加機器的方式增強可用性。在存儲層次上,通過對每個節(jié)點進行備份的形式增加存儲的可用性,這類似與MySQL Replication,結(jié)構(gòu)圖如下所示:

如何進行數(shù)據(jù)庫高可用架構(gòu)的思路分析

Oracle RAC

Oracle RAC和MySQL Cluster有些相似,但主要集中在SQL處理層的高可用性,而在存儲上體現(xiàn)不多,結(jié)構(gòu)圖如下所示:

如何進行數(shù)據(jù)庫高可用架構(gòu)的思路分析

它的主要優(yōu)點就是對應(yīng)用透明,并且通過Heartbeat檢測可用性非常高,主要缺點就是存儲是共享的,存儲上可擴展能力不足。

IBM HACMP

IBM HACMP與Oracle RAC也是類似,主要用于雙機互備,運行流程如下所示:

1)作為雙機系統(tǒng)的兩臺服務(wù)器(主機A和B)同時運行在Hacmp環(huán)境中;

2)服務(wù)器除正常運行自機的應(yīng)用外,同時又作為對方的備份主機;

3)兩臺主機系統(tǒng)(A和B)在整個運行過程中,通過 “心跳線”相互監(jiān)測對方的運行情況(包括系統(tǒng)的軟硬件運行、網(wǎng)絡(luò)通訊和應(yīng)用運行情況等);

4)一旦發(fā)現(xiàn)對方主機的運行不正常(出故障)時,故障機上的應(yīng)用就會立即停止運行,本機(故障機的備份機)就會立即在自己的機器上啟動故障機上的應(yīng)用,把故障機的應(yīng)用及其資源(包括用到的IP地址和磁盤空間等)接管過來,使故障機上的應(yīng)用在本機繼續(xù)運行;

5)應(yīng)用和資源的接管過程由Ha軟件自動完成,無需人工干預(yù);

6)當兩臺主機正常工作時,也可以根據(jù)需要將其中一臺機上的應(yīng)用人為切換到另一臺機(備份機)上運行。

Oracle ASM

Oracle ASM主要提供存儲的可擴展性,通過自動化的存儲管理加上后端可擴展性的存儲陣列達到高可用性,結(jié)構(gòu)圖如下所示:

如何進行數(shù)據(jù)庫高可用架構(gòu)的思路分析

因此,可以嘗試把Oracle RAC和ASM組合起來使用,同時提供SQL處理和存儲的高可用性,這也是MySQL Cluster想達到的效果。

關(guān)于如何進行數(shù)據(jù)庫高可用架構(gòu)的思路分析就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節(jié)

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

AI