對(duì)于信息系統(tǒng)來說,,數(shù)據(jù)庫(kù)可謂是其核心,,它極大地影響了信息系統(tǒng)的安全性(數(shù)據(jù)安全、訪問安全),、穩(wěn)定性和整個(gè)信息系統(tǒng)的性能。這也是衡量數(shù)據(jù)庫(kù)產(chǎn)品品質(zhì)的三個(gè)重要指標(biāo),,各大數(shù)據(jù)庫(kù)廠商針對(duì)這些問題不斷地增強(qiáng)自身產(chǎn)品的競(jìng)爭(zhēng)力,,以謀求更多的商業(yè)價(jià)值。本文討論的是目前使用最為廣泛的Oracle公司的數(shù)據(jù)庫(kù)產(chǎn)品及其高可用性解決方案,。 Oracle RAC(Real Application Cluster,,真正的應(yīng)用集群)應(yīng)用非常廣泛,幾乎支持目前的所有主流平臺(tái),,尤其是Linux平臺(tái),,Oracle公司支持力度是最大的,在Linux平臺(tái)的特性也是最多的,,所以本書以Linux作為討論的平臺(tái),。 RAC產(chǎn)生的背景 就像每家每戶用電一樣,作為用電戶總是不希望家里出現(xiàn)停電的情況,,因?yàn)橥k妼?duì)日常生活帶來極大的不便,。同樣,作為信息系統(tǒng)的客戶也不希望系統(tǒng)出現(xiàn)異常情況,,這同樣會(huì)影響客戶正常的生產(chǎn)和生活,。 從硬件來說,為了追求信息系統(tǒng)更加高效穩(wěn)定的運(yùn)行,,支撐信息系統(tǒng)運(yùn)行的各個(gè)硬件組成部分,,在產(chǎn)品長(zhǎng)時(shí)間高效穩(wěn)定運(yùn)行方面得到了巨大的發(fā)展,。例如,UPS電源保證機(jī)房在斷電的情況下能支撐較長(zhǎng)時(shí)間的供電,,服務(wù)器 href="http://product.it168.com/list/b/0402_1.shtml" target=_blank>服務(wù)器有非常多不同于一般PC的設(shè)計(jì)來保證服務(wù)器能夠長(zhǎng)時(shí)間穩(wěn)定的運(yùn)行,,存儲(chǔ)系統(tǒng)也在不斷地發(fā)展與進(jìn)步,這些是硬件方面的內(nèi)容,,是信息系統(tǒng)運(yùn)行的基礎(chǔ),。 從軟件上來說,作為信息系統(tǒng)核心的數(shù)據(jù)庫(kù)產(chǎn)品在不斷增強(qiáng)產(chǎn)品質(zhì)量的同時(shí),,也提出了自己的高可用性解決方案,,并且這些方案也在不斷地增強(qiáng)和普及。本書討論的RAC數(shù)據(jù)庫(kù)就是Oracle公司針對(duì)數(shù)據(jù)庫(kù)的高可用性解決方案,,數(shù)據(jù)庫(kù)的高可用性依賴于硬件的穩(wěn)定運(yùn)行和設(shè)備的冗余,,軟硬件高效穩(wěn)定的協(xié)同工作才能夠保證系統(tǒng)更加安全、穩(wěn)定和高效地運(yùn)行,。 RAC體系結(jié)構(gòu) RAC數(shù)據(jù)庫(kù)是Oracle公司數(shù)據(jù)庫(kù)的集群解決方案,、高可用性解決方案。兩個(gè)或多個(gè)服務(wù)器之間通過一個(gè)內(nèi)部的私有網(wǎng)絡(luò)互相連接起來,,使用集群軟件將集群中所有的服務(wù)器融合成一個(gè)整體,,構(gòu)成一個(gè)集群。 集群內(nèi)部的所有服務(wù)器共享存儲(chǔ),,所有服務(wù)器都接入公共網(wǎng)絡(luò),,通過集群唯一的別名對(duì)外形成邏輯上單一的數(shù)據(jù)庫(kù)提供服務(wù),對(duì)內(nèi)實(shí)現(xiàn)集群數(shù)據(jù)庫(kù)的高可用性,、節(jié)點(diǎn)間的負(fù)載均衡和Failover(失敗切換),。隨著11gR2(11g的第二個(gè)大版本,2009年9月29發(fā)布)的推出,,這一方案在10gR2版本的基礎(chǔ)上得到了進(jìn)一步的增強(qiáng),。Oracle 11gR2推出的新特性能更好地滿足客戶對(duì)高可用性的要求,并為系統(tǒng)的擴(kuò)展,、成本的降低,、性能的提升提供多方面的優(yōu)勢(shì)。 下面對(duì)RAC的體系結(jié)構(gòu)進(jìn)行討論,。 一. 整體結(jié)構(gòu) 筆者認(rèn)為,,RAC有廣義和狹義之分,本小節(jié)討論廣義的RAC,,在1.2.3節(jié)將討論狹義的RAC,。廣義上講,一個(gè)真正的應(yīng)用集群縱向看是由存儲(chǔ)陣列、數(shù)據(jù)庫(kù)集群,、應(yīng)用集群三部分組成,,橫向來看,是由多臺(tái)應(yīng)用服務(wù)器,、數(shù)據(jù)庫(kù)服務(wù)器和存儲(chǔ)設(shè)備組成,。如圖1-1所示。 從圖1-1可以看出,,如果存儲(chǔ),、數(shù)據(jù)庫(kù)和應(yīng)用這三部分任意一部分沒有實(shí)現(xiàn)集群,都無法實(shí)現(xiàn)真正意義上的集群,,并無法保證整個(gè)系統(tǒng)是高可用的,。例如,數(shù)據(jù)庫(kù)使用的是RAC,,存儲(chǔ)也做了鏡像保護(hù),,但應(yīng)用服務(wù)器卻是一臺(tái)單機(jī),當(dāng)這臺(tái)應(yīng)用服務(wù)器出現(xiàn)故障,,那么整個(gè)系統(tǒng)也將處于不可用狀態(tài),,對(duì)客戶來說并不能感受到高可用的存在。所以,,廣義上的RAC只有實(shí)現(xiàn)存儲(chǔ),、數(shù)據(jù)庫(kù)、應(yīng)用三部分的集群,,整個(gè)系統(tǒng)才能實(shí)現(xiàn)真正意義上的高可用,。 Oracle推出了相應(yīng)的產(chǎn)品來支持這三部分:存儲(chǔ)方面有ASM(從Oracle 11g開始獨(dú)立出來作為Grid Infrastructure一部分),數(shù)據(jù)庫(kù)方面有集群軟件Clusterware和Database的組合,,應(yīng)用方面有Weblogic(從BEA收購(gòu)來的)。 ▲圖1-1 RAC結(jié)構(gòu) RAC的構(gòu)架主要實(shí)現(xiàn)了數(shù)據(jù)庫(kù)的集群和存儲(chǔ)的集群,。隨著產(chǎn)品的發(fā)展,,原來只用于數(shù)據(jù)庫(kù)的Oracle EM (Enterprise Manager)工具將能夠?qū)?yīng)用服務(wù)器、數(shù)據(jù)庫(kù)服務(wù)器及存儲(chǔ)服務(wù)器實(shí)施統(tǒng)一管理,。 通過圖1-1還能發(fā)現(xiàn)一個(gè)特點(diǎn),,存儲(chǔ)設(shè)備向上對(duì)數(shù)據(jù)庫(kù)集群提供統(tǒng)一接口的服務(wù)。這種統(tǒng)一接口指的是,,雖然數(shù)據(jù)庫(kù)服務(wù)器可能有多個(gè)HBA卡連接到存儲(chǔ)的多個(gè)控制器,,但是在數(shù)據(jù)庫(kù)服務(wù)器上通過多路徑軟件,將多個(gè)路徑合成一個(gè)路徑,,提供對(duì)存儲(chǔ)訪問的負(fù)載均衡和失敗切換,,從這點(diǎn)來說,,存儲(chǔ)設(shè)備向數(shù)據(jù)庫(kù)集群提供了統(tǒng)一的訪問接口。 數(shù)據(jù)庫(kù)集群向上對(duì)應(yīng)用集群提供統(tǒng)一接口服務(wù),。這里的統(tǒng)一接口就是Oracle 11gR2出現(xiàn)的SCAN,通過統(tǒng)一的名稱來訪問集群,,實(shí)現(xiàn)集群訪問的負(fù)載均衡,通過和Service的結(jié)合實(shí)現(xiàn)失敗切換。應(yīng)用集群向上對(duì)用戶提供統(tǒng)一的服務(wù)。 應(yīng)用服務(wù)器集群可能有另外的負(fù)載均衡硬件來進(jìn)行管理,,如F5,對(duì)于用戶來說也只有統(tǒng)一的訪問接口,,即域名,,通過應(yīng)用負(fù)載均衡硬件實(shí)現(xiàn)負(fù)載均衡和失敗切換,,最終形成所有用戶通過統(tǒng)一的域名就可以訪問系統(tǒng),并實(shí)現(xiàn)系統(tǒng)真正意義上的高可用,。 廣義的RAC縱向的每一部分對(duì)于上層都是具有高可用性能力的,,并且具有集群相關(guān)特點(diǎn),。所有這些存儲(chǔ)設(shè)備,、數(shù)據(jù)庫(kù)和應(yīng)用提供的對(duì)外服務(wù)接口都是統(tǒng)一的,,對(duì)內(nèi)實(shí)現(xiàn)了高可用的特點(diǎn),,任意一部分出現(xiàn)小范圍的問題都不會(huì)導(dǎo)致整個(gè)系統(tǒng)的癱瘓,,各部分的實(shí)現(xiàn)對(duì)于上層或者外部來說都是透明的,。這樣的集群才是真正意義上的集群,只是某一部分的集群則是不完整的高可用性解決方案,。 二. 物理層次結(jié)構(gòu) 圖1-2是RAC物理結(jié)構(gòu)圖,,主要包含SAN(Storage Area Network)存儲(chǔ)結(jié)構(gòu)和LAN(Local Area Network)網(wǎng)絡(luò)結(jié)構(gòu),。 ▲圖1-2 RAC物理結(jié)構(gòu)圖 下面對(duì)組成RAC最重要的兩部分結(jié)構(gòu)進(jìn)行討論,。 1. 存儲(chǔ)結(jié)構(gòu) RAC存儲(chǔ)結(jié)構(gòu)使用的方式必須是集群中所有節(jié)點(diǎn)都能同時(shí)并發(fā)訪問相同設(shè)備,,也就是說,,所有的節(jié)點(diǎn)共享同一個(gè)存儲(chǔ)設(shè)備(共享存儲(chǔ))。在實(shí)際的生產(chǎn)環(huán)境中,,大多數(shù)使用SAN來構(gòu)建服務(wù)器共享存儲(chǔ),。如圖1-2展示了SAN的基本結(jié)構(gòu),。 如圖1-2所示,,SAN是存儲(chǔ)區(qū)域網(wǎng)絡(luò),用于數(shù)據(jù)庫(kù)服務(wù)器和存儲(chǔ)設(shè)備交換數(shù)據(jù),LAN是本地區(qū)域網(wǎng)絡(luò),,用于應(yīng)用服務(wù)器或客戶端同數(shù)據(jù)庫(kù)服務(wù)器交換數(shù)據(jù),。顯然,用于交換數(shù)據(jù)的SAN比LAN要求更高,需要有更快的速度和更高的穩(wěn)定性,。目前,主流實(shí)現(xiàn)SAN技術(shù)的有兩種,,一種是傳統(tǒng)的FC(Fibre Channel)SAN,,另一種是IP SAN,。 搭建FC SAN使用FC協(xié)議作為傳輸協(xié)議,,使用光纖作為通信介質(zhì),,使用FC HBA卡,、光纖交換機(jī)作為連接設(shè)備,使用的存儲(chǔ)設(shè)備是要支持FC協(xié)議的存儲(chǔ)陣列,。存儲(chǔ)陣列中的磁盤可以是SATA磁盤,、SCS磁盤,、SAS磁盤和FC磁盤。FC光纖陣列性能最佳,,SATA磁盤陣列性能最差。 搭建IP SAN使用TCP/IP協(xié)議作為傳輸協(xié)議,,所以可以使用一般的網(wǎng)絡(luò)通信設(shè)備作為通信介質(zhì),,使用以太網(wǎng)網(wǎng)卡,、網(wǎng)絡(luò)交換機(jī)作為連接設(shè)備,,使用一般的服務(wù)器或者支持iSCSI的存儲(chǔ)設(shè)備作為存儲(chǔ),。由于要在以太網(wǎng)上傳送SCSI信號(hào),所以這種技術(shù)稱為iSCSI(internet SCSI)技術(shù),,即服務(wù)器將SCSI信號(hào)轉(zhuǎn)換成TCP/IP包,,通過以太網(wǎng)傳送數(shù)據(jù),接收端再將TCP/IP包轉(zhuǎn)換成SCSI信號(hào),,它確保能夠通過一般的網(wǎng)絡(luò)來傳輸SCSI信號(hào),。 注意 搭建FC SAN的環(huán)境需要很多特殊的硬件設(shè)備,并不是工作,、學(xué)習(xí)中常常能碰到的,。本書希望讀者盡可能用日常工作中很容易找到的硬件設(shè)備,搭建一個(gè)與生產(chǎn)環(huán)境結(jié)構(gòu)類似的RAC,?;谶@點(diǎn),第2章將討論使用iSCSI技術(shù)來搭建SAN存儲(chǔ)網(wǎng)絡(luò)實(shí)現(xiàn)共享存儲(chǔ),。這種方式將服務(wù)器的FC HBA卡換成了網(wǎng)卡,,將光纖交換機(jī)換成了網(wǎng)絡(luò)交換機(jī),將支持FC協(xié)議的磁盤陣列換成了普通TCP/IP網(wǎng)卡通信的服務(wù)器,。這樣一來就能很容易地復(fù)制生產(chǎn)環(huán)境的結(jié)構(gòu),,對(duì)于掌握RAC的整體結(jié)構(gòu)是很有幫助的。 存儲(chǔ)技術(shù)上,,Oracle Clusterware支持NFS,、iSCSI、DAS(Direct Attached Storage),、SAN存儲(chǔ)和NAS(Network Attached Storage),。本書只討論最常見的SAN,生產(chǎn)環(huán)境中使用的幾乎都是FC SAN,它的特點(diǎn)是速度快,、穩(wěn)定性高,、消耗服務(wù)器資源小,但成本也相對(duì)較高,。通過iSCSI的方式,,雖然成本較低,但穩(wěn)定性,、速度都沒光纖的方式好,并且會(huì)消耗部分服務(wù)器資源,,然而IP SAN作為一種低端的解決方案出現(xiàn),,可以應(yīng)用于備份、測(cè)試,、學(xué)習(xí)等方面,。 2. 網(wǎng)絡(luò)結(jié)構(gòu) 如圖1-2所示,在構(gòu)建RAC的網(wǎng)絡(luò)結(jié)構(gòu)中,,至少需要存在兩個(gè)網(wǎng)絡(luò),,所有的集群服務(wù)器都必須處在這兩個(gè)網(wǎng)絡(luò)中。一個(gè)是公共網(wǎng)絡(luò),,用于對(duì)外接收連接請(qǐng)求服務(wù)的網(wǎng)絡(luò);另一個(gè)是私有網(wǎng)絡(luò),,用于節(jié)點(diǎn)通信的網(wǎng)絡(luò)。 在網(wǎng)絡(luò)傳輸中,,目前常用的都是千兆級(jí)別的網(wǎng)絡(luò),,但是隨著技術(shù)的發(fā)展,已經(jīng)出現(xiàn)了萬兆傳輸?shù)木W(wǎng)絡(luò),,以及使用Infiniband技術(shù)來實(shí)現(xiàn)高速傳輸網(wǎng)絡(luò),。Infiniband技術(shù)將在第15章討論。在11gR2版本中,,Oracle開始允許有多個(gè)公共網(wǎng)絡(luò),,每個(gè)網(wǎng)絡(luò)有自己的一個(gè)SCAN名稱對(duì)外接收連接請(qǐng)求。 傳統(tǒng)的網(wǎng)絡(luò)結(jié)構(gòu)是通過千兆網(wǎng)絡(luò)來實(shí)現(xiàn)的,,其中內(nèi)聯(lián)網(wǎng)絡(luò)(私有網(wǎng)絡(luò))對(duì)于RAC來說非常重要,,它關(guān)系到節(jié)點(diǎn)服務(wù)器間的心跳健康狀況,以及Cache Fusion的性能,。由于目前常用到的是千兆帶寬的網(wǎng)絡(luò)作為私有網(wǎng)絡(luò),,所以速度并不是很快,在業(yè)務(wù)系統(tǒng)設(shè)計(jì)的過程中要充分利用Service的特性來減少對(duì)Cache Fusion的使用,,這樣才能提高對(duì)請(qǐng)求的響應(yīng)速度,。另外,還可以考慮將千兆網(wǎng)卡更換成光纖網(wǎng)卡,用光纖作為私有網(wǎng)絡(luò)的傳輸介質(zhì)可以提高心跳的穩(wěn)定性,,減少傳輸過程中受外界磁場(chǎng)等因素的干擾而影響傳輸性能,。當(dāng)然,也可以使用萬兆的網(wǎng)絡(luò)以及Infiniband技術(shù)來實(shí)現(xiàn)高速,、低延遲的傳輸,。 注意 Oracle不支持使用交叉電纜作為Clusterware私有網(wǎng)絡(luò)傳輸介質(zhì),這是不受Oracle技術(shù)支持的,,同時(shí),,在運(yùn)行的過程中也可能會(huì)出現(xiàn)嚴(yán)重的心跳丟失,導(dǎo)致服務(wù)器自動(dòng)重啟等異常情況,,這對(duì)RAC的穩(wěn)定性極其不利,。 內(nèi)聯(lián)網(wǎng)絡(luò)使用一個(gè)或多個(gè)交換機(jī)連接集群中的所有服務(wù)器,集群中的節(jié)點(diǎn)之間能夠通過該網(wǎng)絡(luò)相互訪問和通信,。在Linux平臺(tái),,可以使用UDP(User Datagram Protocol)或者RDS(Reliable Data Socket)協(xié)議配置Oracle Clusterware的通信方式,默認(rèn)使用的是UDP協(xié)議,,在Windows平臺(tái)上默認(rèn)使用TCP/IP協(xié)議進(jìn)行通信,。用戶不能使用內(nèi)聯(lián)網(wǎng)絡(luò)與數(shù)據(jù)庫(kù)進(jìn)行通信,因?yàn)镃ache Fusion要使用內(nèi)聯(lián)網(wǎng)絡(luò)來進(jìn)行實(shí)例間的通信,。 三. 邏輯層次結(jié)構(gòu) RAC邏輯結(jié)構(gòu)可以分為存儲(chǔ)層,、集群層和數(shù)據(jù)庫(kù)層,如圖1-3所示,。每個(gè)層都由相關(guān)的軟件來實(shí)現(xiàn),。 ▲圖1-3 如圖1-3所示,在同一個(gè)節(jié)點(diǎn)層與層之間有非常緊密的關(guān)系,,同時(shí)在不同的節(jié)點(diǎn)之間,,相同層之間也存在緊密的關(guān)系。它們之間相互支持,,每個(gè)相同的邏輯層都可以說是一個(gè)集群,,共同構(gòu)成了RAC集群高可用性環(huán)境。返回比特網(wǎng)首頁(yè)>> |
|