搭建Oracle高可用數(shù)據(jù)庫環(huán)境_第1頁
搭建Oracle高可用數(shù)據(jù)庫環(huán)境_第2頁
搭建Oracle高可用數(shù)據(jù)庫環(huán)境_第3頁
搭建Oracle高可用數(shù)據(jù)庫環(huán)境_第4頁
搭建Oracle高可用數(shù)據(jù)庫環(huán)境_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

搭建Oracle高可用(HA)數(shù)據(jù)庫環(huán)境2008-05-0810:4524*7(有些叫法也為24*7*365)的高可用系統(tǒng)越來越多的受到廣泛重視與應(yīng)用,那是因為在實際環(huán)境中,不間斷的系統(tǒng)代表的就是不間斷的義務(wù)收入。但是?怎么樣搭建與治理24*7的高可用環(huán)境??各種各樣的高可用環(huán)境之間到底有什么差別??我們是否適合于哪種環(huán)境??現(xiàn)在高可用環(huán)境的主要方式以及以后的發(fā)展趨勢是什么?這些話題,都是決策者與實施者都應(yīng)當(dāng)考慮的,也是本文所探討的,我們需要搭建一個怎么樣的高可用環(huán)境,才能真正做到最適合。一、什么是高可用(HighAvailability)在高可用的解釋方面,有人給出了如下的詮釋:系統(tǒng)失敗或崩潰(systemfaultsandcrashes)應(yīng)用層或者中間層錯誤(applicationandmiddlewarefailures)網(wǎng)絡(luò)失敗(networkfailures)介質(zhì)失敗,一般指存放數(shù)據(jù)的媒體故障(mediafailures)人為失誤(HumanError)容災(zāi)(Disastersandextendedoutages)計劃宕機與維護(Planneddowntime,maintenanceandmanagementtasks)可見,高可用不僅僅包含了系統(tǒng)本身故障,應(yīng)用層的錯誤,人為錯誤等等,還應(yīng)當(dāng)包括數(shù)據(jù)冗余、容災(zāi)以及計劃的維護時間,也就是說,一個真正的高可用環(huán)境,不僅僅是能避免系統(tǒng)本身的問題,還應(yīng)當(dāng)能防止天災(zāi)人禍,以及有一個簡單可靠的系統(tǒng)維護方法(如微碼升級、軟件升級等等計劃停機維護)。現(xiàn)在高可用的計算方法一般以年在線率來計算,如規(guī)定一年之中的可用環(huán)境要達到99.95%,那么24*365*(1-99.95%)=4.38小時(包括維護時間)。那么假定一個系統(tǒng)本身一年之中故障時間是1小時,但是計劃維護時間卻花了20小時,那么這個系統(tǒng)也不能算是一個滿足設(shè)計要求的高可用環(huán)境?,F(xiàn)階段使用環(huán)境中,基本沒有真正的100%的在線環(huán)境,或者說,假如達到100%的在線能力,將花費非常多的代價,所以一般能達到99.95%以上的可用性的環(huán)境,一般都可以認為是高可用環(huán)境。高可用性的在線率(可用級別)與停機時間可以參考如圖1-11所示的對照表:對于高可用性在線效率的計算,我們可以參考如下方法:圖1在公司收益與投入成本計算方面取得一個平衡,則是我們所希望的在線效率,但是收益與成本的計算方法則是決策者與實施者需要著重考慮的問題了,也是我們下面希望能試圖解釋的問題。二、Oracle高可用相關(guān)功能的產(chǎn)品概述因為高可用的范圍定義太廣泛,本文我們只討論與Oracle數(shù)據(jù)庫有關(guān)系的高可用設(shè)計,如數(shù)據(jù)庫主機的錯誤,數(shù)據(jù)所在的存儲錯誤,介質(zhì)損壞以及主機與數(shù)據(jù)的冗余保護等等,并不討論應(yīng)用層的設(shè)計,Oracle提供支持highavailability相關(guān)產(chǎn)品主要有下面幾種:OracleParallelServer(8i)/RealApplicationCluster(9i/10g)OracleStandbyDatabase(8i)/OracleDataGuard(9i/10g)OralceAdvancedReplication(8i)/OracleStream(9i/10g)OracleServerHAOther:Mv/RMAN/OracleLogMiner/OracleFlashbackQuery(9/10gi)等等,還有其他很多小的功能,如在線表的重定義,新的安全審計功能等,也都是為在線系統(tǒng)而設(shè)計的,但是,我們這里主要只考慮構(gòu)架方面的高可用設(shè)計,也就是與成本有關(guān)系的高可用設(shè)計,怎么樣達到成本與收益的最大平衡。所以,我們將主要討論的是OracleOPS/RAC、Standby/Ddataguard、AdvancedReplocation/Stream以及與OracleServer相關(guān)的OSHA(雙機)。1、OPS/RACOPS/RAC最原始的設(shè)計初衷就是system/applicationhighavailability。與其他產(chǎn)品相比較:OPS/RAC是多個服務(wù)器的cluster,組成具有更大計算處理能力與故障處理能力的集群。cluster里面不同的node使用一個(一般是一個)或多個oracleinstances與一個database連接(SharedStorage)o主要的技術(shù)特點:database所有的datafiles是建立在共享存儲(SharedStorage)上面的,一般可以采用raw設(shè)備,共享文件系統(tǒng)或者是ASM(10g提供),因此在技術(shù)方面對OS的設(shè)置有很高的依靠性,需要有OS支持的cluster軟件。OPS/RAC在共享存儲方面并沒有冗余保護,不具備在共享存儲陣列損壞的情況下具有切換的能力,因此mediafailure方面,要依靠RAID(redundantarrayofineXPensivedisk)Subsystem、LV鏡相(LVMirror)、卷復(fù)制(VolumeReplication)或者是Standby/Dataguard來實現(xiàn)數(shù)據(jù)的冗余保護。該技術(shù)是Oracle近來主推的技術(shù),非凡是10g以后的網(wǎng)格計算與線型擴展能力,在電信、移動、銀行行業(yè)使用廣泛。假如還是老的OPS,則不建議再使用,但是9i以后的Rac技術(shù)逐漸成熟,可以使用在高可用環(huán)境下,但是其治理成本與技術(shù)的復(fù)雜性,則也是需要考慮的。2、AdvancedReplication/StreamAdvancedReplication的設(shè)計初是分散異地的applicationAccessdatabaselocally。這種技術(shù)可以將一個數(shù)據(jù)庫中的objects復(fù)制到另一數(shù)據(jù)庫中。假如是整個數(shù)據(jù)庫的復(fù)制,也可用于高可用環(huán)境。從Oracle9i開始,Oracle更傾向使用Stream的技術(shù),通過對歸檔日志的挖掘,可以在對主系統(tǒng)沒有任何壓力的情況下,實現(xiàn)對數(shù)據(jù)庫的objects甚至整個數(shù)據(jù)庫的同步。主要的技術(shù)特點:技術(shù)相對靈活,可以對單獨的object,或者是整個數(shù)據(jù)庫進行復(fù)制,而且作為stream,復(fù)制的壓力更小,對主庫沒有壓力,聞名的復(fù)制軟件shareplex就是采用類似的技術(shù)進行數(shù)據(jù)的復(fù)制的??梢詫崿F(xiàn)數(shù)據(jù)庫主機以及共享存儲的完全冗余保護,甚至是跨地域的容災(zāi)保護,在很多比較大型的在線系統(tǒng)中,可以用該技術(shù)實現(xiàn)系統(tǒng)的讀寫分離,通過該技術(shù)把寫站點的數(shù)據(jù)復(fù)制到多個讀站點,大大提高系統(tǒng)的可用性與安全性。因為AdvancedReplication與Stream的不成熟性與技術(shù)復(fù)雜性,該技術(shù)沒有被廣泛的使用,但是其對應(yīng)軟件shareplex使用還是瞞廣泛的,不過因為其昂貴的價格,則是需要考慮其搭建成本的。3、Standby/DataGuardStandbydatabase/Dataguard是ORACLE推出的一種高可用性數(shù)據(jù)庫方案,在主節(jié)點與備用節(jié)點間通過日志同步來保證數(shù)據(jù)的同步,備用節(jié)點作為主節(jié)點的備份,可以實現(xiàn)快速切換與災(zāi)難性恢復(fù)。Oracle從7.3才開始支持standbydatabaseo在9i開始,發(fā)展為dataguard,并支持MAXIMIZEPROTECTION、MAXIMIZEAVAILABILITY、MAXIMIZEPERFORMANCE的三種保護模式,可以實現(xiàn)自由的手工主備切換,實現(xiàn)高可用的條件,假如配置合理,可以實現(xiàn)部分的自動切換。從Oracle9i開始,也開始支持邏輯standby,邏輯standby的原理跟Stream復(fù)制相差不大,可以歸結(jié)到Stream中。主要的技術(shù)特點:可以實現(xiàn)數(shù)據(jù)庫主機以及共享存儲的完全冗余保護,該冗余甚至可以跨地域,做成容災(zāi)保護,另外,主節(jié)點必須運行在歸檔模式下,并且可能要forcelogging,保證備用節(jié)點的數(shù)據(jù)正確性。主備用節(jié)點對OS的環(huán)境要求比較高,必須要是相同的OS環(huán)境(相差一定的beta版本一般關(guān)系不大),而且數(shù)據(jù)庫環(huán)境最好也一致。除了最大保護模式外,其它模式下假如主站點的存儲損壞而導(dǎo)致備用站點進行失敗切換的時候,需要注重數(shù)據(jù)的丟失問題,務(wù)必同步完主站點當(dāng)前的聯(lián)機日備用節(jié)點的主機與存儲基本不能提供訪問,僅僅能提供只讀查詢,所以該技術(shù)也有嚴重的資源浪費,不過該技術(shù)因為成本比較低,治理方便,技術(shù)成熟,所以被廣泛使用。4、OS相關(guān)HAOracleServerHA是基于OS的技術(shù),采用OS支持的ClusterSoft來保證主機的冗余保護,跟Rac一樣,不能保證共享存儲的高可靠性。它的基本架構(gòu)共分兩種模式:雙機互備援(DualActive)模式和雙機熱備份(HotStandby)模式,對于DualActive模式,雙機都是正常工作的,但是工作業(yè)務(wù)不同,在一個主機故障時,切換到另外一個主機上;HotStandby模式則只有一個機器工作,另外一個機器處于接管狀態(tài)。不管是哪種模式,Cluster都可以正確的檢測到系統(tǒng)異常并自動進行失敗切換,假如是DualActive模式,則需要注重當(dāng)兩個業(yè)務(wù)都切換到一個server上的時候,該機器是否能承載雙份的壓力。主要的技術(shù)特點:與Rac一樣,database所有的datafiles是建立在共享存儲上面的,存儲的冗余保護則需要依靠其它技術(shù)。HA的技術(shù)簡單成熟,所以在實際使用中,也能被廣泛采用,但是,對主機資源的浪費也最為嚴重,基本上要保證有對等的資源處于等待狀態(tài)。三、Oracle高可用相關(guān)功能的具體說明1、OPS/RACOPS/RAC通過兩個或多個節(jié)點的cluster,多個節(jié)點之間,采用高速通信鏈路連接,來解決數(shù)據(jù)庫的高可用性,在OPS/RAC中,每個節(jié)點都可以被應(yīng)用端訪問并可以自動負載平衡。假如其中一個節(jié)點發(fā)生故障,所有的節(jié)點將自動切換到另外一個(或幾個)節(jié)點上??梢詫崿F(xiàn)動態(tài)應(yīng)用的切換以及數(shù)據(jù)庫服務(wù)器及時的失敗處理,在server的高可用方面提供最高保護。但是OPS/RAC并不對磁盤,陣列提供保護的特性,假如發(fā)生介質(zhì)的物理損壞,將可能導(dǎo)致服務(wù)器的宕機。所以我們可以對OPS/RAC進行進一步的保護,如采用好的RAID方式(如RAID10),也可以在OS層面上對邏輯卷做鏡相或者復(fù)制,甚至采用RAC+DATAGUARD雙重保護。Rac已經(jīng)被廣泛使用在高可用環(huán)境,但是,除了硬件成本,cluster軟件成本,我們還需要考慮治理成本。如以下的一個4節(jié)點的Rac結(jié)構(gòu)中,4個節(jié)點可以同時被訪問,假如其中一個出現(xiàn)故障,該節(jié)點上的應(yīng)用將被自動切換到其它3個節(jié)點上,另外,通過SAN的存儲網(wǎng)絡(luò),實現(xiàn)數(shù)據(jù)的冗余保護。

