自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

數(shù)據(jù)庫集群方案及Oracle RAC架構(gòu)分析

數(shù)據(jù)庫 Oracle
應對業(yè)務量的不斷增加場景通常有兩個大方向,一種是縱向擴展,也就是增加單臺服務器的CPU計算能力、內(nèi)存容量和磁盤承載能力等;另外一種是橫向擴展,也就是通過增加服務器的數(shù)量來增加處理能力。

應對業(yè)務量的不斷增加場景通常有兩個大方向,一種是縱向擴展,也就是增加單臺服務器的CPU計算能力、內(nèi)存容量和磁盤承載能力等;另外一種是橫向擴展,也就是通過增加服務器的數(shù)量來增加處理能力。前者存在業(yè)務中斷和擴展上限等諸多的問題,特別是互聯(lián)網(wǎng)業(yè)務的迅猛發(fā)展,單臺服務器幾乎無法滿足業(yè)務負載要求,因此目前比較流行的方式橫向擴展的方式。

1. 數(shù)據(jù)庫集群

數(shù)據(jù)庫的橫向擴展是通過數(shù)據(jù)庫集群實現(xiàn)的。數(shù)據(jù)庫集群也有兩種主要形式,一種是主備(主從)架構(gòu),也就是只有一臺服務器上的數(shù)據(jù)庫可以訪問,另一個(多個)服務器上數(shù)據(jù)庫不能訪問或者只能進行讀操作。另外一種是多活架構(gòu),這種架構(gòu)中所有服務器都可以對外提供服務(可同時讀寫)。

當前市面上大部分數(shù)據(jù)庫是主從架構(gòu),比如MySQL和SQL Server等。如圖1是大名鼎鼎的MySQL數(shù)據(jù)庫的主從復制原理圖。主從復制是通過重放binlog實現(xiàn)主庫數(shù)據(jù)的異步復制。由于從binlog獲取數(shù)據(jù)并重放與主庫寫入數(shù)據(jù)存在時間延遲,因此從庫的數(shù)據(jù)總是要滯后主庫。這個也是主從架構(gòu)的缺點,也就是無法保證數(shù)據(jù)的分布式一致性。主庫宕機的情況下可能會丟失一部分數(shù)據(jù)。

圖1 MySQL主從復制

2. 分區(qū)多活集群

多活架構(gòu)是集群中的節(jié)點可以同時對外提供服務。根據(jù)集群中節(jié)點是否可以共享數(shù)據(jù),多活架構(gòu)又分為兩種。一種是非共享數(shù)據(jù)的多活,該種情況下集群節(jié)點不能共享數(shù)據(jù),每個節(jié)點負責不同的數(shù)據(jù)。比如將數(shù)據(jù)庫表以主鍵ID進行劃分(比如取模),不同節(jié)點負責不同的區(qū)域。目前這種多活方案可以通過數(shù)據(jù)庫中間件實現(xiàn),比如開源的Mycat等。

圖2 基于Mycat的多活架構(gòu)

如圖2所示是基于Mycat的多活數(shù)據(jù)庫集群,這里面主要劃分為2個區(qū)域,每個區(qū)域通過主備保證可用性和分攤負載。具體策略可以采用取模的方式,比如主鍵ID為1,3,5,7...時數(shù)據(jù)存儲在左邊主庫中;2,4,6,8...時數(shù)據(jù)存儲在右邊主庫中。

由于數(shù)據(jù)的隔離性,上述訪問存在一個主要問題就是擴容相對困難。當需要增加集群節(jié)點數(shù)量的時候,就需要重新劃分數(shù)據(jù)的存儲位置,從而需要做大量的數(shù)據(jù)遷移。這樣,不僅僅操作復雜,而且增加了出現(xiàn)問題的風險。

3. 共享存儲多活集群(Oracle RAC)

另外一種多活架構(gòu)是共享存儲集群架構(gòu),比較典型的就是Oracle RAC(全稱Oracle Real Application Cluster)。在該架構(gòu)中集群中多個節(jié)點運行的是同一個數(shù)據(jù)庫實例,數(shù)據(jù)完全一致,并且用戶層面無論從那個節(jié)點訪問,獲取到的數(shù)據(jù)都是相同的。如圖3是Oracle RAC的示意圖,通過3個節(jié)點構(gòu)成一個集群,它們共享數(shù)據(jù)。

