Oracle體系結(jié)構(gòu)與數(shù)據(jù)庫實(shí)例_第1頁
Oracle體系結(jié)構(gòu)與數(shù)據(jù)庫實(shí)例_第2頁
Oracle體系結(jié)構(gòu)與數(shù)據(jù)庫實(shí)例_第3頁
Oracle體系結(jié)構(gòu)與數(shù)據(jù)庫實(shí)例_第4頁
Oracle體系結(jié)構(gòu)與數(shù)據(jù)庫實(shí)例_第5頁
已閱讀5頁,還剩51頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

2.1物理結(jié)構(gòu)2.2邏輯結(jié)構(gòu)2.3內(nèi)存結(jié)構(gòu)2.4數(shù)據(jù)庫實(shí)例與進(jìn)程2.5數(shù)據(jù)字典第二章Oracle體系結(jié)構(gòu)第一頁,共五十六頁。2.1.1數(shù)據(jù)文件2.1.2日志文件2.1.3控制文件2.1.4配置文件

2.1物理結(jié)構(gòu)第二頁,共五十六頁。數(shù)據(jù)文件用來存儲數(shù)據(jù)庫中的全部數(shù)據(jù),如數(shù)據(jù)庫表中的數(shù)據(jù)和索引數(shù)據(jù)。通常為后綴名為.dbf格式的文件。2.1.1數(shù)據(jù)文件第三頁,共五十六頁。日志文件(又稱重做日志文件),用于記錄數(shù)據(jù)庫所做的全部變更(如增加、刪除、修改),以便在系統(tǒng)發(fā)生故障時,用它對數(shù)據(jù)庫進(jìn)行恢復(fù)。名字通常為Log*.dbf格式2.1.2日志文件第四頁,共五十六頁。

根據(jù)在事務(wù)信息將被覆蓋時,是否應(yīng)該將文件歸檔,數(shù)據(jù)庫分為以下兩種歸檔模式:ARCHIVELOG(歸檔日志)或NOARCHIVELOG(非歸檔日志)模式。第五頁,共五十六頁。

每個Oracle數(shù)據(jù)庫都有相應(yīng)的控制文件,用于打開、存取數(shù)據(jù)庫。它們是較小的二進(jìn)制文件,其中記錄了數(shù)據(jù)庫的物理結(jié)構(gòu)。名字通常為Ctr*.ctl格式2.1.3控制文件第六頁,共五十六頁??刂莆募械膬?nèi)容只能夠由Oracle本身來修改。每個數(shù)據(jù)庫必須至少擁有一個控制文件。一個數(shù)據(jù)庫也可以同時擁有多個控制文件,但是一個控制文件只能屬于一個數(shù)據(jù)庫。第七頁,共五十六頁。2.1.4配置文件配置文件是一個ASCII文本文件,記錄Oracle數(shù)據(jù)庫運(yùn)行時的一些重要參數(shù)。名字通常為initsid*.ora格式,如:initCIMS.ora,SID相當(dāng)于它所控制的數(shù)據(jù)庫的標(biāo)識符。每個Oracle數(shù)據(jù)庫和實(shí)例都有它自己惟一的init.ora文件。

第八頁,共五十六頁。

Oracle9i新引入一個服務(wù)器參數(shù)文件(SPFILE),一個服務(wù)器參數(shù)文件(SPFILE)可以被認(rèn)為是在Oracle數(shù)據(jù)庫服務(wù)器端的初始化參數(shù)文件。存儲在一個服務(wù)器參數(shù)文件的初始化參數(shù)是永久的,它提供了由Oracle數(shù)據(jù)庫服務(wù)器自我調(diào)節(jié)的一個基礎(chǔ)。服務(wù)器參數(shù)文件是二進(jìn)制文件,不能使用一個文本編輯器瀏覽或編輯。Oracle提供了瀏覽和查看相關(guān)參數(shù)的另外接口。第九頁,共五十六頁。2.2.1表空間2.2.2段2.2.3區(qū)2.2.4數(shù)據(jù)庫塊2.2邏輯結(jié)構(gòu)2.2.5模式對象

第十頁,共五十六頁。1.表空間的分類2.表空間的使用3.表空間中對象的存儲2.2.1表空間第十一頁,共五十六頁。

