




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1、什么是cluster 一個(gè)cluster是由兩個(gè)或是多個(gè)獨(dú)立的、通過(guò)網(wǎng)絡(luò)連接的servers組成的。幾個(gè)硬件供應(yīng)商多年以來(lái)提供了Cluster性能的各種需求。一些Clusters僅僅為了提供高可用性的,在當(dāng)前活動(dòng)的node發(fā)生故障時(shí)轉(zhuǎn)移到次節(jié)點(diǎn)node。另一些是為了提供分布式的連接、工作的可擴(kuò)展性。另一個(gè)Cluster的共同特點(diǎn)是,對(duì)于一個(gè)應(yīng)用程序,它可以看做是一個(gè)單獨(dú)的server。同樣,管理幾個(gè)servers應(yīng)該盡可能像管理一個(gè)server一樣簡(jiǎn)單。Cluster管理器軟件提供了這種功能。 如果是single server的nodes,文件必須存儲(chǔ)在其各自node能訪問(wèn)的位置。存在有幾
2、個(gè)不同拓?fù)浣Y(jié)構(gòu)來(lái)解決數(shù)據(jù)訪問(wèn)的問(wèn)題,這主要依賴于Cluster設(shè)計(jì)的主要目標(biāo)。 相互連接時(shí)一個(gè)物理的網(wǎng)絡(luò)連接,作為每個(gè)Cluster節(jié)點(diǎn)直接的交互通信。 簡(jiǎn)而言之,一個(gè)Cluster就是一組獨(dú)立的servers,它們共同協(xié)作,組成一個(gè)single system。2、什么是Oracle real Application Cluster(RAC) RAC是一個(gè)軟件可以使你通過(guò)運(yùn)行多個(gè)依賴相同Database的Instance,使用Cluster硬件。數(shù)據(jù)庫(kù)files被存放在物理或是邏輯上連接每個(gè)節(jié)點(diǎn)的磁盤上。以便于每個(gè)活動(dòng)的Instance都可以對(duì)files進(jìn)行讀寫操作。 RAC軟件管理著數(shù)據(jù)的訪
3、問(wèn)。所以更改操作在Instances之間是被相互協(xié)調(diào)的,并且每個(gè)Instance看到的信息和數(shù)據(jù)鏡像都是一致的。 通過(guò)RAC結(jié)構(gòu),可以獲得冗余,從而使得即使在一個(gè)系統(tǒng)crash或是不可訪問(wèn)時(shí),應(yīng)用程序也可通過(guò)其他Instance訪問(wèn)Database。3、為啥使用RAC RAC可以高度利用標(biāo)準(zhǔn)的Cluster,降低模塊servers成本。 RAC自動(dòng)的提供了服務(wù)的工作量管理。應(yīng)用程序的服務(wù)可以被分組或分類,組成商業(yè)組件完成應(yīng)用工作任務(wù)。RAC中的服務(wù)可以是持續(xù)的、不間斷的Database操作,并為多Instance上的多個(gè)服務(wù)提供支持??梢栽O(shè)計(jì)services到一個(gè)或多個(gè)Instance上運(yùn)行,
4、并且交替Instances可以用于備份Instances。如果主Instance失敗,Oracle會(huì)將services從失敗的Instance節(jié)點(diǎn)移動(dòng)到活動(dòng)的可替代的Instance上。Oracle也會(huì)自動(dòng)的通過(guò)連接進(jìn)行數(shù)據(jù)裝載的平衡。 RAC利用多個(gè)廉價(jià)的computers共同提供Database的服務(wù),就像一個(gè)大的computer一樣,服務(wù)于只有大規(guī)模SMP才能提供的各種應(yīng)用。 RAC是基于共享磁盤結(jié)構(gòu)的,在需求上可以增加或縮減,而不需要人為的在Cluster中進(jìn)行數(shù)據(jù)的分隔。并且RAC可以簡(jiǎn)單的增加、移出Cluster中的servers。 4、Clusters和可擴(kuò)展性 如果使用對(duì)稱多處
5、理(symmetric multiprocessing SMP)機(jī)制能夠?qū)?yīng)用程序提供透明的服務(wù),則應(yīng)該使用RAC也可以得到同樣的效果,而不需要進(jìn)行應(yīng)用程序代碼的任何改動(dòng)。 當(dāng)一個(gè)節(jié)點(diǎn)發(fā)生失敗,RAC可以排除該Database Instance和node本身,從而保證Database的完整。下面是一些可擴(kuò)展性的例子: * 允許更多并發(fā)的批處理。 * 允許更大程度的并發(fā)執(zhí)行。 * 在OLTP系統(tǒng)中可以是連接的用戶大增。1)可擴(kuò)展性的層次:主要有四個(gè)層次 * hardware 的可擴(kuò)展性:相互連接性是它的關(guān)鍵,這一般依賴于較高的帶寬和較低的延遲。 * OS的可擴(kuò)展性:在OS中,同步方法可以決定系統(tǒng)
6、的可擴(kuò)展性。在一些情況下,硬件的潛在可擴(kuò)展性會(huì)因?yàn)镺S無(wú)力并發(fā)維持請(qǐng)求的多個(gè)資源而被丟失。 * Database管理系統(tǒng)的可擴(kuò)展性:在并發(fā)結(jié)構(gòu)中的一個(gè)關(guān)鍵因素是并發(fā)是由內(nèi)部影響的還是外部進(jìn)程影響的。此問(wèn)題的答案影響了同步的機(jī)制。 * 應(yīng)用層次上的可擴(kuò)展性:應(yīng)用程序必須被明確的設(shè)計(jì)為可擴(kuò)展的。當(dāng)系統(tǒng)中如果多數(shù)情況下,每個(gè)session都在更新相同的data,則可能產(chǎn)生瓶頸。這不僅是指RAC,對(duì)于single-instance系統(tǒng)也是一樣。 需要明確的是,如果任何一個(gè)層次沒有達(dá)到可擴(kuò)展性,不管其他層次可擴(kuò)展性多強(qiáng),并發(fā)的Cluster進(jìn)程都可能失敗??蓴U(kuò)展性不足的典型原因是共享資源的訪問(wèn)。這使得并
7、發(fā)的操作在此瓶頸上序列化執(zhí)行。這不僅僅是RAC中的局限,而是所有結(jié)構(gòu)中的局限性。 2)scaleup和speedup * scaleup是工作量和資源都成比例增加時(shí)能維持相同性能水平的能力(相應(yīng)時(shí)間) Scaleup=(volume parallel)/(volume original)time for ipc * speedup是指通過(guò)增加資源的數(shù)量完成固定的工作量,獲得執(zhí)行時(shí)間成比例的縮減的效果。 Speedup=(time original)/(time parallel)time for ipc 其中,ipc是進(jìn)程間通信的簡(jiǎn)寫interprocess communicationRAC
8、Architecture and Concepts 1、RAC軟件原理 在一個(gè)RAC Instance中,會(huì)見到一些普通Instance中不存在的后臺(tái)進(jìn)程,它們主要是用于維持Database在每個(gè)Instance中的一致性。管理全局資源,具體如下: * LMON:全局隊(duì)列服務(wù)監(jiān)控進(jìn)程Global Enqueue Service Monitor * LMD0:全局隊(duì)列服務(wù)守護(hù)進(jìn)程Global Enqueue Service Daemon * LMSx:全局緩沖服務(wù)進(jìn)程,x可以從0到j(luò)Global Cache Service Processes * LCK0:鎖進(jìn)程Lock process * D
9、IAG:診斷進(jìn)程Diagnosibility process 在Cluster層,可以找到Cluster Ready Services軟件的主要進(jìn)程,它們?cè)谒衅脚_(tái)上提供標(biāo)準(zhǔn)的Cluster接口,并實(shí)現(xiàn)高可用性的操作。在每個(gè)Cluster node上都可以看到如下的進(jìn)程: * CRSD和RACGIMON:用于高可用性操作的引擎。 * OCSSD:提供成員節(jié)點(diǎn)和服務(wù)組的訪問(wèn) * EVMD:事件檢測(cè)進(jìn)程,由oracle用戶運(yùn)行管理 * OPROCD:Cluster的監(jiān)控進(jìn)程 此外還存在幾個(gè)工具用于管理Cluster中全局層次上的各種資源。這些資源是ASM Instance、RAC Database
10、、Services和CRS應(yīng)用節(jié)點(diǎn)。本書中涉及的工具主要有Server Control(SRVCTL)、DBCA和Enterprise Manager。2、RAC軟件存儲(chǔ)原理 Oracle10g的RAC安裝分為兩個(gè)階段。第一階段是安裝CRS,其次是安裝帶有RAC組件的Database軟件并創(chuàng)建Cluster數(shù)據(jù)庫(kù)。CRS軟件使用的Oracle home必須不同于RAC軟件使用的home。盡管可以將Cluster中CRS和RAC軟件通過(guò)使用Cluster文件系統(tǒng)共享存儲(chǔ),但是軟件總是按一定規(guī)則安裝在每個(gè)節(jié)點(diǎn)的本地文件系統(tǒng)中。這支持在線補(bǔ)丁的升級(jí),并消除了單節(jié)點(diǎn)軟件造成的失敗。另外有兩個(gè)必須存儲(chǔ)在
11、共享的存儲(chǔ)設(shè)備中: * voting file:其本質(zhì)上是用于Cluster synchronization Services守護(hù)進(jìn)程進(jìn)行節(jié)點(diǎn)信息的監(jiān)控。大小約為20MB。 * Oracle Cluster Registry(OCR)文件:也是CRS關(guān)鍵的組成部分。用于維護(hù)在Cluster中高可用性組件的信息。例如,Cluster節(jié)點(diǎn)列表,Cluster數(shù)據(jù)庫(kù)Instance到節(jié)點(diǎn)的映射和CRS應(yīng)用資源的列表(如Services、虛擬內(nèi)部鏈接協(xié)議地址等)。此文件是通過(guò)SRVCTL類似的管理工具自動(dòng)維護(hù)的。其大小約100MB。 voting file和OCR file是不能被存儲(chǔ)在ASM中的,因
12、為它們必須在任何Oracle Instance啟動(dòng)前就可以被訪問(wèn)。并且,兩者必須是在冗余的、可靠的存儲(chǔ)設(shè)備中存放,如RAID。推薦最好的做法是將這些文件放在裸磁盤上。3、OCR的結(jié)構(gòu) Cluster的配置信息是在OCR中維護(hù)的。OCR依賴分布式的共享緩存結(jié)構(gòu)用于優(yōu)化關(guān)于Cluster知識(shí)庫(kù)的查詢。在Cluster中的每個(gè)節(jié)點(diǎn)都通過(guò)OCR進(jìn)程訪問(wèn)OCR緩存在其內(nèi)存中維護(hù)著一個(gè)副本。事實(shí)上在Cluster中,只有一個(gè)OCR進(jìn)程對(duì)共享存儲(chǔ)中的OCR進(jìn)行讀寫操作。此進(jìn)程負(fù)責(zé)刷新(refresh)其自己擁有的本地緩存以及Cluster中其他節(jié)點(diǎn)的OCR cache。對(duì)于涉及到Cluster知識(shí)庫(kù)的訪問(wèn),
13、OCR客戶端直接訪問(wèn)本地OCR進(jìn)程。當(dāng)客戶端需要更新OCR時(shí),它們將通過(guò)本地OCR進(jìn)程與那個(gè)扮演讀寫OCR文件的進(jìn)程進(jìn)行交互。 OCR客戶端應(yīng)用有:Oracle通用安裝器(OUI)、SRVCTL、企業(yè)管理器(EM)、DBCA、DBUA、NetCA和虛擬網(wǎng)絡(luò)協(xié)議助理(VIPCA)。此外,OCR維護(hù)管理著CRS內(nèi)部中定義的各種應(yīng)用程序的資源的依賴和狀態(tài)信息,特別是Database、Instance、Services和節(jié)點(diǎn)的應(yīng)用程序。 配置文件的名字是ocr.loc,并且配置文件變量是ocrconfig_loc。Cluster 知識(shí)庫(kù)的位置是不受限于裸設(shè)備的。可以將OCR放置在由Cluster fi
14、le system管理的共享存儲(chǔ)設(shè)備上。 note:OCR也可用于在ASM的單Instance中作為配置文件,每個(gè)節(jié)點(diǎn)有一個(gè)OCR。 4、RAC Database存儲(chǔ)原理 與single-Instance Oracle的存儲(chǔ)方式最主要的不同之處在于RAC存儲(chǔ)必須將所有RAC中數(shù)據(jù)文件存放在共享設(shè)備中(裸設(shè)備或是Cluster文件系統(tǒng))以便于訪問(wèn)相同Database的Instance能夠共享。必須為每個(gè)Instance創(chuàng)建至少兩個(gè)redo log組,并且所有的redo log組必須也存儲(chǔ)在共享設(shè)備中,從而為了crash恢復(fù)的目的。每個(gè)Instance的在線redo log groups被稱作一個(gè)
15、Instance的在線redo 線程。 此外,必須為每個(gè)Instance創(chuàng)建一個(gè)共享的undo表空間用于Oracle推薦的undo自動(dòng)管理特點(diǎn)。每個(gè)undo表空間必須是對(duì)所有Instance共享的,主要用于恢復(fù)的目的。 歸檔日志不能被存放在裸設(shè)備上,因?yàn)槠涿亲詣?dòng)產(chǎn)生的,并且每個(gè)是不一致的。因此需要存儲(chǔ)在一個(gè)文件系統(tǒng)中。如果使用Cluster file system(CFS),則可以在任何時(shí)間在任何node上訪問(wèn)這些歸檔文件。如果沒有使用CFS,就不得不使其他Cluster成員在恢復(fù)時(shí)那些歸檔日志是可用的,例如通過(guò)網(wǎng)絡(luò)文件系統(tǒng)(NFS)來(lái)實(shí)現(xiàn)。如果使用推薦的flash recovery ar
16、ea特性,則其必須被存儲(chǔ)在共享目錄下,以便于所有的Instance能夠訪問(wèn)。(共享目錄可以是一個(gè)ASM磁盤組,或是一個(gè)CFS)。5、RAC和共享存儲(chǔ)技術(shù) 存儲(chǔ)是網(wǎng)格技術(shù)中的關(guān)鍵組成部分。傳統(tǒng)上,存儲(chǔ)都直接依附在每個(gè)Server(directly attached to each individual Server DAS)上。在過(guò)去的幾年來(lái),更靈活的存儲(chǔ)出現(xiàn)并得到應(yīng)用,主要是通過(guò)存儲(chǔ)空間網(wǎng)絡(luò)或是正規(guī)的以太網(wǎng)來(lái)實(shí)現(xiàn)訪問(wèn)。這些新的存儲(chǔ)方式使得多個(gè)Servers訪問(wèn)相同的磁盤集合成為可能,在分布式環(huán)境中,可以獲得簡(jiǎn)單的存取。 storage area network(SAN)代表了數(shù)據(jù)存儲(chǔ)技術(shù)在這一
17、點(diǎn)的演進(jìn)。傳統(tǒng)上,C/S系統(tǒng)中,數(shù)據(jù)被存儲(chǔ)在Server內(nèi)部或是依附它的設(shè)備中。隨后,進(jìn)入了network attached storage(NAS)階段,這使得存儲(chǔ)設(shè)備與Server和直接連接它們的網(wǎng)絡(luò)向分離。它在SAN遵循的原則進(jìn)一步允許存儲(chǔ)設(shè)備存在于各自的網(wǎng)絡(luò)中,并直接通過(guò)高速的媒介進(jìn)行交換。用戶可以通過(guò)Server系統(tǒng)對(duì)存儲(chǔ)設(shè)備的數(shù)據(jù)進(jìn)行訪問(wèn),Server 系統(tǒng)與本地網(wǎng)絡(luò)(LAN)和SAN相互連接。 文件系統(tǒng)的選擇是RAC的關(guān)鍵。傳統(tǒng)的文件系統(tǒng)不支持多系統(tǒng)的并行掛載。因此,必須將文件存儲(chǔ)在沒有任何文件系統(tǒng)的裸卷標(biāo)或是支持多系統(tǒng)并發(fā)訪問(wèn)的文件系統(tǒng)中。 因此,三個(gè)主要的方法用于RAC的共享
18、存儲(chǔ)有: * 裸卷標(biāo):既是一些直接附加的裸設(shè)備,需要用于存儲(chǔ),并以block模式進(jìn)程操作。 * Cluster file system:也需要以block模式進(jìn)程存取。一個(gè)或多個(gè)Cluster file 系統(tǒng)可以被用于存儲(chǔ)所有的RAC文件。 * 自動(dòng)存儲(chǔ)管理(ASM):對(duì)于Oracle Database files,ASM是一個(gè)輕便的、專用的、最佳化的Cluster file system。6、Oracle Cluster file system Oracle Cluster file system(OCFS)是一個(gè)共享文件系統(tǒng),專門為Oracle RAC設(shè)計(jì)。OCFS排除了Oracle Da
19、tabase files被連接到邏輯磁盤上的需要,并使得所有的節(jié)點(diǎn)共享一個(gè)ORACLE Home,而不需每個(gè)node在本地有一個(gè)副本。OCFS卷標(biāo)可以橫跨一個(gè)或多共享disks,用于冗余和性能的增強(qiáng)。 下面時(shí)可放入OCFS中的文件類表: * Oracle software的安裝文件:在10g中,此設(shè)置只在windows 2000中支持。說(shuō)是后面的版本會(huì)提供在Linux中的支持,但我還沒具體看。 * Oracle 文件(控制文件、數(shù)據(jù)文件、redo logs文件,bfiles等) * 共享配置文件(spfile) * 在Oracle運(yùn)行期間,由Oracle創(chuàng)建的文件。 * voting和OCR文
20、件 Oracle Cluster file system對(duì)開發(fā)人員和用戶時(shí)免費(fèi)的。可從官方網(wǎng)站下載。7、自動(dòng)存儲(chǔ)管理(ASM) 是10g的新特性。它提供了一個(gè)縱向的統(tǒng)一管理的文件系統(tǒng)和卷標(biāo)管理器,專門用于建立Oracle Database 文件。ASM可以提供單個(gè)SMP機(jī)器的管理或是貫穿多個(gè)Oracle RAC的Cluster節(jié)點(diǎn)。 ASM無(wú)需再手動(dòng)調(diào)節(jié)I/O,會(huì)自動(dòng)的分配 I/O 負(fù)載到所有的可用資源中,從而優(yōu)化性能。通過(guò)允許增加Database大小而不需shutdown數(shù)據(jù)庫(kù)來(lái)調(diào)節(jié)存儲(chǔ)分配,來(lái)輔助DBA管理動(dòng)態(tài)數(shù)據(jù)庫(kù)環(huán)境。 ASM可以維護(hù)數(shù)據(jù)的冗余備份,從而提高故障的容錯(cuò)。它也可以被安裝到
21、可靠的存儲(chǔ)機(jī)制中。 8、選擇RAW或CFS * CFS的優(yōu)點(diǎn):對(duì)于RAC的安裝和管理非常簡(jiǎn)單;對(duì)RAC使用Oracle managed files(OMF);single Oracle軟件安裝;在Oracle data files上可以自動(dòng)擴(kuò)展;當(dāng)物理節(jié)點(diǎn)失敗時(shí),對(duì)歸檔日志的統(tǒng)一訪問(wèn)。 * 裸設(shè)備的使用:一般會(huì)用于CFS不可用或是不被Oracle支持的情況下;它提供了最好的性能,不需要在Oracle和磁盤之間的中間層;如果空間被耗盡,裸設(shè)備上的自動(dòng)擴(kuò)展將失?。籄SM、邏輯存儲(chǔ)管理器或是邏輯卷標(biāo)管理其可以簡(jiǎn)化裸設(shè)備的工作,它們也允許加載空間到在線的裸設(shè)備上,可為裸設(shè)備創(chuàng)建名字,從而便于管理。9、
22、RAC的典型Cluster棧 在Cluster中的每個(gè)節(jié)點(diǎn)都需要一個(gè)被支持的相互連接的軟件協(xié)議來(lái)支持內(nèi)部Instance的交互,同時(shí)需要TCP/IP支持CRS的輪詢。所有的UNIX平臺(tái)在千兆以太網(wǎng)上使用user datagram protocol(UDP)作為主要的協(xié)議并進(jìn)行RAC內(nèi)部Instance 的IPC交互。其他支持的特有協(xié)議包括用于SCI和Sunfire的連接交互的遠(yuǎn)程共享內(nèi)存協(xié)議和超文本協(xié)議,用于超光纖交互。在任何情況下,交互必須能被平臺(tái)的Oracle所辨識(shí)。 使用Oracle clusterware,可以降低安裝并支持并發(fā)癥。但如果用戶使用非以太交互,或開發(fā)了依賴clusterw
23、are的應(yīng)用程序在RAC上,可能需要vendor clusterware。 同交互連接一樣,共享存儲(chǔ)方案必須被當(dāng)前平臺(tái)的Oracle所辨識(shí)。如果在目標(biāo)平臺(tái)上,CFS可用,Database area和flash recovery area都可以被創(chuàng)建到CFS或ASM上。如果在目標(biāo)平臺(tái)上,CFS不可用,則Database area可以創(chuàng)建在ASM或是裸設(shè)備上(需要卷標(biāo)管理器)并且flash recovery area必須被創(chuàng)建在ASM中。10、RAC certification Matrix:它設(shè)計(jì)用于處理任何認(rèn)證問(wèn)題。可以使用matrix回答任何RAC相關(guān)的認(rèn)證問(wèn)題。具體使用步驟如下: * 連接
24、并登陸 * 點(diǎn)擊菜單欄的“certify and availability”按鈕 * 點(diǎn)擊“view certifications by product”連接 * 選擇RAC * 選擇正確的平臺(tái)11、必要的全局資源 一個(gè)single-Instance環(huán)境,鎖坐標(biāo)通向一個(gè)共享的資源就像表中的一行。lock避免了兩個(gè)進(jìn)程同事修改相同的資源。 在RAC環(huán)境中,內(nèi)部節(jié)點(diǎn)的同步時(shí)關(guān)鍵,因?yàn)樗S持著不同節(jié)點(diǎn)中各自進(jìn)程的一致性,避免其在同時(shí)修改相同的資源數(shù)據(jù)。內(nèi)部節(jié)點(diǎn)的同步確保每個(gè)Instance看到buffer cache中block的最近的版本。上圖中
25、顯示了當(dāng)不存在加鎖的情況。 1)全局資源的協(xié)調(diào) cluster操作要求在所有Instance中對(duì)控制共享資源的訪問(wèn)進(jìn)行同步。RAC使用Global Resource Directory來(lái)記錄cluster Database中資源的使用信息。Global Cache Service(GCS)和Global Enqueue Service(GES)管理GRD中的信息。 每個(gè)Instance在其本地的SGA中維護(hù)GRD的一部分。GCS和GES指定一個(gè)Instance管理特殊資源的所有信息,它被稱為資源的master。每個(gè)Instance都知道resource的Instance masters。 維護(hù)
26、RAC的活動(dòng)中的cache的依附性(cache coherency)是非常重要的。所謂cache coherency是保持在不同Oracle Instances中的多個(gè)block版本的一致性的技術(shù)。GCS通過(guò)所謂的cache融合算法來(lái)實(shí)現(xiàn)cache coherency。 GES管理所有非cache 融合算法的內(nèi)部Instance資源操作和Oracle入隊(duì)機(jī)制的狀態(tài)軌跡。GES主要的控制的資源是字典cache locks和library cache locks。同時(shí),它還對(duì)所有死鎖敏感的隊(duì)列和資源起到死鎖檢測(cè)的作用。2)Global cache coordination實(shí)例 假設(shè)某data bl
27、ock被第一個(gè)節(jié)點(diǎn)修改,成為臟數(shù)據(jù)。并且在clusterwide中,只有一個(gè)block copy版本,其內(nèi)容用SCN號(hào)代替了。則具體的步驟如下: 第二個(gè)Instance視圖修改該block,向GCS提出請(qǐng)求。 GCS向block的holder(持有者)提交請(qǐng)求。在此,第一個(gè)Instance就是holder。 第一個(gè)Instance接到消息,并將block發(fā)送給第二個(gè)Instance。第一個(gè)Instance保存臟buffer用于恢復(fù)的目的。block的臟鏡像被稱作block的past image。一個(gè)past image block將不能進(jìn)一步被改變。 收到block后,第二個(gè)Instance通
28、知GCS,告知已經(jīng)holds該block。 3)write to disk coordination:example 在cluster結(jié)構(gòu)中的Instances中的caches中,可能存在同一個(gè)block的不同的修改版本。由GCS管理的寫協(xié)議確保了只有最近一個(gè)版本被寫入磁盤中。它同時(shí)需要確保其他之前的版本從其他cache中被清洗。一個(gè)寫磁盤的請(qǐng)求可以從任意一個(gè)Instance上發(fā)起,無(wú)論它是保存了block的當(dāng)前版本還是過(guò)去的版本。假設(shè)第一個(gè)Instance hold過(guò)去的block鏡像,請(qǐng)求Oracle將buffer寫入磁盤,如上圖,過(guò)程如下: 第一個(gè)Instance發(fā)送一個(gè)寫請(qǐng)求給GCS
29、GCS將請(qǐng)求轉(zhuǎn)給第二個(gè)Instance,當(dāng)前該block的holder 第二個(gè)Instance接到寫請(qǐng)求后將block寫入磁盤 第二個(gè)Instance通知GCS,告知其寫操作完成 當(dāng)接到GCS接到通知后,GCS命令所有的過(guò)去的鏡像的holders刪除其過(guò)去的鏡像。此鏡像將不會(huì)在因恢復(fù)而需要。12、RAC和Instance/crash recovery 1)當(dāng)一個(gè)Instance失敗,當(dāng)該失敗被其他Instance檢測(cè)到,第二個(gè)Instance將會(huì)執(zhí)行下面的恢復(fù)操作: 在恢復(fù)的第一階段,GES重新灌入隊(duì)列 GCS也重新灌入其資源。GCS進(jìn)程只重新灌入那些失去其控制的資源。在這期間,所有的GCS資
30、源請(qǐng)求和寫請(qǐng)求都臨時(shí)被掛起。然而,事務(wù)可以繼續(xù)修改data blocks,只要這些事務(wù)已經(jīng)獲得了必要的資源。 當(dāng)隊(duì)列被重新配置后,一個(gè)活動(dòng)的Instance可以獲得占有該Instance恢復(fù)隊(duì)列。因此,當(dāng)GCS資源被重新灌入的同時(shí),SMON確定需要被恢復(fù)的blocks的集合。這個(gè)集合被稱作恢復(fù)集。因?yàn)椋褂胏ache 融合算法,一個(gè)Instance傳送這些blocks的內(nèi)容到請(qǐng)求的Instance,而不需要將這些blocks寫入磁盤。這些blocks在磁盤上的版本可能不包含其他Instance進(jìn)程的data的修改操作的blocks。這意味著SMON需要合并所有失敗的Instance的redo
31、logs來(lái)確定恢復(fù)集。這是因?yàn)橐粋€(gè)失敗的線程可能導(dǎo)致一個(gè)在redo 中的hole(洞)需要用指定的block填補(bǔ)。所以失敗的Instance的redo 線程不能被連續(xù)的應(yīng)用。同時(shí),活動(dòng)的Instances的redo 線程不需恢復(fù),因?yàn)镾MON可以使用過(guò)去和當(dāng)前的通信緩沖的鏡像。 用于恢復(fù)的緩沖空間被分配,并且那些之前讀取redo logs被辨識(shí)的資源被聲明為恢復(fù)資源。這避免了其他Instance訪問(wèn)這些資源。 所有在隨后的恢復(fù)操作中需要的資源被獲得,并且GRD當(dāng)前是不凍結(jié)的。任何不需恢復(fù)的data block現(xiàn)在可以被訪問(wèn)。所以當(dāng)前系統(tǒng)時(shí)部分可用的。此時(shí),假設(shè)有過(guò)去或當(dāng)前的blocks鏡像需要
32、被恢復(fù),而其在cluster Database中的其他caches中,對(duì)于這些特殊的blocks,最近的鏡像是開始恢復(fù)點(diǎn)。如果對(duì)于要恢復(fù)的block,過(guò)去鏡像和當(dāng)前鏡像緩沖都不在活動(dòng)的Instance的caches中,則SMON將寫入一個(gè)log,表明合并失敗。SMON會(huì)對(duì)第三步中辨識(shí)的每個(gè)block進(jìn)行恢復(fù)和寫入,在恢復(fù)之后會(huì)馬上釋放資源,從而使更多的資源在恢復(fù)時(shí)可以被使用。 當(dāng)所有的block被恢復(fù),占用的恢復(fù)資源被釋放,則系統(tǒng)再次可用。 note:在恢復(fù)中,log合并的開支和失敗的Instances的數(shù)目是成比例的,并且與每個(gè)Instance的redo logs的大小有關(guān)。 2)Insta
33、nce recovery和Database availability 上圖顯示了在進(jìn)行Instance恢復(fù)時(shí),每一步執(zhí)行時(shí)數(shù)據(jù)庫(kù)的可用程度: A. RAC運(yùn)行在多節(jié)點(diǎn)上 B. 有節(jié)點(diǎn)失敗被檢測(cè)到 C. GRD的隊(duì)列部分被重新設(shè)置;資源管理被重新分配到活動(dòng)的nodes。此操作的執(zhí)行比較快 D. GRD的緩沖部分被重新設(shè)置,SMON讀取失敗Instance的redo logs辨識(shí)那些需要恢復(fù)的blocks的集合 E. SMON向GRD發(fā)起請(qǐng)求,獲得所有在需要恢復(fù)的blocks集合中的Database blocks。當(dāng)請(qǐng)求結(jié)束,所有的其他的blocks都可被訪問(wèn)了 F. Oracle執(zhí)行滾動(dòng)的向前恢
34、復(fù)。失敗線程的redo logs被應(yīng)用到Database,并且那些被完全恢復(fù)的blocks將馬上可以被訪問(wèn) G. Oracle執(zhí)行滾回恢復(fù)。對(duì)于尚未提交的事務(wù),undo blocks被應(yīng)用到Database中 H. Instance的恢復(fù)完成,所有的data可以被訪問(wèn)13、有效的內(nèi)部節(jié)點(diǎn)行級(jí)鎖 Oracle支持有效的行級(jí)鎖。這些行級(jí)鎖主要是在DML操作時(shí)被創(chuàng)建,例如UPDATE。這些鎖被持有,直到事務(wù)被提交或回滾。任何請(qǐng)求同行的lock的進(jìn)程都將被掛起。 cache融合算法的塊傳輸獨(dú)立于這些user可見的行級(jí)鎖。GCS對(duì)blocks的傳輸是一個(gè)底層的操作,無(wú)需當(dāng)代行級(jí)鎖被釋放就開始進(jìn)行。blo
35、cks可能被從一個(gè)Instance傳輸?shù)狡渌渌鸌nstances,同時(shí)該blocks可能被加鎖。 GCS提供對(duì)data blocks的訪問(wèn),允許多個(gè)事務(wù)的并發(fā)進(jìn)行。14、RAC的額外的內(nèi)存需求 RAC特有的內(nèi)存多數(shù)是在SGA創(chuàng)建時(shí)從shared pool中分配的。因?yàn)閎locks可能跨越Instances被緩沖,必須要求更大的緩沖區(qū)。因此,當(dāng)將single Instance的Database遷移到RAC中時(shí),保持每個(gè)Instance的請(qǐng)求工作量都能通single-instance時(shí)的情況,則需要對(duì)運(yùn)行RAC的Instance增大10%的buffer cache和15%的shared pool
36、。這些值只是基于RAC大小的經(jīng)驗(yàn),一個(gè)初始的嘗試值。一般會(huì)大于此值。 如果正在使用推薦的自動(dòng)內(nèi)存管理特性,可以通過(guò)修改SGA_TARGET初始參數(shù)來(lái)設(shè)置。但考慮到同樣數(shù)量的user訪問(wèn)被分散到多個(gè)nodes中,每個(gè)Instance的內(nèi)存需求可以被降低。 實(shí)際資源的使用可以通過(guò)查詢每個(gè)Instance中的GCS和GES實(shí)體中的視圖V$RESOURCE_LIMIT視圖CURRENT_UTILIZATION和MAX_UTILIZATION字段,具體語(yǔ)句為: SELECT resource_name, current_utilization, max_utilization FROM v$resource_limit WHERE resource_name like g%s_%;15、RAC與并發(fā)執(zhí)行 Oracle的優(yōu)化器是
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 充分條件與必要條件教學(xué)設(shè)計(jì)
- 統(tǒng)編版語(yǔ)文四下《第七單元復(fù)習(xí)》課件
- 動(dòng)物檢疫個(gè)人工作總結(jié)模版
- 流動(dòng)商住樓小區(qū)重大危險(xiǎn)源專項(xiàng)的施工組織方案
- 大學(xué)生職業(yè)規(guī)劃大賽《國(guó)際商務(wù)專業(yè)》生涯發(fā)展展示
- 老年臥床女性護(hù)理
- 普通服務(wù)員年終總結(jié)模版
- 員工消防培訓(xùn)試題及答案
- 銀行投行面試題目及答案
- 一級(jí)建造師資格考試試題及答案
- 江蘇省南京市鼓樓區(qū)2023-2024學(xué)年八年級(jí)下學(xué)期期末考試物理試題
- 2024年山東棗莊初中生物會(huì)考模擬試卷(解析版)
- (高清版)JTG 3363-2019 公路橋涵地基與基礎(chǔ)設(shè)計(jì)規(guī)范
- 安全生產(chǎn)重在提升執(zhí)行力
- 糜爛性胃炎的護(hù)理查房
- 攝影測(cè)量與遙感課件
- 注塑模具分類及結(jié)構(gòu)組成課件
- 裂解裂化工藝作業(yè)培訓(xùn)課件
- 工程部管理制度及工程部管理制度(工程公司)
- 基于ZYNQ的時(shí)鐘同步平臺(tái)的設(shè)計(jì)
- 回火爐安全操作規(guī)程
評(píng)論
0/150
提交評(píng)論