Oracle培訓(xùn)交流(存儲(chǔ)技術(shù))_第1頁
Oracle培訓(xùn)交流(存儲(chǔ)技術(shù))_第2頁
Oracle培訓(xùn)交流(存儲(chǔ)技術(shù))_第3頁
Oracle培訓(xùn)交流(存儲(chǔ)技術(shù))_第4頁
Oracle培訓(xùn)交流(存儲(chǔ)技術(shù))_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

Oracle培訓(xùn)交流

目錄Oracle結(jié)構(gòu):oracle體系結(jié)構(gòu)oracle實(shí)例內(nèi)存結(jié)構(gòu)oracle實(shí)例進(jìn)程結(jié)構(gòu)oracle存儲(chǔ)結(jié)構(gòu)oracleRACOracle測試常見問題排查:oracle測試過程問題查看oracle測試過程中tpm下降明顯oracle測試過程中tps抖動(dòng)較大Oracle體系架構(gòu)一個(gè)Oracle數(shù)據(jù)庫包含兩個(gè)部分:實(shí)例和數(shù)據(jù)庫實(shí)例:一個(gè)非固定的、基于內(nèi)存的基本進(jìn)程與內(nèi)存結(jié)構(gòu)。數(shù)據(jù)庫:固定的、基于磁盤的數(shù)據(jù)文件、控制文件、日志文件、參數(shù)文件和歸檔日志文件等。4Oracle實(shí)例內(nèi)存結(jié)構(gòu)oracle實(shí)例內(nèi)存結(jié)構(gòu)主要包含SGA、PGA兩個(gè)部分:SGA:實(shí)例啟動(dòng)時(shí)分配,包含該實(shí)例的數(shù)據(jù)和控制信息。主要由三部分構(gòu)成:共享池、數(shù)據(jù)緩沖區(qū)、日志緩沖區(qū)等。Oracle中最重要的內(nèi)存區(qū)。PGA:為每個(gè)連接到Oracledatabase的用戶進(jìn)程保留的內(nèi)存。SGA-共享池共享池用于緩存最近被執(zhí)行的SQL語句和最近被使用的數(shù)據(jù)定義。共享SQL區(qū):存放用戶SQL命令的區(qū)域。數(shù)據(jù)字典緩沖區(qū):存放數(shù)據(jù)庫運(yùn)行的動(dòng)態(tài)信息。6SGA-數(shù)據(jù)緩沖區(qū)(數(shù)據(jù)庫高速緩沖區(qū))oracle數(shù)據(jù)緩沖區(qū),用于緩存從數(shù)據(jù)文件中檢索出來的數(shù)據(jù)塊??臻e緩存塊:預(yù)分配塊,沒有任何數(shù)據(jù),等待后臺(tái)進(jìn)程或服務(wù)器進(jìn)程向其中寫入數(shù)據(jù)。命中緩存塊:保存那些正在使用的數(shù)據(jù),通常保存select獲取的數(shù)據(jù)。臟緩存塊:保存已經(jīng)被修改但是還沒有被寫入數(shù)據(jù)庫文件的數(shù)據(jù)。數(shù)據(jù)固化到數(shù)據(jù)文件后轉(zhuǎn)為為空閑緩存塊。SGA-日志緩沖區(qū)(重做日志緩沖區(qū))日志緩沖區(qū):Oracle在執(zhí)行任何DML和DDL操作改變數(shù)據(jù)之前,都會(huì)將恢復(fù)所需要的信息,先寫入重做日志緩沖區(qū),然后再寫入數(shù)據(jù)庫高速緩沖區(qū)。。DML:SELECT、INSERT、UPDATE、DELETE等。DDL:CREATE、ALTER、DROP、TRUNCATE等。SGA-大型池(LargePool)大型池:數(shù)據(jù)庫管理員配置的可選內(nèi)存區(qū)域,用于分配大量的內(nèi)存,處理比共享池更大的內(nèi)存。需要處理的操作有:數(shù)據(jù)庫備份與恢復(fù)。執(zhí)行并行化的數(shù)據(jù)庫操作。具有大量排序的sql等。SGA-JAVA池和流池JAVA池:為Java命令的語法分析提供服務(wù),只有當(dāng)應(yīng)用程序需要在數(shù)據(jù)庫中運(yùn)行Java存儲(chǔ)過程時(shí),才需要Java池(用不到JAVA命令無需配置)。。流池:供oracle流使用,從重做日志提取更改的進(jìn)程以及應(yīng)用更改的進(jìn)程將用到內(nèi)存:此內(nèi)存就是流池。最常用于數(shù)據(jù)泵導(dǎo)數(shù)據(jù)的場景。Oracle實(shí)例進(jìn)程結(jié)構(gòu)數(shù)據(jù)塊寫進(jìn)程,負(fù)責(zé)將Oracle數(shù)據(jù)庫緩沖區(qū)的臟緩沖寫到數(shù)據(jù)文件內(nèi),保證緩沖區(qū)能有空余緩沖供用戶使用。DBWn根據(jù)LRU算法找出相應(yīng)的臟緩存寫入數(shù)據(jù)文件,Oracle的DBWn最大進(jìn)程數(shù)為20。當(dāng)dirtylist達(dá)到一定數(shù)量(閥值25%)ServerProceess會(huì)通知DBWn寫贓數(shù)據(jù)當(dāng)掃描LRUlist達(dá)到一定數(shù)量還未找到freebuffer時(shí),停止搜索freebuffer,直接通知DBWn寫臟數(shù)據(jù)。checkpoint通知寫數(shù)據(jù)。Oracle實(shí)例進(jìn)程-DBWnOracle實(shí)例進(jìn)程-LGWR用戶進(jìn)程每次修改內(nèi)存數(shù)據(jù)塊時(shí),都會(huì)在日志緩沖區(qū)(logbuffer)中構(gòu)造一個(gè)相應(yīng)的重做條目(redoentry),該重做條目描述了被修改的數(shù)據(jù)塊在修改之前和修改之后的值。而LGWR進(jìn)程則負(fù)責(zé)將這些重做條目寫入聯(lián)機(jī)日志文件。LGWR寫入聯(lián)機(jī)日志文件文件觸發(fā)條件:DBWn啟動(dòng)時(shí)發(fā)現(xiàn)臟塊對應(yīng)redo條目未固化,則觸發(fā)LGWRLGWR每3秒會(huì)被觸發(fā)一次redo條目數(shù)量達(dá)到整個(gè)日志緩沖區(qū)1/3時(shí)觸發(fā)LGWR重做條目的數(shù)量達(dá)到1MB時(shí),觸發(fā)LGWR。用戶提交commit時(shí),觸發(fā)LGWROracle實(shí)例進(jìn)程-CKPT檢查點(diǎn)使DBWR將自上一個(gè)檢查點(diǎn)之后的全部已修改的數(shù)據(jù)塊寫入數(shù)據(jù)文件,并更新數(shù)據(jù)文件頭和控制文件以記錄該檢查點(diǎn)。定期將內(nèi)存中的已修改數(shù)據(jù)塊寫入磁盤,保證數(shù)據(jù)安全,間隔時(shí)間:LOG_CHECKPOINT_INTERVAL。減少實(shí)例恢復(fù)所需的時(shí)間。在進(jìn)行恢復(fù)時(shí)只需處理跟在最后一個(gè)檢查點(diǎn)后面的聯(lián)機(jī)重做日志文件確保在關(guān)閉過程中所有已提交數(shù)據(jù)都寫入到數(shù)據(jù)文件中。注:CKPT進(jìn)程并不將數(shù)據(jù)塊寫入到磁盤,也不將重做塊寫入到聯(lián)機(jī)重做日志文件。Oracle實(shí)例進(jìn)程-ARCnARCn進(jìn)程在每次進(jìn)行日志切換時(shí)都會(huì)開始對已填滿的日志組進(jìn)行備份或歸檔。LGWR覆蓋寫聯(lián)機(jī)重做日志時(shí),如果日志文件未被歸檔,數(shù)據(jù)庫被被掛起。ARCn是一個(gè)可選進(jìn)程,作用在于記錄數(shù)據(jù)庫的所有更改,確保磁盤損壞后仍然能夠恢復(fù)數(shù)據(jù)庫。聯(lián)機(jī)重做日志恢復(fù)是實(shí)例恢復(fù),ARCn日志是物理恢復(fù)。Oracle存儲(chǔ)結(jié)構(gòu)oracle數(shù)據(jù)庫是由多種功能性文件構(gòu)成的管理系統(tǒng),最重要的文件為:Controlfiles:包含數(shù)據(jù)基本信息、歸檔、備份、表空間、聯(lián)機(jī)日志、undo相關(guān)信息。Parameterfile:數(shù)據(jù)庫物理結(jié)構(gòu)、屬性和限制、系統(tǒng)默認(rèn)值、控制文件名和位置等信息。datafile:數(shù)據(jù)庫系統(tǒng)、用戶表空間相關(guān)數(shù)據(jù)。Onlineredologfiles:記錄數(shù)據(jù)變化信息,供數(shù)據(jù)恢復(fù)。Oracle存儲(chǔ)結(jié)構(gòu)-物理&邏輯結(jié)構(gòu)對照左邊為邏輯結(jié)構(gòu),列出的是用戶數(shù)據(jù)庫數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu):包含順序是自上而下的。邏輯結(jié)構(gòu)中,包含順序是自上而下的。物理結(jié)構(gòu)中對應(yīng)的就是數(shù)據(jù)文件的存儲(chǔ)。Oracle存儲(chǔ)結(jié)構(gòu)-邏輯單元包含關(guān)系一個(gè)段由多個(gè)區(qū)構(gòu)成。一個(gè)區(qū)由多個(gè)數(shù)據(jù)庫數(shù)據(jù)塊構(gòu)成。一個(gè)數(shù)據(jù)庫數(shù)據(jù)庫必須是操作系統(tǒng)塊的整數(shù)倍。dba_block_size在創(chuàng)建數(shù)據(jù)庫后無法修改,但是可以通過db_N_cache_size單獨(dú)為表空間指定使用的數(shù)據(jù)塊大小。Oracle存儲(chǔ)結(jié)構(gòu)-數(shù)據(jù)文件與表空間一個(gè)表空間可以包含多個(gè)數(shù)據(jù)文件,但是一個(gè)表空間只能有一個(gè)bigfile屬性的數(shù)據(jù)文件。一個(gè)區(qū)只能屬于一個(gè)數(shù)據(jù)文件,一個(gè)段可以跨數(shù)據(jù)文件。默認(rèn)8K數(shù)據(jù)塊下,一個(gè)普通數(shù)據(jù)文件最大存儲(chǔ)32GB數(shù)據(jù),一個(gè)bigfile數(shù)據(jù)文件最大存儲(chǔ)32TB數(shù)據(jù),在操作系統(tǒng)支持情況下,bigfile數(shù)據(jù)文件最大支持128TB數(shù)據(jù)。Oracle存儲(chǔ)結(jié)構(gòu)-ASM結(jié)構(gòu)自動(dòng)存儲(chǔ)管理(ASM)是OracleDatabase的一個(gè)特性,它為數(shù)據(jù)庫管理員提供了一個(gè)在所有服務(wù)器和存儲(chǔ)平臺(tái)上均一致的簡單存儲(chǔ)管理接口。ACFS:一個(gè)通用的與POSIX、X/OPEN和Windows兼容的文件系統(tǒng),專為單節(jié)點(diǎn)和單集群的配置而設(shè)計(jì)。ADVM:提供了一個(gè)通用卷管理服務(wù)和一個(gè)標(biāo)準(zhǔn)設(shè)備驅(qū)動(dòng)程序接口,便于系統(tǒng)管理員跨不同平臺(tái)進(jìn)行管理。ASMFILES:數(shù)據(jù)文件datafile、控制文件controlfile、重做日志redolog、歸檔日志archivelog、閃回日志flashbacklog、spfile、RMAN備份以及blocktrackingfile、datapump文件。Oracle存儲(chǔ)結(jié)構(gòu)-ASM邏輯結(jié)構(gòu)ASM的最小存儲(chǔ)單位是一個(gè)”allocationunit”(AU),通常為1MB,在創(chuàng)建DG的時(shí)候指定。ASM上存儲(chǔ)的文件被劃分為多個(gè)文件片,稱之為”extent”,11g之后一個(gè)extent可以是1or8or64個(gè)AU。ASMDiskgroup下面是一個(gè)或者多個(gè)failuregroup(FG),F(xiàn)G被定義為一組Disk。ASM提供EXTERNAL、NORMAL、HIGH三種級(jí)別的數(shù)據(jù)鏡像。ASM會(huì)通過在DG中條帶化文件extent分布以最大化可用的IO帶寬,在磁盤之間移動(dòng)文件extent以實(shí)現(xiàn)DG上的IO負(fù)載均衡的過程。Oracle存儲(chǔ)結(jié)構(gòu)-ASM補(bǔ)充講解ASM將任何文件以AU大小均勻分布在DiskGroup的所有Disk上。每一個(gè)ASMDisk均被維護(hù)以保持同樣的使用比率。這保證同一個(gè)DiskGroup中的所有Disk的IO負(fù)載基本一致。由于ASM在一個(gè)DiskGroup中的磁盤上的負(fù)載均衡,所以為同一個(gè)物理磁盤的不同區(qū)域劃分為2個(gè)ASMDisk不會(huì)對性能有所影響。ASM的鏡像和平衡都是基于文件extent的粒度。所有的空間操作都以AU為單位,所以不存在所謂ASM碎片這樣的概念和問題。ASM有2種可用條帶化寬度:coarse粗糙條帶化大小為1個(gè)AU,fine精細(xì)條帶化為128K,理論上條帶寬度*條帶深度>=2*db_block_size*db_file_multiblock_read_count是最優(yōu)的IO配置。ASMinstance使用類似于普通RDBMS的原理的instance/crashrecovery,所以ASMinstance奔潰后總是能復(fù)原的。OracleRAC體系結(jié)構(gòu)OracleRAC運(yùn)行于集群之上(至少兩個(gè)Oracle節(jié)點(diǎn)),為Oracle數(shù)據(jù)庫提供了最高級(jí)別的可用性、可伸縮性和低成本計(jì)算能力。OracleRAC性能隨節(jié)點(diǎn)數(shù)增長而線性增長,最多支持128節(jié)點(diǎn)。多個(gè)Oracle服務(wù)器組成一個(gè)共享的Cache,同時(shí)共享一個(gè)基于網(wǎng)絡(luò)的存儲(chǔ)。OracleRAC可以容忍單機(jī)/或是多機(jī)失敗,可以看成是一個(gè)雙活、容災(zāi)體系架構(gòu)。OracleRAC系統(tǒng)內(nèi)部的多個(gè)節(jié)點(diǎn)需要高速網(wǎng)絡(luò)互連,所有節(jié)點(diǎn)需要部署在一個(gè)機(jī)房或者數(shù)據(jù)中心內(nèi)。OracleRAC體系結(jié)構(gòu)OracleRAC的核心是共享磁盤子系統(tǒng),集群中所有節(jié)點(diǎn)必須能夠訪問所有數(shù)據(jù)、重做日志文件、控制文件和參數(shù)文件,數(shù)據(jù)磁盤必須是全局可用的,允許所有節(jié)點(diǎn)訪問數(shù)據(jù)庫,每個(gè)節(jié)點(diǎn)有獨(dú)立的重做日志和控制文件,但是其他節(jié)點(diǎn)必須能夠訪問它們以便在那個(gè)節(jié)點(diǎn)出現(xiàn)系統(tǒng)故障時(shí)能夠恢復(fù)。OracleRAC主要的創(chuàng)新是高速緩存(CacheFusion)合并的技術(shù),用于保證數(shù)據(jù)一致性。OracleRAC的特點(diǎn)可以總結(jié)為:每一個(gè)節(jié)點(diǎn)的實(shí)例都有自己的SGA每一個(gè)節(jié)點(diǎn)的實(shí)例都有自己的后臺(tái)進(jìn)程每一個(gè)節(jié)點(diǎn)的實(shí)例都有自己的redologs每一個(gè)節(jié)點(diǎn)的實(shí)例都有自己的undo表空間所有節(jié)點(diǎn)都共享一份datafiles和controlfilesOracleRAC體系結(jié)構(gòu)-共享存儲(chǔ)子系統(tǒng)OracleRAC必須采用共享存儲(chǔ)來部署。除了實(shí)例相關(guān)的文件,OCR(管理集群信息和RAC數(shù)據(jù)庫配置信息)、VotingDisk(仲裁相關(guān))、數(shù)據(jù)文件都需要保存再共享存儲(chǔ)中。OracleRAC支持多種共享存儲(chǔ)媒體來部署:IP-SAN、FC-SAN、NFS。OracleRAC推薦采用ASM作為存儲(chǔ)管理方式。深信服HCI上通過共享盤來給OracleRAC提供共享存儲(chǔ),類似iSCSI共享存儲(chǔ)映射的Raw設(shè)備。OracleRAC體系結(jié)構(gòu)-高速緩存合并高速緩存合并使得集群中的節(jié)點(diǎn)可以通過高速集群互聯(lián)高效地同步其內(nèi)存高速緩存,從而最大限度地低降低磁盤I/O。全局緩存服務(wù)(GCS)是CacheFusion概念的核心。當(dāng)多個(gè)實(shí)例需要特定的數(shù)據(jù)塊時(shí),通過GCS保持RAC中的數(shù)據(jù)完整性。實(shí)例查找GCS以滿足其數(shù)據(jù)塊需求。GCS主要負(fù)責(zé)的工作為:跟蹤數(shù)據(jù)塊接受來自實(shí)例的數(shù)據(jù)塊請求通知持有實(shí)例釋放對數(shù)據(jù)塊的鎖定或運(yùn)送CR塊通過互連在實(shí)例之間協(xié)調(diào)數(shù)據(jù)塊的傳送通知實(shí)例保留或丟棄PI塊高速緩存合并-GCS讀寫爭用實(shí)例A在緩沖區(qū)中更新一個(gè)數(shù)據(jù)塊,加了排他鎖實(shí)例B想讀取該數(shù)據(jù)塊,先向GCS發(fā)送請求。GCS檢查到該數(shù)據(jù)塊實(shí)例A已經(jīng)對其施加了排他鎖,于是GCS要求實(shí)例A釋放該數(shù)據(jù)塊塊。實(shí)例A會(huì)有兩種可能操作:釋放該塊上的鎖(如果不再需要它),讓實(shí)例B從磁盤讀取塊。在緩沖區(qū)緩存中創(chuàng)建該塊的CR鏡像,傳送到實(shí)例B的緩存中。實(shí)例A通知GCS(如果鎖定已經(jīng)被釋放或者CR圖像已經(jīng)被運(yùn)送)高速緩存合并-GCS寫寫爭用實(shí)例A在緩沖區(qū)緩存中更新數(shù)據(jù)塊,并且施加了排他鎖。實(shí)例B將修改該數(shù)據(jù)塊請求發(fā)送給GCSGCS檢查該數(shù)據(jù)塊的可用性,發(fā)現(xiàn)實(shí)例A對其施加了排查鎖,要求實(shí)例A釋放該數(shù)據(jù)塊實(shí)例A會(huì)有兩種可能操作:釋放該塊上的鎖(如果不再需要它),讓實(shí)例B從磁盤讀取塊在緩沖區(qū)緩存中創(chuàng)建該塊的PI塊鏡像,重做條目并通過高速網(wǎng)絡(luò)傳送數(shù)據(jù)塊到實(shí)例B緩存實(shí)例A通知GCS鎖定已被釋放,并且PI已被保存OracleRAC心跳機(jī)制心跳是一種輪詢機(jī)制,類似于ping,用于監(jiān)視RAC系統(tǒng)中其他服務(wù)器的可用性。心跳是通過集群互連發(fā)送的一種輪詢機(jī)制,以確保所有RAC節(jié)點(diǎn)都可用。心跳是群集件節(jié)點(diǎn)監(jiān)視的一部分。當(dāng)一個(gè)節(jié)點(diǎn)沒有對心跳信號(hào)做出響應(yīng)時(shí),這個(gè)實(shí)例被認(rèn)為已經(jīng)崩潰,并且從集群中“被逐出”。不管是磁盤心跳還是網(wǎng)絡(luò)心跳都依賴于cssd.bin進(jìn)程來實(shí)施這些操作。ORACLERAC中最主要存在2種集群件心跳:網(wǎng)絡(luò)心跳:每秒發(fā)生一次,網(wǎng)絡(luò)心跳超時(shí)為30s。磁盤心跳