Oracle中除了用戶創(chuàng)建的存放數(shù)據(jù)對象的數(shù)據(jù)表空間外,還有以下類型的表空間:(1)System表空間(2)回滾表空間(RollBackTableSpace)(3)臨時表空間(TempTableSpace)1.表空間的分類第十二頁,共五十六頁。在數(shù)據(jù)庫中使用多個表空間具有如下優(yōu)勢:(1)能夠?qū)?shù)據(jù)字典與用戶數(shù)據(jù)分離開來,避免由于字典對象和用戶對象保存在同一個數(shù)據(jù)文件中而產(chǎn)生的1/0沖突。(2)能夠?qū)⒒赝藬?shù)據(jù)與用戶數(shù)據(jù)分離開來,避免由于硬盤損壞而導(dǎo)致永久性的數(shù)據(jù)丟失。(3)能夠?qū)⒈砜臻g的數(shù)據(jù)文件分散保存到不同硬盤上,平均分布物理1/0操作。2.表空間的使用第十三頁,共五十六頁。(4)能夠?qū)⒛硞€表空間設(shè)置為脫機(jī)狀態(tài)或聯(lián)機(jī)狀態(tài),以便對數(shù)據(jù)庫的一部分進(jìn)行備份和恢復(fù)。(5)能夠?qū)⒛硞€表空間設(shè)置為只讀狀態(tài),從而將數(shù)據(jù)庫的一部分設(shè)置為只讀狀態(tài)。(6)能夠?yàn)槟撤N特殊用途專門設(shè)置一個表空間,比如臨時表空間等,以優(yōu)化表空間的使用效率。(7)能夠更加靈活地為用戶設(shè)置表空間限額。第十四頁,共五十六頁。如果表空間只對應(yīng)一個數(shù)據(jù)文件,該表空間中所有的對象都存儲在此數(shù)據(jù)文件中。如果表空間對應(yīng)于多個數(shù)據(jù)文件,可將一個對象的數(shù)據(jù)存儲在該表空間的任意一個數(shù)據(jù)文件中,也可將同一個對象的數(shù)據(jù)分布在表空間的多個數(shù)據(jù)文件中。3.表空間中對象的存儲第十五頁,共五十六頁。

1.?dāng)?shù)據(jù)段2.2.2段

2.索引段3.臨時段

4.回退段

第十六頁,共五十六頁。數(shù)據(jù)段中保存的是表中的記錄。1.?dāng)?shù)據(jù)段

第十七頁,共五十六頁。在Oracle數(shù)據(jù)庫中每個未分區(qū)索引都有一個索引段保存索引中的索引條目。對于一個分區(qū)索引,每個分區(qū)都有一個索引段保存它的數(shù)據(jù)。2.索引段

第十八頁,共五十六頁。當(dāng)處理查詢時,Oracle可能會需要使用到一些臨時存儲空間,用于臨時保存解析過的查詢語句以及在排序過程中產(chǎn)生的臨時數(shù)據(jù)。Oracle會自動在專門用于存儲臨時數(shù)據(jù)的表空間為操作分配臨時段。3.臨時段

第十九頁,共五十六頁?;貪L段用于存放數(shù)據(jù)修改之前的值(包括數(shù)據(jù)修改之前的位置和值)?;貪L段的作用主要有以下幾方面:(1)事務(wù)回滾(2)事務(wù)恢復(fù)(3)讀一致性4.回退段

第二十頁,共五十六頁。區(qū)是由很多連續(xù)的數(shù)據(jù)塊組成的數(shù)據(jù)庫存儲空間。缺省情況下,數(shù)據(jù)庫會使用表空間中存儲的存儲參數(shù)來管理他們的區(qū)。2.2.3區(qū)

第二十一頁,共五十六頁。主要的幾個存儲參數(shù):INITIAL:段建立時分配的第一個區(qū)的大?。▎挝唬鹤止?jié))NEXT:段內(nèi)分配的下一個增量區(qū)大小(單位:字節(jié))MAXEXTENTS:分配給段的區(qū)總數(shù)。MINEXTENTS:建立段時分配的區(qū)的總數(shù),也就是段的最小區(qū)數(shù)量。PCTINCREASE:為段分配的每個增量區(qū)超過上一個區(qū)的百分比。INITRANS:為初試數(shù)量的DML事務(wù)條目(并發(fā)訪問數(shù)據(jù)塊中的行)保留的預(yù)分配空間數(shù)量。NTKXTRANS:當(dāng)多個事務(wù)同時訪問同一數(shù)據(jù)塊的行時,為數(shù)據(jù)塊中每個DML事務(wù)的條目分配的空間。