應(yīng)用層.舟h服界器料圖2如圖1-14所示,最理想的RAC環(huán)境,其實就是10g以后提出來的網(wǎng)格計算的概念,在存儲層采用ASM實現(xiàn)可擴充性的存儲網(wǎng)格計算。ASM在這里可以實現(xiàn)數(shù)據(jù)的分布、鏡像及自動負載均衡等。圖1-14RAC網(wǎng)格計算

在中間層實現(xiàn)了數(shù)據(jù)庫的可伸縮性,例如可以根據(jù)負載情況增加或減少節(jié)點個數(shù),可以根據(jù)業(yè)務(wù)情況劃分業(yè)務(wù)的資源分配,可以根據(jù)每臺機器的負載實現(xiàn)負載均衡,可以充分利用每個節(jié)點的資源實現(xiàn)分布計算。最上層就是應(yīng)用的分布計算了,應(yīng)用分布對比數(shù)據(jù)庫分布要容易得多,一般采用廉價的PC服務(wù)器就可以實現(xiàn)線形擴展。不過,在高可用的RAC及網(wǎng)格計算模式下,多個應(yīng)用在一個RAC環(huán)境中,更有利于資源的合理分配。比如,在特定時期,可以讓財務(wù)系統(tǒng)使用更多的機器實現(xiàn)財務(wù)對賬計算,在另外一個時期,可能讓其他業(yè)務(wù)系統(tǒng)使用更多的資源計算。所以,理想的RAC以及網(wǎng)格計算,不需要關(guān)心數(shù)據(jù)庫是放在什么位置,數(shù)據(jù)庫是怎么運行的,只需要發(fā)出一個需求,讓網(wǎng)格返回一個結(jié)果而已,就像我們用電一樣,插上插頭,電燈就可以亮了。2、AdvancedReplication/StreamAdvancedReplication/Stream用于高可用,一般是指對數(shù)據(jù)庫的整個復(fù)制,假如數(shù)據(jù)庫在異地,也還可以用于容災(zāi),所以,假如該技術(shù)用的好,是一個非常不錯的選擇。錯的選擇。圖3如上圖的結(jié)構(gòu)中,主站點可以在城東,被復(fù)制站點可以在城西或者更遠的地方,數(shù)據(jù)通過城市網(wǎng)絡(luò)傳向被復(fù)制站點,在stream中,傳送的可以是被分析過的LCRanydata數(shù)據(jù)結(jié)構(gòu),到目標數(shù)據(jù)庫的時候再解析成對應(yīng)的DML語句實現(xiàn)同步。這樣的話,主站點與被復(fù)制的站點可以分別的被應(yīng)用訪問,雖然被復(fù)制站點可能比主站點的數(shù)據(jù)要延遲一些。正因為AdvancedReplication/Stream既實現(xiàn)了高可用,又實現(xiàn)了容災(zāi),在大型的在線電子商務(wù)網(wǎng)站中,一般使用成熟的shareplex軟件實現(xiàn)讀寫分離,讀的站點可以分布在世界各地,既大大提高了網(wǎng)站系統(tǒng)的可用性,又大大提高了數(shù)據(jù)的安全性。