圖3 Oracle RAC示意圖

為了保證整個集群的可用性,Oracle RAC在部署的時候?qū)τ布斜容^多的要求。在網(wǎng)絡(luò)層面,Oracle RAC總共有3個網(wǎng)絡(luò)系統(tǒng),分別是外部訪問網(wǎng)絡(luò)、內(nèi)部私有網(wǎng)絡(luò)和存儲網(wǎng)絡(luò)。外部訪問網(wǎng)絡(luò)不用多少,相信大家都理解。內(nèi)部私有網(wǎng)絡(luò)則主要用來進行Oracle集群內(nèi)部使用,包括數(shù)據(jù)傳輸、心跳和集群管理等。這部分網(wǎng)絡(luò)在部署的時候要求雙交換機和雙物理鏈路,保證不會因為鏈路故障導致集群異常。后面是存儲網(wǎng)絡(luò),存儲網(wǎng)絡(luò)用于RAC集群訪問存儲資源,這部分也是鏈路冗余的。

Oracle RAC物理部署圖

圖4 Oracle RAC物理部署圖

為了更加深入的理解Oracle RAC我們看一下其內(nèi)部軟件模塊的組成。整個數(shù)據(jù)庫層面沒有太多差異,這里面主要多出了如下內(nèi)容:虛擬IP(VIP)、ASM、Clusterware和仲裁磁盤。這些新組件配合起來完成了Oracle的多活集群功能。

虛擬IP是應用訪問數(shù)據(jù)庫的入口,該IP并不與任何服務器綁定,而是可以在集群的任意服務器間漂移。由于具有這個特性,當出現(xiàn)服務器宕機等情況時,數(shù)據(jù)集集群可以保證通過相同的接口對外提供服務。

Oracle RAC軟件模塊圖

圖5 Oracle RAC軟件模塊圖

ASM與Clusterware實現(xiàn)了集群管理功能,其中ASM實現(xiàn)對磁盤的管理,避免同時訪問磁盤導致數(shù)據(jù)不一致的風險,而Clusterware則用于管理Oracle集群的軟件進程及資源調(diào)度。

仲裁磁盤用于集群中服務器的異常判斷,集群中的節(jié)點通過定時更新仲裁磁盤中特定區(qū)域的數(shù)據(jù)標示自身的健康狀態(tài)。其它節(jié)點可以根據(jù)該數(shù)據(jù)判斷該節(jié)點是否宕機。

責任編輯:趙寧寧 來源: itworld123
相關(guān)推薦

2021-05-20 08:23:13

Oracle數(shù)據(jù)庫rac啟用

2011-03-04 14:59:16

Raidoracle數(shù)據(jù)庫

2011-07-26 16:05:19

Oracle數(shù)據(jù)庫服務器

2009-11-20 13:29:59

Oracle數(shù)據(jù)庫恢復

2011-07-06 10:22:41

Oracle數(shù)據(jù)庫RAC組件

2025-04-08 06:00:00

2011-03-18 14:17:35

Oracle數(shù)據(jù)庫體系架構(gòu)

2017-12-27 13:07:52

數(shù)據(jù)庫MySQL主從復制

2011-05-25 09:45:40

Oracle數(shù)據(jù)庫

2025-01-15 10:53:54

2011-06-10 09:11:54

Oracle數(shù)據(jù)庫云

2009-01-20 10:45:55

Oracle數(shù)據(jù)庫中間件

2010-10-26 15:54:02

連接oracle數(shù)據(jù)庫

2010-07-22 11:17:52

SQL Server數(shù)

2023-09-05 08:40:57

刪除數(shù)據(jù)庫Oracle

2010-02-01 10:10:41

Oracle數(shù)據(jù)庫優(yōu)化

2011-08-10 15:46:29

數(shù)據(jù)庫

2010-04-02 16:03:20

Oracle數(shù)據(jù)庫

2010-05-05 14:13:52

Oracle數(shù)據(jù)

2010-04-22 10:30:11

Oracle RAC
點贊
收藏

51CTO技術(shù)棧公眾號