第二十二頁,共五十六頁。

數(shù)據(jù)庫塊也稱邏輯塊或Oracle塊,它對應(yīng)磁盤上一個或多個物理塊,它的大小由初始化參數(shù)db_block_size(在文件init.ora中)決定,典型的大小是2k。2.2.4數(shù)據(jù)庫塊第二十三頁,共五十六頁。

Pckfree和Pctused兩個參數(shù)用來優(yōu)化數(shù)據(jù)塊空間的使用。 PCTFREE:塊中保留用于UPDATE操作的空間百分比,當(dāng)數(shù)據(jù)占用的空間達(dá)到此上限時,新的數(shù)據(jù)將不能再插入到此塊中; PCTUSED:指定塊中數(shù)據(jù)使用空間的最低百分比;第二十四頁,共五十六頁。

Oracle數(shù)據(jù)庫的模式對象包括表、視圖、序列、同義詞、索引、觸發(fā)器、存儲過程等。

2.2.5模式對象

第二十五頁,共五十六頁。2.3內(nèi)存結(jié)構(gòu)

2.3.1系統(tǒng)全局區(qū)2.3.2程序全局區(qū)2.3.3排序區(qū)2.3.4軟件代碼區(qū)第二十六頁,共五十六頁。

系統(tǒng)全局區(qū)(SGA,SystemGlobalArea.)是內(nèi)存結(jié)構(gòu)的主要組成部分,是Oracle為一個實(shí)例分配的一組共享內(nèi)存緩沖區(qū),保存著Oracle系統(tǒng)與所有數(shù)據(jù)庫用戶的共享信息,包括數(shù)據(jù)維護(hù)、SQL語句分析,重做日志管理等。是實(shí)例的主要部分。2.3.1系統(tǒng)全局區(qū)

第二十七頁,共五十六頁。數(shù)據(jù)塊緩沖區(qū)中存放著Oracle系統(tǒng)最近從數(shù)據(jù)文件中讀取的數(shù)據(jù)塊。數(shù)據(jù)塊緩沖區(qū)又稱用戶數(shù)據(jù)高速緩沖區(qū),為所有與該實(shí)例相鏈接的用戶進(jìn)程所共享。

1.?dāng)?shù)據(jù)塊緩沖區(qū)第二十八頁,共五十六頁。數(shù)據(jù)塊緩沖區(qū)的容量受物理容量限制。在Oracle9i中,數(shù)據(jù)庫緩存的大小可以直接由初始化參數(shù)DB_ACHESIZE指定,該參數(shù)可以直接以K字節(jié)或M字節(jié)為單位來設(shè)置數(shù)據(jù)庫緩存的大小。

第二十九頁,共五十六頁。字典緩沖區(qū)用于保存數(shù)據(jù)字典中的行。數(shù)據(jù)字典緩沖區(qū)也通過最近最少使用(LRU)算法來管理。大小由數(shù)據(jù)庫內(nèi)部管理。字典緩存區(qū)是SQL共享池的一部分,共享池的大?。ㄒ宰止?jié)為單位)由數(shù)據(jù)庫文件init.ora中的SHARED_POOL_SIZE參數(shù)來設(shè)置。2.字典緩沖區(qū)第三十頁,共五十六頁。對數(shù)據(jù)庫進(jìn)行修改的任何事務(wù)(Transaction)在記錄到重做日志之前都必須首先放到重做日志緩沖區(qū)(RedoLogBuffer.)中。重做日志緩沖區(qū)是專為此開辟的一塊內(nèi)存區(qū)域,重做日志緩存中的內(nèi)容將被LGWR后臺進(jìn)程隨時寫入重做日志文件。

3.重做日志緩沖區(qū)