:每秒發(fā)生一次,磁盤心跳超時(shí)為200s。管是磁盤心跳還是網(wǎng)絡(luò)心跳都依賴于cssd.bin進(jìn)程來實(shí)施這些操作OracleRAC仲裁機(jī)制ORACLERACASM管理模式下,通常會(huì)創(chuàng)建一個(gè)OCR磁盤組,用來存放VoteFile和OCR(OracleClusterRegistry)。VoteFile是用來記錄集群節(jié)點(diǎn)的磁盤心跳信息,而OCR是保存集群配置信息的數(shù)據(jù)。VoteFile,以整個(gè)文件的方式存儲(chǔ)在OCR磁盤上,不做任何條帶。三節(jié)點(diǎn)RAC集群下,Instance1把集群中的三個(gè)成員(1、2、3)進(jìn)行私網(wǎng)檢測的結(jié)果寫入到仲裁文件當(dāng)中,Instance2、Instance3同樣把其檢測結(jié)果寫入仲裁文件,最終組成了三個(gè)節(jié)點(diǎn)的仲裁矩陣。集群節(jié)點(diǎn)獲得的VoteFile數(shù)目小于N/2+1時(shí),節(jié)點(diǎn)就會(huì)被集群驅(qū)逐出集群,N是Vote

溫馨提示

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

最新文檔

評論

0/150

提交評論