3、Standby/DataGuardStandby/Dataguard因為技術(shù)簡單成熟,成本低廉(Oracle自帶的功能,不需要單獨購買),是廣泛采用的一種數(shù)據(jù)庫的高性能與容災(zāi)方案,假如采用不同保護級別可能會有不同的性能結(jié)果,如想不丟失數(shù)據(jù),則可能會影響性能,假如想最好的性能,則一定注重保證在主節(jié)點完全故障的時候,備用節(jié)點不會丟失數(shù)據(jù)。閽I岫WrHiftAfJMt牲F器1眥£ujitbv--Xi.,Hh圖4備用數(shù)據(jù)庫可以認為是一個主數(shù)據(jù)庫的鏡相,一個處于不斷恢復(fù)日志中的主數(shù)據(jù)庫。從9i開始,備用數(shù)據(jù)庫又分為物理備用數(shù)據(jù)庫與邏輯備用數(shù)據(jù)庫,我們這里只討論物理備用數(shù)據(jù)庫。Standby/Dataguard實現(xiàn)了數(shù)據(jù)庫的高可用以及數(shù)據(jù)的異地容災(zāi),與Advanced閽I岫WrHiftAfJMt牲F器1眥£ujitbv--Xi.,Hh4、OS相關(guān)HAHA很類似于RAC,兩種方式,都需要兩個Server,一個閑置。在主機crash的情況下,都可以提供某種程度的恢復(fù),保持系統(tǒng)可用。不過一個是OSVendor的solution,一個是Oracle的solution,如,在一個一備三的系統(tǒng)結(jié)構(gòu)中:向川L,w曲眼務(wù)嵩群圖5在以上的結(jié)構(gòu)中,正在被使用的數(shù)據(jù)庫服務(wù)器有3臺,其中3臺中任何一臺發(fā)生故障,可以被一臺備用主機接管,等待發(fā)生故障的機器修復(fù),再手工切換會原來的結(jié)構(gòu)。HA的最好好處就是可以解決服務(wù)器的單點故障的問題,如機器故障,與Rac一樣,并不能解決磁盤故障問題或者是陣列故障問題。所以HA也必須采用附加的備份機制如LV鏡相與卷復(fù)制,或配套使用oraclestandby。HA的機制起源比較早,發(fā)展到現(xiàn)在已經(jīng)日趨成熟,在實際安例中,使用還是比較廣泛的,但是它必須有一半的資源處于等待狀態(tài),所以資源浪費跟standby一樣,比較嚴重。5、最大可用性體系結(jié)構(gòu)(MaximumAvailabilityArchitecture,簡稱MAA)Oracle推出MAA計劃,也表示了它對高可用性方面的重視,特別是從Oracle9i/10g/11g看來,很多特性都是為高可用性準備的??梢赃@么說,Oracle8i/9i開始出現(xiàn)很多高可用的特性,而在Oracle10g/11g中,它們更完善、更可靠了。圖1-13是一個典型的OracleMAA體系結(jié)構(gòu)。圖1-13典型的OracleMAA結(jié)構(gòu)在該體系結(jié)構(gòu)中,數(shù)據(jù)庫采用了RAC+ASM+STANDBY的結(jié)構(gòu)體系,應(yīng)用層采用Oracle自己的ApplicationServer。用戶通過負載均衡設(shè)備訪問不同的Oracle應(yīng)用服務(wù)器,而應(yīng)用服務(wù)器通過自動負載均衡及Failover特性訪問當(dāng)前的主數(shù)據(jù)庫。當(dāng)主站點出現(xiàn)故障的時候,Dataguard可以手工或者是自動切換到備用端,應(yīng)用服務(wù)器的訪問也將自動被切換到備用站點,以保證系統(tǒng)的最大可用性與業(yè)務(wù)連續(xù)性。Oracle定義MAA是一個簡單、冗余而健壯的結(jié)構(gòu),它可以實現(xiàn)故障的預(yù)防、探測和恢復(fù)。MAA結(jié)構(gòu)主要包含以下組件:RealApplicationClusters(RAC)利用多個互連計算機的處理能力。RAC軟件和稱作群集的硬件集合聯(lián)合了各個組件的處理能力,從而建立強健的計算環(huán)境并提供:可用性一提供近乎連續(xù)的數(shù)據(jù)訪問,將硬件和軟件組件故障產(chǎn)生的中斷降低到最少??缮炜s性一允許向群集添加附加的節(jié)點,以提高處理能力,而不必重新分布數(shù)據(jù)或更改用戶應(yīng)用程序。易管理性一提供一個單獨的系統(tǒng)映像以便管理。另外RAC還支持故障切換。OracleDataGuardOracleDataGuard在另一個地方上管理一個產(chǎn)品數(shù)據(jù)庫的同步副本。OracleDataGuard支持遠程歸檔、恢復(fù)以及switchover和failover,同時還提供了災(zāi)難保護和Read-onlyforReporting等。冗余中間/應(yīng)用層應(yīng)用層由一組服務(wù)器為客戶端提供應(yīng)用服務(wù),整個應(yīng)用層功能可能分布在很多臺主機上,以集群的方式讓多臺主機提供相同的服務(wù),實現(xiàn)高可用性。冗余網(wǎng)絡(luò)結(jié)構(gòu)一個高可用的網(wǎng)絡(luò)地層可能會包含冗余的設(shè)備,如DNS服務(wù)器等,來實現(xiàn)主從節(jié)點的路由、負載均衡以及Failover時的物理層切換等。冗余存儲結(jié)構(gòu)現(xiàn)在的冗余存儲技術(shù)有很多,任何一種基本都可以滿足要求。四、Oracle高可用相關(guān)功能的對比說明與方案選擇通過以上的具體說明,我們描繪了Oracle數(shù)據(jù)庫在高可用性方面可以達到的效果以及特性,并且從原理上與構(gòu)架上,我們也可以分析到其成本(包括治理成本),再加上其技術(shù)的成熟程度以及使用程度,我們以一張表格來對照一下:品/對比-Scnrer林a切換4瞄職方式年成■西,不能①,不能顧4分輛福寄AflwancctiZSii1血時可能頑分手A不成熟Wgvwtfp可髓部.手工亭,&做「5erwer不能①,鐘,目如鬲L比較圖六注①:這里指單獨的使用該功能,但是假如與LVMirror/VolumeReplicat

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論