第三十一頁,共五十六頁。重做日志緩存是一個循環(huán)緩存區(qū),在使用時從頂端向底端寫入數(shù)據(jù),然后再返回到緩沖區(qū)的起始點(diǎn)循環(huán)寫入。重做日志緩沖區(qū)的大小(以字節(jié)為單位)由init.ora文件中的LOGBUFFER參數(shù)決定。

第三十二頁,共五十六頁。共享SQL池(SharedSQLPool)相當(dāng)于程序高速緩沖區(qū),所有的用戶程序都存放在共享SQL池中。SQL共享池包括庫高速緩存、數(shù)據(jù)字典高速緩存和服務(wù)器控制結(jié)構(gòu)。4.共享SQL池第三十三頁,共五十六頁。共享池的大小取決于init.ora文件參數(shù)SHARED_POOL_SIZE,它是以字節(jié)為單位的。用戶必須將這個值設(shè)得足夠大,以確保有足夠的可用空間來裝載和存儲PL/SQL塊和SQL語句。第三十四頁,共五十六頁。

Java池為Java命令提供語法分析。5.Java池第三十五頁,共五十六頁。緩沖池把大數(shù)據(jù)集與其他的應(yīng)用程序分開,以減少它們爭奪數(shù)據(jù)塊緩沖區(qū)內(nèi)相同的資源??梢栽赟GA中創(chuàng)建多個緩沖池。6.多緩沖池第三十六頁,共五十六頁。程序全局區(qū)PGA(ProgramGlobalArea,PGA),是單個Oracle進(jìn)程使用的內(nèi)存區(qū)域,不屬于實(shí)例的內(nèi)存結(jié)構(gòu)。它含有單個進(jìn)程工作時需要的數(shù)據(jù)和控制信息,PGA是非共享的,只有服務(wù)進(jìn)程本身才能夠訪問它自己的PGA區(qū)。2.3.2程序全局區(qū)

第三十七頁,共五十六頁。排序區(qū)存在于請求排序的用戶進(jìn)程的內(nèi)存中,由于排序需要內(nèi)存空間,Oracle利用該內(nèi)存排序數(shù)據(jù),這部分空間稱為排序區(qū)。該空間的大小為適應(yīng)排序數(shù)據(jù)量的大小,可增長,但受初始化參數(shù)SORT_AREA_SIZER所限制。

2.3.3排序區(qū)

第三十八頁,共五十六頁。軟件代碼區(qū)(SoftwareCodeArea)用于存儲正在執(zhí)行的或可以執(zhí)行的程序代碼。軟件代碼區(qū)是只讀,可安裝成共享或非共享。Oracle系統(tǒng)程序是共享的,多個Oracle用戶可存取它,而不需要在內(nèi)存有多個副本。用戶程序可以共享也可以不共享。

2.3.4軟件代碼區(qū)第三十九頁,共五十六頁。2.4數(shù)據(jù)庫實(shí)例與進(jìn)程2.4.1Oracle數(shù)據(jù)庫實(shí)例2.4.2進(jìn)程第四十頁,共五十六頁。數(shù)據(jù)庫是指物理上的數(shù)據(jù)庫文件或邏輯上的數(shù)據(jù)庫結(jié)構(gòu)。基于之上管理和控制物理數(shù)據(jù)庫的軟件系統(tǒng),稱為數(shù)據(jù)庫管理系統(tǒng)(DBMS)。數(shù)據(jù)庫實(shí)例是指軟件系統(tǒng)中用來訪問數(shù)據(jù)庫文件集的存儲結(jié)構(gòu)以及后臺進(jìn)程的集合,它是存取和控制數(shù)據(jù)庫的軟件機(jī)制。2.4.1Oracle數(shù)據(jù)庫實(shí)例第四十一頁,共五十六頁。進(jìn)程又稱任務(wù),是操作系統(tǒng)中一個極為重要的概念。一個進(jìn)程執(zhí)行一組操作,完成一個特定的任務(wù)。對Oracle數(shù)據(jù)庫管理系統(tǒng)來說,進(jìn)程由用戶進(jìn)程、服務(wù)器進(jìn)程和后臺進(jìn)程所組成。進(jìn)程與程序的區(qū)別在于前者是一個動態(tài)概念,后者是一個靜態(tài)實(shí)體;程序僅僅是指令的有序集合,而進(jìn)程則強(qiáng)調(diào)執(zhí)行過程。進(jìn)程可以動態(tài)地創(chuàng)建,完成任務(wù)后即會消亡。2.4.2進(jìn)程

