走近數(shù)據(jù)庫(kù)前沿技術(shù)——集群
用來(lái)保存計(jì)算最終結(jié)果的數(shù)據(jù)庫(kù)是整個(gè)信息系統(tǒng)的重要組成部分,技術(shù)也相對(duì)成熟。然而,對(duì)于所有數(shù)據(jù)庫(kù)而言,除了記錄正確的處理結(jié)果之外,也面臨著一些挑戰(zhàn):如何提高處理速度,數(shù)據(jù)可用性、數(shù)據(jù)安全性和數(shù)據(jù)集可擴(kuò)性。將多個(gè)數(shù)據(jù)庫(kù)聯(lián)在一起組成數(shù)據(jù)庫(kù)集群來(lái)達(dá)到上述目標(biāo)應(yīng)該說(shuō)是一個(gè)很自然的想法。
集群(Cluster)技術(shù)是使用特定的連接方式,將價(jià)格相對(duì)較低的硬件設(shè)備結(jié)合起來(lái),同時(shí)也能提供高性能相當(dāng)?shù)娜蝿?wù)處理能力。
本文試圖對(duì)當(dāng)前主要的數(shù)據(jù)庫(kù)集群用到的具體技術(shù)和市場(chǎng)上的主流產(chǎn)品進(jìn)行分析并作點(diǎn)評(píng),從而為讀者提供一個(gè)數(shù)據(jù)庫(kù)集群的評(píng)價(jià)參考。
下面討論的數(shù)據(jù)庫(kù)集群技術(shù)分屬兩類(lèi)體系:基于數(shù)據(jù)庫(kù)引擎的集群技術(shù)和基于數(shù)據(jù)庫(kù)網(wǎng)關(guān)(中間件)的集群技術(shù)。
基于數(shù)據(jù)庫(kù)引擎的集群技術(shù)(共享磁盤(pán)或非共享磁盤(pán))
基于數(shù)據(jù)庫(kù)網(wǎng)關(guān)(中間件)的集群技術(shù)(不共享磁盤(pán))
關(guān)鍵技術(shù)
在復(fù)雜的數(shù)據(jù)庫(kù)集群技術(shù)之間做比較,其實(shí)就是比較它所包含的各項(xiàng)子技術(shù)性能和它們之間的協(xié)調(diào)運(yùn)作能力,下面的文字將介紹數(shù)據(jù)庫(kù)集群最需要得到重視的核心技術(shù),同時(shí)也關(guān)注到了一些技術(shù)細(xì)節(jié)。
提高處理速度的四種辦法
提高磁盤(pán)速度:主要思想是提高磁盤(pán)的并發(fā)度。盡管實(shí)現(xiàn)方法各不相同,但是它們最后的目的都是提供一個(gè)邏輯數(shù)據(jù)庫(kù)的存儲(chǔ)映象。
【點(diǎn)評(píng)】系統(tǒng)為了提高磁盤(pán)訪問(wèn)速度,建立一個(gè)虛擬的涵蓋所有數(shù)據(jù)“大”數(shù)據(jù)庫(kù),而不用去考慮數(shù)據(jù)的實(shí)際物理磁盤(pán)存放位置。
分散數(shù)據(jù)的存放:利用多個(gè)物理服務(wù)器來(lái)存放數(shù)據(jù)集的不同部分,使得不同的服務(wù)器進(jìn)行并行計(jì)算成為可能。
ORACLE RAC是共享磁盤(pán)的體系結(jié)構(gòu),用戶只需簡(jiǎn)單地增加一個(gè)服務(wù)器節(jié)點(diǎn),RAC就能自動(dòng)地將這節(jié)點(diǎn)加入到它的集群服務(wù)中去,RAC會(huì)自動(dòng)地將數(shù)據(jù)分配到這節(jié)點(diǎn)上,并且會(huì)將接下來(lái)的數(shù)據(jù)庫(kù)訪問(wèn)自動(dòng)分布到合適的物理服務(wù)器上,而不用修改應(yīng)用程序;UDB是非共享磁盤(pán)的體系結(jié)構(gòu),需要手工修改數(shù)據(jù)分區(qū),MSCS和ASE也是同樣情況。ICX是一種基于中間件的數(shù)據(jù)庫(kù)集群技術(shù),對(duì)客戶端和數(shù)據(jù)庫(kù)服務(wù)器都是透明的??梢杂脕?lái)集群幾個(gè)數(shù)據(jù)庫(kù)集群。
【點(diǎn)評(píng)】系統(tǒng)通過(guò)化整為零的策略,將數(shù)據(jù)表格分散到多個(gè)服務(wù)器或者每個(gè)服務(wù)器分管幾個(gè)內(nèi)容不同的表格,這樣做的目的在于通過(guò)多服務(wù)器間并行運(yùn)算以提高訪問(wèn)速度。
對(duì)稱多處理器系統(tǒng):
利用多處理機(jī)硬件技術(shù)來(lái)提高數(shù)據(jù)庫(kù)的處理速度。
所有基于數(shù)據(jù)庫(kù)引擎的集群都支持這個(gè)技術(shù)。
【點(diǎn)評(píng)】將多CPU處理器進(jìn)行合理調(diào)度,來(lái)同時(shí)處理不同的訪問(wèn)要求,但這種技術(shù)在數(shù)據(jù)庫(kù)上的應(yīng)用的實(shí)際收益是很有限的。
交易處理負(fù)載均衡:在保持?jǐn)?shù)據(jù)集內(nèi)容同步的前提下,將只讀操作分布到多個(gè)獨(dú)立的服務(wù)器上運(yùn)行。因?yàn)榻^大多數(shù)的數(shù)據(jù)庫(kù)操作是瀏覽和查詢,如果我們能擁有多個(gè)內(nèi)容同步的數(shù)據(jù)庫(kù)服務(wù)器,交易負(fù)載均衡就具有最大的潛力(可以遠(yuǎn)遠(yuǎn)大于上面敘述的最多達(dá)四個(gè)處理器的對(duì)稱多處理器系統(tǒng))來(lái)提高數(shù)據(jù)庫(kù)的處理速度,同時(shí)會(huì)具有非常高的數(shù)據(jù)可用性。
所有基于數(shù)據(jù)庫(kù)引擎的集群系統(tǒng)都只支持一個(gè)邏輯數(shù)據(jù)庫(kù)映象和一個(gè)邏輯或物理的備份。這個(gè)備份的主要目的是預(yù)防數(shù)據(jù)災(zāi)難。因此,備份里的數(shù)據(jù)只能通過(guò)復(fù)制機(jī)制來(lái)更新,應(yīng)用程序是不能直接更新它的。利用備份數(shù)據(jù)進(jìn)行交易負(fù)載均衡只適用于一些非常有限的應(yīng)用,例如報(bào)表統(tǒng)計(jì)、數(shù)據(jù)挖掘以及其它非關(guān)鍵業(yè)務(wù)的應(yīng)用。
【點(diǎn)評(píng)】負(fù)載平衡算是一項(xiàng)“老”技術(shù)了。但將性能提高到最大也是集群設(shè)計(jì)所追求的終極目標(biāo)。傳統(tǒng)意義上,利用備份數(shù)據(jù)進(jìn)行交易負(fù)載均衡只適用于一些非常有限的應(yīng)用。
上述所有技術(shù)在實(shí)際部署系統(tǒng)的時(shí)候可以混合使用以達(dá)到最佳效果。
#p#
提高可用性的四種方法
硬件級(jí)冗余:讓多處理機(jī)同時(shí)執(zhí)行同樣的任務(wù)用以屏蔽瞬時(shí)和永久的硬件錯(cuò)誤。有兩種實(shí)現(xiàn)方法:構(gòu)造特殊的冗余處理機(jī)和使用多個(gè)獨(dú)立的數(shù)據(jù)庫(kù)服務(wù)器。
基于數(shù)據(jù)庫(kù)的集群系統(tǒng)都是用多個(gè)獨(dú)立的數(shù)據(jù)庫(kù)服務(wù)器來(lái)實(shí)現(xiàn)一個(gè)邏輯數(shù)據(jù)庫(kù),在任意瞬間,每臺(tái)處理器運(yùn)行的都是不同的任務(wù)。這種系統(tǒng)可以屏蔽單個(gè)或多個(gè)服務(wù)器的損壞,但是因?yàn)闆](méi)有處理的冗余度,每次恢復(fù)的時(shí)間比較長(zhǎng)。
【點(diǎn)評(píng)】傳統(tǒng)意義上,硬件越貴,性能越高,但往往事與愿違。想通過(guò)追加和升級(jí)硬件設(shè)備來(lái)改善硬件級(jí)的冗余,要進(jìn)行詳細(xì)的需求分析和論證。
通訊鏈路級(jí)冗余:冗余的通訊鏈路可以屏蔽瞬時(shí)和永久的通訊鏈路級(jí)的錯(cuò)誤。
基于數(shù)據(jù)庫(kù)引擎的集群系統(tǒng)有兩種結(jié)構(gòu):共享磁盤(pán)和獨(dú)立磁盤(pán)。RAC, MSCS 可以認(rèn)為是共享磁盤(pán)的集群系統(tǒng)。UDB和ASE 是獨(dú)立磁盤(pán)的集群系統(tǒng)。共享磁盤(pán)集群系統(tǒng)的通訊的冗余度最小。
【點(diǎn)評(píng)】通訊鏈路級(jí)的冗余具有容錯(cuò)功能。
軟件級(jí)冗余:由于現(xiàn)代操作系統(tǒng)和數(shù)據(jù)庫(kù)引擎的高度并發(fā)性,由競(jìng)爭(zhēng)條件、死鎖、以及時(shí)間相關(guān)引發(fā)的錯(cuò)誤占據(jù)了非正常停機(jī)服務(wù)的絕大多數(shù)原因。采用多個(gè)冗余的運(yùn)行數(shù)據(jù)庫(kù)進(jìn)程能屏蔽瞬時(shí)和永久的軟件錯(cuò)誤?;跀?shù)據(jù)庫(kù)引擎的集群系統(tǒng)都用多個(gè)處理器來(lái)實(shí)現(xiàn)一個(gè)邏輯數(shù)據(jù)庫(kù),它們只能提供部分軟件冗余,因?yàn)槊恳凰查g每個(gè)處理器執(zhí)行的都是不同的任務(wù)。
【點(diǎn)評(píng)】改善軟件設(shè)計(jì)來(lái)提高冗余性能和屏蔽軟件級(jí)錯(cuò)誤是每個(gè)技術(shù)開(kāi)發(fā)商的夢(mèng)想。傳統(tǒng)的集群系統(tǒng)只能提供部分軟件冗余。
數(shù)據(jù)冗余:
1. 被動(dòng)更新數(shù)據(jù)集:所有目前的數(shù)據(jù)復(fù)制技術(shù)(同步或異步),例如磁盤(pán)鏡像、數(shù)據(jù)庫(kù)文件復(fù)制以及數(shù)據(jù)庫(kù)廠商自帶的數(shù)據(jù)庫(kù)備份工具都只能產(chǎn)生被動(dòng)復(fù)制數(shù)據(jù)集。它一般只用于災(zāi)難恢復(fù)。
【點(diǎn)評(píng)】大多數(shù)應(yīng)用都是采用被動(dòng)更新數(shù)據(jù)集的方法。這種方法容災(zāi)能力差,資源占用多,已面臨淘汰和革新。
2. 主動(dòng)更新數(shù)據(jù)集:這種數(shù)據(jù)集需要一臺(tái)或多臺(tái)備份數(shù)據(jù)庫(kù)服務(wù)器來(lái)管理,它可用于報(bào)表生成,數(shù)據(jù)挖掘,災(zāi)難恢復(fù)甚至低質(zhì)量負(fù)載均衡。分同步和異步兩種。
異步主動(dòng)復(fù)制數(shù)據(jù)集:先把事務(wù)處理交給主服務(wù)器來(lái)完成,然后事務(wù)處理再被串行地交給備份服務(wù)器以執(zhí)行同樣操作來(lái)保證數(shù)據(jù)一致性。所有的商用數(shù)據(jù)庫(kù)都支持異步主動(dòng)復(fù)制技術(shù)。
同步主動(dòng)復(fù)制數(shù)據(jù)集:要求所有并發(fā)事務(wù)處理在所有數(shù)據(jù)庫(kù)服務(wù)器上同時(shí)完成。直接好處就是解決了隊(duì)列管理問(wèn)題,同時(shí)通過(guò)負(fù)載均衡實(shí)現(xiàn)更高性能和可用性。RAC, UDB, MSCS 和 ASE是用完全串行化并結(jié)合兩階段提交協(xié)議來(lái)實(shí)現(xiàn)的,設(shè)計(jì)目標(biāo)就是為了獲得一份可用于快速災(zāi)難恢復(fù)的數(shù)據(jù)集。
【點(diǎn)評(píng)】主動(dòng)更新數(shù)據(jù)集是目前比較先進(jìn)的數(shù)據(jù)冗余方法。專(zhuān)業(yè)人員還可以進(jìn)行更底層的技術(shù)細(xì)節(jié)比較。底層技術(shù)的差異直接影響著一些重要指標(biāo)。
提高安全和數(shù)據(jù)集可擴(kuò)性的技術(shù)
在提高數(shù)據(jù)庫(kù)安全性和數(shù)據(jù)集可擴(kuò)性這兩方面,可以創(chuàng)新的空間是很小的。數(shù)據(jù)庫(kù)最常見(jiàn)的安全辦法是口令保護(hù),要么是分布式的,要么是集中式的。在數(shù)據(jù)庫(kù)前面增加防火墻會(huì)增加額外的延遲,因此,盡管許多安全侵犯事件是來(lái)自于公司內(nèi)部,但是數(shù)據(jù)庫(kù)防火墻還是很少被采用。如果數(shù)據(jù)庫(kù)集群技術(shù)是基于中間件技術(shù)實(shí)現(xiàn)的,就有可能在不增加額外延遲的情況下,在數(shù)據(jù)經(jīng)過(guò)的路徑上實(shí)現(xiàn)防火墻功能。數(shù)據(jù)庫(kù)數(shù)據(jù)集的可擴(kuò)性只能通過(guò)將數(shù)據(jù)分布到多個(gè)獨(dú)立的物理服務(wù)器上來(lái)實(shí)現(xiàn)。
主流產(chǎn)品
在數(shù)據(jù)庫(kù)集群產(chǎn)品方面,其中主要包括基于數(shù)據(jù)庫(kù)引擎的集群技術(shù)的Oracle RAC、Microsoft MSCS、IBM DB2 UDB、Sybase ASE,以及基于數(shù)據(jù)庫(kù)網(wǎng)關(guān)(中間件)的集群技術(shù)的ICX-UDS等產(chǎn)品。
#p#
Oracle RAC
Oracle RAC 支持 Oracle 數(shù)據(jù)庫(kù)在集群上運(yùn)行的所有類(lèi)型的主流商業(yè)應(yīng)用程序。這包括流行的封裝產(chǎn)品,如 SAP、PeopleSoft 和 Oracle E-Business Suite 等,以及自主研發(fā)的應(yīng)用程序,其中包括 OLTP 和 DSS,以及 Oracle 有效支持混合 OLTP/DSS 環(huán)境的獨(dú)有能力。Oracle 是唯一提供具備這一功能的開(kāi)放系統(tǒng)數(shù)據(jù)庫(kù)的廠商。 Oracle RAC 運(yùn)行于集群之上,為 Oracle 數(shù)據(jù)庫(kù)提供了最高級(jí)別的可用性、可伸縮性和低成本計(jì)算能力。如果集群內(nèi)的一個(gè)節(jié)點(diǎn)發(fā)生故障,Oracle 將可以繼續(xù)在其余的節(jié)點(diǎn)上運(yùn)行。如果需要更高的處理能力,新的節(jié)點(diǎn)可輕松添加至集群。為了保持低成本,即使最高端的系統(tǒng)也可以從采用標(biāo)準(zhǔn)化商用組件的小型低成本集群開(kāi)始逐步構(gòu)建而成。
Oracle 的主要?jiǎng)?chuàng)新是一項(xiàng)稱為高速緩存合并的技術(shù),它最初是針對(duì) Oracle9i 真正應(yīng)用集群開(kāi)發(fā)的。高速緩存合并使得集群中的節(jié)點(diǎn)可以通過(guò)高速集群互聯(lián)高效地同步其內(nèi)存高速緩存,從而最大限度地低降低磁盤(pán) I/O。高速緩存最重要的優(yōu)勢(shì)在于它能夠使集群中所有節(jié)點(diǎn)的磁盤(pán)共享對(duì)所有數(shù)據(jù)的訪問(wèn)。數(shù)據(jù)無(wú)需在節(jié)點(diǎn)間進(jìn)行分區(qū)。Oracle RAC 支持企業(yè)網(wǎng)格。Oracle RAC 的高速緩存合并技術(shù)提供了最高等級(jí)的可用性和可伸縮性。Oracle RAC能顯著降低了運(yùn)營(yíng)成本,增強(qiáng)了靈活性,從而賦予了系統(tǒng)更卓越的適應(yīng)性、前瞻性和靈活性。動(dòng)態(tài)提供節(jié)點(diǎn)、存儲(chǔ)器、CPU 和內(nèi)存可以在實(shí)現(xiàn)所需服務(wù)級(jí)別的同時(shí),通過(guò)提高的利用率不斷降低成本。
Oracle RAC采用了“sharing everything”的實(shí)現(xiàn)模式,通過(guò)CPU共享和存儲(chǔ)設(shè)備共享來(lái)實(shí)現(xiàn)多節(jié)點(diǎn)之間的無(wú)縫集群,用戶提交的每一項(xiàng)任務(wù)被自動(dòng)分配給集群中的多臺(tái)機(jī)器執(zhí)行,用戶不必通過(guò)冗余的硬件來(lái)滿足高可靠性要求。另一方面,RAC可以實(shí)現(xiàn)CPU的共享,即使普通服務(wù)器組成的集群也能實(shí)現(xiàn)過(guò)去只有大型主機(jī)才能提供的高性能。
Microsoft MSCS
數(shù)年以來(lái),Microsoft一直致力于對(duì)自身服務(wù)器解決方案的伸縮能力、可用性與可靠性進(jìn)行擴(kuò)展。最初代號(hào)為Wolfpack且先后被稱為Microsoft集群服務(wù)器與Microsoft集群服務(wù)的MSCS是Microsoft在NT集群技術(shù)領(lǐng)域中的首次重拳出擊,它是公認(rèn)的最佳Microsoft集群解決方案。在MSCS群集中,MSCS軟件最多可以同四臺(tái)運(yùn)行在高速網(wǎng)絡(luò)上的物理計(jì)算機(jī)建立連接。通常情況下,群集中的計(jì)算機(jī)能夠按照“活動(dòng)--活動(dòng)”方式共享相同的存儲(chǔ)子系統(tǒng)與功能,這意味著所有集群計(jì)算機(jī)(節(jié)點(diǎn))均可主動(dòng)通過(guò)共享負(fù)載的方式協(xié)同完成工作,并在某個(gè)節(jié)點(diǎn)出現(xiàn)故障時(shí)分擔(dān)它的工作。MSCS的主要用途是通過(guò)自身提供的容錯(cuò)能力提高應(yīng)用程序可用性。容錯(cuò)能力是指將相關(guān)處理過(guò)程從某個(gè)節(jié)點(diǎn)上的故障應(yīng)用程序移植到集群中其它健康節(jié)點(diǎn)上的集群功能。當(dāng)故障應(yīng)用程序得到恢復(fù)后,集群應(yīng)當(dāng)能夠?qū)υ鹊募汗?jié)點(diǎn)實(shí)現(xiàn)“故障返回”。MSCS能夠在不丟失任何與故障應(yīng)用程序相關(guān)數(shù)據(jù)的前提下對(duì)集群上所運(yùn)行的應(yīng)用程序進(jìn)行故障恢復(fù)與故障返回管理,并且能夠在故障恢復(fù)過(guò)程中維護(hù)用戶及應(yīng)用程序狀態(tài)。這種類(lèi)型的集群功能被稱作有狀態(tài)集群功能。MSCS同時(shí)還允許用戶在應(yīng)用程序升級(jí)過(guò)程中繼續(xù)進(jìn)行工作。您可以采取滾動(dòng)升級(jí)方式(例如每次在一個(gè)集群節(jié)點(diǎn)上升級(jí)應(yīng)用程序并確保其它節(jié)點(diǎn)上的應(yīng)用程序繼續(xù)處于可用狀態(tài))而不必在升級(jí)過(guò)程中停止使用應(yīng)用程序。
SQL Server 2005是微軟的下一代數(shù)據(jù)管理和分析解決方案,給企業(yè)級(jí)應(yīng)用數(shù)據(jù)和分析程序帶來(lái)更好的安全性、穩(wěn)定性和可靠性,更易于創(chuàng)建、部署和管理。它憑借針對(duì)故障轉(zhuǎn)移群集機(jī)制的支持能力,得以增強(qiáng)的多實(shí)例支持能力以及分析服務(wù)對(duì)象與數(shù)據(jù)備份及恢復(fù)能力,分析服務(wù)的可用性得到了提高。它提供了諸如表分區(qū)、快照隔離、64位支持等方面的高級(jí)可伸縮性功能,使用戶能輕松構(gòu)建和部署關(guān)鍵應(yīng)用。表和索引的分區(qū)功能顯著增強(qiáng)了對(duì)大型數(shù)據(jù)庫(kù)的查詢性能。
利用Windows 2000 MSCS實(shí)現(xiàn)的4節(jié)點(diǎn)集群
性能指標(biāo)
這部分將介紹集群系統(tǒng)的細(xì)節(jié)技術(shù)指標(biāo)。在做系統(tǒng)規(guī)劃時(shí),用戶就可去掉一些應(yīng)用中不太重要的指標(biāo),或賦予這些指標(biāo)以不同的權(quán)重,從而進(jìn)行專(zhuān)業(yè)的技術(shù)性能比較,選擇最適合自己的數(shù)據(jù)庫(kù)集群系統(tǒng)。
處理速度
磁盤(pán)技術(shù):所有集群系統(tǒng)都能很好地應(yīng)用磁盤(pán)技術(shù),但是由于DM,F(xiàn)M會(huì)對(duì)磁盤(pán)系統(tǒng)帶來(lái)傳輸速度的負(fù)面影響,因此這方面它們相對(duì)欠缺。
數(shù)據(jù)分割:所有基于數(shù)據(jù)庫(kù)引擎的集群系統(tǒng)都有很好數(shù)據(jù)分割能力。
SMP:所有基于數(shù)據(jù)庫(kù)引擎的集群系統(tǒng)的SMP性能指標(biāo)都比較接近。
負(fù)載均衡:一般的數(shù)據(jù)庫(kù)引擎的集群系統(tǒng)由于使用了備份的數(shù)據(jù)集,因此只能支持有限的負(fù)載均衡。這一指標(biāo)不同產(chǎn)品之間有差異。
數(shù)據(jù)可用性
處理器和軟件冗余:只有部分集群系統(tǒng)支持該功能。
通訊鏈路冗余:一般來(lái)說(shuō),共享磁盤(pán)的集群系統(tǒng)通訊鏈路冗余指標(biāo)較低,獨(dú)立磁盤(pán)的集群系統(tǒng)指標(biāo)較高。
數(shù)據(jù)冗余:
主動(dòng)異步復(fù)制:除了磁盤(pán)和文件鏡像外,其他集群系統(tǒng)支持該功能。
主動(dòng)同步復(fù)制:所有集群系統(tǒng)支持該功能,細(xì)節(jié)指標(biāo)略有不同。
被動(dòng)異步復(fù)制:所有集群系統(tǒng)該性能指標(biāo)都比較接近。
被動(dòng)同步更新:所有集群系統(tǒng)該性能指標(biāo)都比較接近。
通過(guò)廣域網(wǎng)的復(fù)制技術(shù):
遠(yuǎn)程主動(dòng)異步復(fù)制:所有的集群系統(tǒng)都支持這種復(fù)制技術(shù),只不過(guò)對(duì)隊(duì)列的管理能力有所不同。DM,F(xiàn)M和RAID的此性能相對(duì)較低。RAID不支持遠(yuǎn)程復(fù)制功能。
遠(yuǎn)程主動(dòng)同步復(fù)制:ICX在這方面做的比較好。
遠(yuǎn)程被動(dòng)異步復(fù)制:DM 和 FM支持這種類(lèi)型的復(fù)制,因?yàn)镈M和FM對(duì)集群是透明的,是在集群系統(tǒng)的下一層工作的,所有的集群系統(tǒng)都可以利用它們提供的功能。
遠(yuǎn)程被動(dòng)同步復(fù)制:DM和FM支持這種類(lèi)型的復(fù)制,因?yàn)檫@種復(fù)制方式只在距離很近的時(shí)候才能使用(使用雙模光纖,半徑五英里)。同樣地,因?yàn)镈M和FM對(duì)集群是透明的, 所有的集群系統(tǒng)都可以利用它們提供的功能, 如果部署的話,所有的集群系統(tǒng)都是類(lèi)似的。
安全性
口令:這是所有集群系統(tǒng)的基本性能。分布式或集中式的口令保護(hù)基本上保證了數(shù)據(jù)的安全。
數(shù)據(jù)庫(kù)防火墻:大多數(shù)數(shù)據(jù)庫(kù)集群系統(tǒng)得數(shù)據(jù)庫(kù)防火墻很少被采用,而ICX則采用在數(shù)據(jù)經(jīng)過(guò)的路徑上實(shí)現(xiàn)防火墻功能。
數(shù)據(jù)集的可擴(kuò)性
數(shù)據(jù)分區(qū):所有基于數(shù)據(jù)庫(kù)引擎的集群系統(tǒng)都具備數(shù)據(jù)分區(qū)以保證數(shù)據(jù)集的可擴(kuò)展。
數(shù)據(jù)分區(qū)的可用性:所有集群系統(tǒng)該性能指標(biāo)比較接近。
#p#
集群管理
共享磁盤(pán)的集群系統(tǒng),比如RAC、MSCS,它們的管理比較方便,其中RAC的服務(wù)更多。但是,由于此種系統(tǒng)中的每一單獨(dú)的服務(wù)器需要特殊處理,和獨(dú)立磁盤(pán)的集群系統(tǒng)比較,就容易管理多了(雖然進(jìn)行初始化和修改配置的時(shí)候也不那么容易),但它們都要求應(yīng)用程序?qū)翰煌该?,而且配置,修改也比較麻煩。
獨(dú)立磁盤(pán)的集群系統(tǒng)象 UDB、ASE此性能相對(duì)稍低,因?yàn)橛玫亩际欠枪蚕泶疟P(pán),所以管理相對(duì)繁瑣。
ICX在易管理性(初始配置和將來(lái)的修改)方面和獨(dú)立磁盤(pán)集群系統(tǒng)的性能相當(dāng),但是在對(duì)底層數(shù)據(jù)管理復(fù)雜性方面做得比較好。在對(duì)數(shù)據(jù)庫(kù)引擎和數(shù)據(jù)進(jìn)行底層修復(fù)的時(shí)候任務(wù)需要直接到每臺(tái)數(shù)據(jù)庫(kù)處理器上去做。
那些磁盤(pán)工具,即DM、FM和RAID,它們對(duì)集群是透明的。管理相對(duì)簡(jiǎn)單得多。
應(yīng)用透明度
因?yàn)樵阱e(cuò)誤回復(fù)和分區(qū)方面對(duì)應(yīng)用程序不透明以及它們對(duì)應(yīng)用程序都有些特殊的要求,基于數(shù)據(jù)庫(kù)引擎的RAC、MSCS、UDB、ASE和ICX在這方面都有待提高的地方。而DM、FM和RAID它們對(duì)應(yīng)用程序可以說(shuō)是完全透明的。
IBM DB2 UDB
DB2 UDB大量自動(dòng)或自我管理功能可使管理員能夠節(jié)省更多時(shí)間來(lái)集中精力考慮驅(qū)動(dòng)業(yè)務(wù)價(jià)值的問(wèn)題,甚至可以消除較小的實(shí)施項(xiàng)目對(duì)專(zhuān)職管理員的需求。
UDB的優(yōu)勢(shì)體現(xiàn)在DB2的開(kāi)放無(wú)界:支持Unix, Linux 以及Windows等主流操作系統(tǒng);支持各種開(kāi)發(fā)語(yǔ)言和訪問(wèn)接口;同時(shí)具有良好的數(shù)據(jù)安全性和穩(wěn)定性。DB2 V8.2的高可用性災(zāi)備技術(shù),可在極短時(shí)間內(nèi)使關(guān)鍵應(yīng)用得到恢復(fù)。利用DB2數(shù)據(jù)分區(qū)部件(DPF)實(shí)現(xiàn)橫向擴(kuò)展,可以支持多達(dá)1000臺(tái)服務(wù)器組成的龐大數(shù)據(jù)庫(kù)群集,為構(gòu)建企業(yè)級(jí)數(shù)據(jù)倉(cāng)庫(kù)提供堅(jiān)實(shí)的技術(shù)基礎(chǔ)。利用DB2的數(shù)據(jù)分區(qū)部件以及DB2信息集成器(DB2 II)技術(shù),數(shù)據(jù)庫(kù)操作可綜合利用網(wǎng)格中的每臺(tái)服務(wù)器的運(yùn)算能力,實(shí)現(xiàn)真正意義上的網(wǎng)格運(yùn)算。
UDB V8.2應(yīng)用更多的創(chuàng)新技術(shù),Design Advisor可以幫助 DBA 制定全面的數(shù)據(jù)庫(kù)設(shè)計(jì)決策,包括集成復(fù)雜的功能劃分、物化查詢表,大大縮短部署時(shí)間。自動(dòng)生成統(tǒng)計(jì)信息概要代表了來(lái)自 IBM LEO研發(fā)項(xiàng)目的首次部署。自主對(duì)象維護(hù)特性可自動(dòng)執(zhí)行基于策略的管理和維護(hù)功能,如表重構(gòu)、統(tǒng)計(jì)信息收集和數(shù)據(jù)庫(kù)備份。高可用性災(zāi)難恢復(fù)和客戶機(jī)重路由特性實(shí)現(xiàn)了具備隨選能力的企業(yè)所需的24*7信息可用性和恢復(fù)力。此外,DB2 UDB 提供與 Java/Eclipse 和 Microsoft .NET IDE的深入集成或插件。
DB2 UDB結(jié)構(gòu)拓?fù)鋱D
#p#
SYBASE ASE
ASE性能的提高是建立在虛擬服務(wù)器架構(gòu)上的,這是 Sybase 獨(dú)有的體系結(jié)構(gòu)。當(dāng)前的ASE版本是ASE15。與操作系統(tǒng)和相關(guān)軟件保持獨(dú)立讓ASE15可以更智能化地進(jìn)行系統(tǒng)自我調(diào)優(yōu)。VSA只需要很少的內(nèi)存資源和內(nèi)部交換開(kāi)銷(xiāo),所以ASE15可以管理大量的聯(lián)機(jī)用戶。能夠使ASE提高性能并控制成本的最主要原因是它采用了專(zhuān)利技術(shù)的、自調(diào)整的優(yōu)化器和查詢引擎。它可以智能地調(diào)整復(fù)雜的查詢操作并忽略那些未包含相關(guān)信息的分區(qū)上的數(shù)據(jù)。ASE15還通過(guò)一系列用來(lái)管理和診斷數(shù)據(jù)庫(kù)服務(wù)器的新特性來(lái)降低運(yùn)營(yíng)成本。
ASE15 擁有高可靠性和極低的運(yùn)行風(fēng)險(xiǎn)。個(gè)人數(shù)據(jù)的安全性是ASE特別關(guān)注的領(lǐng)域,使用了一種無(wú)需修改應(yīng)用的獨(dú)特加密系統(tǒng)。當(dāng)應(yīng)用和安全軟件進(jìn)行連接時(shí)將降低實(shí)施成本并避免產(chǎn)生新的安全漏洞。ASE15 還通過(guò)一種簡(jiǎn)單、直接和可編程的腳本語(yǔ)言來(lái)方便進(jìn)行加密和解密。在解決意外停機(jī)問(wèn)題時(shí),ASE15 在其已證實(shí)的可靠性和高系統(tǒng)利用率的基礎(chǔ)上,增加了許多顯著的功能來(lái)增強(qiáng)系統(tǒng)的可用性和災(zāi)難恢復(fù)過(guò)程。新的存儲(chǔ)引擎支持四種數(shù)據(jù)分區(qū)方式,在不同的物理設(shè)備上進(jìn)行不同的分區(qū)操作。能幫助數(shù)據(jù)庫(kù)管理員迅速地建立冗余災(zāi)難恢復(fù)節(jié)點(diǎn)并在異構(gòu)的數(shù)據(jù)平臺(tái)上同步數(shù)據(jù)庫(kù)。
ASE15系統(tǒng)新的查詢和存儲(chǔ)引擎被設(shè)計(jì)用于支持下一代網(wǎng)格計(jì)算和集群技術(shù)。它結(jié)合了充分利用數(shù)據(jù)分區(qū)技術(shù)的查詢處理機(jī)制和適用于解決集群?jiǎn)栴}的優(yōu)化器技術(shù)。同時(shí)ASE15為事件驅(qū)動(dòng)的企業(yè)提供了一個(gè)絕好的數(shù)據(jù)庫(kù)平臺(tái)。與web services 和 XML的架構(gòu)將減少系統(tǒng)內(nèi)部的相互依賴性,并為應(yīng)用開(kāi)發(fā)提供更大的靈活性。
ICX-UDS
ICX-UDS不受基于數(shù)據(jù)庫(kù)引擎的集群技術(shù)限制,可以支持不同的數(shù)據(jù)庫(kù)。
它類(lèi)似通常的代理服務(wù)器。把ICX放置在關(guān)鍵的網(wǎng)絡(luò)路徑上,監(jiān)聽(tīng)數(shù)據(jù)庫(kù)系統(tǒng)流量。ICX網(wǎng)關(guān)將自動(dòng)過(guò)濾出無(wú)狀態(tài)的查詢?cè)L問(wèn),并將負(fù)載均衡到所有服務(wù)器上。在這里,網(wǎng)關(guān)就象一個(gè)在線“編譯器”,它將所有對(duì)數(shù)據(jù)庫(kù)的更新操作發(fā)送到所有數(shù)據(jù)庫(kù)上執(zhí)行,而將無(wú)狀態(tài)的查詢操作只發(fā)送到其中某一數(shù)據(jù)庫(kù)服務(wù)器上。
對(duì)于統(tǒng)計(jì)報(bào)表和數(shù)據(jù)挖掘類(lèi)應(yīng)用,可以通過(guò)復(fù)制和只讀去獲得更快的處理速度。還能指定更多的只讀來(lái)負(fù)載均衡。ICX 網(wǎng)關(guān)的容錯(cuò)可以通過(guò)備份網(wǎng)關(guān)來(lái)達(dá)到。加載一個(gè)非同步的數(shù)據(jù)庫(kù)可以造出不影響主服務(wù)機(jī)群的近于實(shí)時(shí)的數(shù)據(jù)源。
ICX 網(wǎng)關(guān)和負(fù)載均衡器配置示意圖
應(yīng)用點(diǎn)評(píng)
Oracle RAC和Oracle數(shù)據(jù)庫(kù)提供的特定新管理性增強(qiáng)功能實(shí)現(xiàn)了企業(yè)網(wǎng)格。各種規(guī)模的企業(yè)都可以采用Oracle RAC來(lái)支持各類(lèi)應(yīng)用程序。
企業(yè)網(wǎng)格采用大型標(biāo)準(zhǔn)化商用組件配置:處理器、網(wǎng)絡(luò)和存儲(chǔ)器。利用Oracle RAC的高速緩存合并技術(shù),Oracle數(shù)據(jù)庫(kù)實(shí)現(xiàn)了最高可用性和可伸縮性?,F(xiàn)在,利用Oracle數(shù)據(jù)庫(kù)和Oracle RAC將大幅降低了運(yùn)行成本,進(jìn)一步增強(qiáng)了靈活性,其動(dòng)態(tài)提供節(jié)點(diǎn)、存儲(chǔ)器、CPU和內(nèi)存的特性可以更輕松、高效地保持服務(wù)級(jí)別,而通過(guò)提高的利用率又進(jìn)一步降低了成本。企業(yè)網(wǎng)格是未來(lái)的數(shù)據(jù)中心,使企業(yè)具備更高的適應(yīng)能力、前瞻性和敏捷性。
集群技術(shù)隨著服務(wù)器硬件系統(tǒng)與網(wǎng)絡(luò)操作系統(tǒng)的發(fā)展將會(huì)在可用性、高可靠性、系統(tǒng)冗余等方面逐步提高。我們匯集了市場(chǎng)上的主流產(chǎn)品,并從分析性能指標(biāo)的角度出發(fā),對(duì)產(chǎn)品進(jìn)行了簡(jiǎn)要評(píng)價(jià)。
Sybase ASE是一個(gè)深受用戶歡迎的高性能數(shù)據(jù)庫(kù),它具有一個(gè)開(kāi)放的、可擴(kuò)展的體系結(jié)構(gòu),易于使用的事務(wù)處理系統(tǒng),以及低廉的維護(hù)成本。
ASE可支持傳統(tǒng)的、關(guān)鍵任務(wù)的OLTP和DSS應(yīng)用,并且滿足Internet應(yīng)用的發(fā)展需要,Sybase可以很好地滿足關(guān)鍵任務(wù)的企業(yè)業(yè)務(wù)應(yīng)用的需求,提供數(shù)據(jù)庫(kù)可靠性、集成性和高性能。ASE有效的多線索結(jié)構(gòu),內(nèi)部并行機(jī)制和有效的查詢優(yōu)化技術(shù)提供了出色性能和可伸縮性;還可提供先進(jìn)的企業(yè)集成、強(qiáng)健和數(shù)據(jù)訪問(wèn)與數(shù)據(jù)移動(dòng)技術(shù),支持跨越遠(yuǎn)程Sybase和non-Sybase數(shù)據(jù)庫(kù)的分布事務(wù)和查詢。ASE進(jìn)一步擴(kuò)展了這些功能,通過(guò)分布信息和管理商業(yè)事務(wù),支持通過(guò)企業(yè)信息門(mén)戶對(duì)商業(yè)系統(tǒng)進(jìn)行個(gè)性化的用戶訪問(wèn)。
MSCS對(duì)于諸如電子郵件服務(wù)器、數(shù)據(jù)庫(kù)應(yīng)用程序之類(lèi)的應(yīng)用程序,是一種良好的運(yùn)行方式。
假設(shè)您決定在一個(gè)4節(jié)點(diǎn)MSCS群集上運(yùn)行Microsoft Exchange 2000 Server。當(dāng)安裝MSCS軟件以及適用于群集的Exchange 2000版本后,您可以對(duì)群集進(jìn)行配置,以便使Exchange 2000能夠在主要節(jié)點(diǎn)發(fā)生故障時(shí)在備份節(jié)點(diǎn)上進(jìn)行故障恢復(fù)。當(dāng)故障發(fā)生時(shí),主服務(wù)器上肯定存在處于打開(kāi)狀態(tài)的用戶會(huì)話,然而,MSCS能夠在不丟失任何數(shù)據(jù)的情況下快速、自動(dòng)的完成故障恢復(fù)。備份節(jié)點(diǎn)將從故障節(jié)點(diǎn)上接替工作負(fù)載及相關(guān)數(shù)據(jù),并繼續(xù)為用戶提供服務(wù)。
ICX的最大優(yōu)點(diǎn)是在數(shù)據(jù)庫(kù)集群技術(shù)面臨的挑戰(zhàn)上有了新的探索,此項(xiàng)基于中間件的數(shù)據(jù)庫(kù)集群技術(shù)為獲得具有高可擴(kuò)性的高性能數(shù)據(jù)庫(kù)提供了一條切實(shí)可行的途徑,同時(shí)能靈活地適應(yīng)未來(lái)的技術(shù)變化。
這種中間件復(fù)制技術(shù)可位于關(guān)鍵的網(wǎng)絡(luò)路徑上,監(jiān)聽(tīng)所有進(jìn)出數(shù)據(jù)庫(kù)系統(tǒng)的流量,方便地提供防火墻和其它安全服務(wù),保護(hù)物理的數(shù)據(jù)庫(kù)服務(wù)器。通過(guò)多個(gè)服務(wù)器的并發(fā)處理很容易地隱藏了處理的延遲。實(shí)時(shí)并行同步交易復(fù)制:一旦我們突破了實(shí)時(shí)并行同步交易復(fù)制的技術(shù)障礙,用戶就能通過(guò)由多個(gè)數(shù)據(jù)庫(kù)服務(wù)器構(gòu)成的集群來(lái)獲得高性能,高可用性和高安全性。
DB2 UDB是一個(gè)可以隨企業(yè)增長(zhǎng)的數(shù)據(jù)庫(kù)。當(dāng)對(duì)網(wǎng)站的事務(wù)需求達(dá)到峰值時(shí)它可以迅速響應(yīng),它可以進(jìn)行擴(kuò)展以容納分布在許多不同數(shù)據(jù)庫(kù)中的數(shù)量不斷增長(zhǎng)的信息。
隨著信息基礎(chǔ)結(jié)構(gòu)從一個(gè)處理器發(fā)展到多個(gè)處理器再到高度并行的多個(gè)群集,它也隨之?dāng)U展。將分區(qū)技術(shù)和群集技術(shù)集成到新的 DB2 UDB Enterprise Server Edition 中意味著該版本很靈活。DB2 UDB還添加了自主數(shù)據(jù)庫(kù)技術(shù),它使數(shù)據(jù)庫(kù)管理員可以選擇使用增強(qiáng)的自動(dòng)化技術(shù)來(lái)配置、調(diào)優(yōu)和管理他們的數(shù)據(jù)庫(kù)。自主數(shù)據(jù)庫(kù)管理意味著管理員可以在管理日常任務(wù)上花費(fèi)較少的時(shí)間。表的多維群集減輕了 DBA 創(chuàng)建索引的工作負(fù)擔(dān),同時(shí)提供了數(shù)據(jù)群集以快速查詢。DB2內(nèi)置的已規(guī)劃的和未規(guī)劃的可用性能力確保了業(yè)務(wù)應(yīng)用程序在任何時(shí)候都可用。諸如索引重建、索引創(chuàng)建和表裝載之類(lèi)的聯(lián)機(jī)實(shí)用程序以及可以不停止數(shù)據(jù)庫(kù)進(jìn)行更改的配置參數(shù),都意味著改進(jìn)的性能和高可用性。
【相關(guān)鏈接】
理想的數(shù)據(jù)庫(kù)集群應(yīng)具備的特點(diǎn)
提高速度:只通過(guò)簡(jiǎn)單地增加數(shù)據(jù)庫(kù)服務(wù)器就能相對(duì)提高數(shù)據(jù)庫(kù)處理速度。
數(shù)據(jù)同步:在任何時(shí)刻需要有多個(gè)隨時(shí)可用的實(shí)時(shí)同步數(shù)據(jù)服務(wù)。最好有多個(gè)異地的同步數(shù)據(jù)服務(wù)。
安全保證:除了密碼保護(hù)之外,我們最好能控制企業(yè)內(nèi)部對(duì)數(shù)據(jù)庫(kù)的非法訪問(wèn)。
可擴(kuò)展性:應(yīng)保證我們能任意增大數(shù)據(jù)集而沒(méi)有對(duì)可用性產(chǎn)生負(fù)面影響。
一般來(lái)說(shuō),有關(guān)數(shù)據(jù)庫(kù)集群的技術(shù)都非常龐雜。更具挑戰(zhàn)性的是,實(shí)際應(yīng)用要求在提高速度、數(shù)據(jù)同步、安全保證、可擴(kuò)展性方面的指標(biāo)能同時(shí)提升,而不是單純提升某一指標(biāo)而犧牲其他指標(biāo)。全面提升這些技術(shù)指標(biāo)是數(shù)據(jù)庫(kù)集群技術(shù)都將面臨的重大課題。
【名詞解釋】
集群:是一組通過(guò)協(xié)同工作方式運(yùn)行同一套應(yīng)用程序并針對(duì)客戶端及應(yīng)用程序提供單一系統(tǒng)映像的獨(dú)立計(jì)算機(jī)。集群技術(shù)的目標(biāo)在于通過(guò)多層網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)一步提高伸縮能力、可用性與可靠性。
可伸縮性:是指一臺(tái)計(jì)算機(jī)在維持可接受性能的前提下處理不斷提高的工作負(fù)載的能力。
可用性:是指存在質(zhì)量、備用能力、獲取簡(jiǎn)便性以及可訪問(wèn)能力。
可靠性:是指系統(tǒng)牢固程度。
【編輯推薦】