第四十二頁,共五十六頁。當(dāng)用戶運(yùn)行一個應(yīng)用程序時,系統(tǒng)就為它建立一個用戶進(jìn)程。用戶進(jìn)程執(zhí)行的是一個應(yīng)用程序或Oracle工具程序的代碼,以完成用戶所指定的任務(wù)。用戶進(jìn)程不是實(shí)例。1.用戶進(jìn)程服務(wù)器進(jìn)程第四十三頁,共五十六頁。服務(wù)器進(jìn)程處理與應(yīng)用程序相連的用戶進(jìn)程的請求,它與用戶進(jìn)程相通訊,為相連的用戶進(jìn)程的Oracle請求服務(wù)。2.服務(wù)器進(jìn)程第四十四頁,共五十六頁。

Oracle的后臺進(jìn)程主要包括:(1)SMON系統(tǒng)監(jiān)控進(jìn)程(systemmonitor)(2)PMON進(jìn)程監(jiān)控進(jìn)程(processmonitor)(3)DBWR數(shù)據(jù)庫寫進(jìn)程(4)LGWR日志文件寫進(jìn)程(5)ARCH歸檔進(jìn)程(archiverprocess)(6)RECO恢復(fù)進(jìn)程(7)LCKN封鎖進(jìn)程3.后臺進(jìn)程第四十五頁,共五十六頁。2.5數(shù)據(jù)字典

2.5.1數(shù)據(jù)字典的結(jié)構(gòu)2.5.2數(shù)據(jù)字典的用途第四十六頁,共五十六頁。數(shù)據(jù)字典是Oracle數(shù)據(jù)庫的核心組件,它是對用戶來說為只讀類型的表和視圖組成。在其中保存著關(guān)于數(shù)據(jù)庫系統(tǒng)本身以及其中存儲的所有對象的基本信息。第四十七頁,共五十六頁。數(shù)據(jù)庫對象所有的框架對象的定義(表、視圖、索引、群集、同義詞、序列、過程、函數(shù)、包、觸發(fā)器等)為框架對象如何分配和使用空間列的默認(rèn)值完整性約束信息數(shù)據(jù)庫安全信息,包括用戶、權(quán)限、角色等審計信息第四十八頁,共五十六頁。一個數(shù)據(jù)字典包括基礎(chǔ)表,動態(tài)性能視圖及數(shù)據(jù)字典視圖。數(shù)據(jù)字典視圖又包含ALL視圖,USER視圖和DBA視圖。2.5.1數(shù)據(jù)字典的結(jié)構(gòu)第四十九頁,共五十六頁。

1.基礎(chǔ)表存儲相關(guān)數(shù)據(jù)庫信息的表,這些數(shù)據(jù)庫的信息包括表、索引、約束,以及所有其他數(shù)據(jù)庫對象結(jié)構(gòu)的信息。它們屬于SYS用戶,通過運(yùn)行SQL腳本來創(chuàng)建(在數(shù)據(jù)庫創(chuàng)建時自動發(fā)生)。是Oracle系統(tǒng)的核心。只有Oracle才能寫和讀取這些表?;A(chǔ)表中的存儲的信息通常是經(jīng)過加密處理的。大部分?jǐn)?shù)據(jù)字典基礎(chǔ)表的名稱中都包含“$”等特殊字符。第五十頁,共五十六頁。2.動態(tài)性能視圖在操作過程中,Oracle維護(hù)了一種“虛擬”表的集合,記錄當(dāng)前數(shù)據(jù)庫的活動。這些表稱為動態(tài)性能表。SYS擁有動態(tài)性能表,其名字都是以V_$開頭的。在這些表上面創(chuàng)建的視圖被稱為動態(tài)性能視圖(dynamicperformanceview)。可為這些視圖創(chuàng)建公共同義詞,同義詞名稱以V$開頭。第五十一頁,共五十六頁。3.ALL視圖包含了用戶查詢表時可以訪問的所有對象的信息。第五十二頁,共五十六頁。

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論