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

下載本文檔

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

文檔簡介

1、2.1 物理結(jié)構(gòu)2.2 邏輯結(jié)構(gòu)2.3 內(nèi)存結(jié)構(gòu)2.4 數(shù)據(jù)庫實例與進(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ù)文件日志文件(又稱重做日志文件),用于記錄數(shù)據(jù)庫所做的全部變更(如增加、刪除、修改),以便在系統(tǒng)發(fā)生故障時,用它對數(shù)據(jù)庫進(jìn)行恢復(fù)。名字通常為Log*.dbf格式2.1.2 日志文件日志文件 根據(jù)在事務(wù)信息將被覆蓋時,是否應(yīng)該將文件歸檔,數(shù)據(jù)庫分為以下兩種歸檔模

2、式: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ù)庫運行時的一些重要參數(shù)。名字通常為initsid*.ora格式,如:initCIMS.ora,SID相

3、當(dāng)于它所控制的數(shù)據(jù)庫的標(biāo)識符。每個Oracle數(shù)據(jù)庫和實例都有它自己惟一的init.ora文件。 Oracle9i新引入一個服務(wù)器參數(shù)文件( S P F I L E ) , 一 個 服 務(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表

4、空間的分類 2表空間的使用 3表空間中對象的存儲2.2.1 表空間 Oracle中除了用戶創(chuàng)建的存放數(shù)據(jù)對象的數(shù)據(jù)表空間外,還有以下類型的表空間:(1)System表空間(2)回滾表空間(RollBack TableSpace)(3)臨時表空間(Temp TableSpace)1表空間的分類在數(shù)據(jù)庫中使用多個表空間具有如下優(yōu)勢:(1)能夠?qū)?shù)據(jù)字典與用戶數(shù)據(jù)分離開來,避免由于字典對象和用戶對象保存在同一個數(shù)據(jù)文件中而產(chǎn)生的10沖突。(2)能夠?qū)⒒赝藬?shù)據(jù)與用戶數(shù)據(jù)分離開來,避免由于硬盤損壞而導(dǎo)致永久性的數(shù)據(jù)丟失。(3)能夠?qū)⒈砜臻g的數(shù)據(jù)文件分散保存到不同硬盤上,平均分布物理10操作。2表空間的使

5、用 (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)能夠為某種特殊用途專門設(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數(shù)據(jù)段2.2.2 段 2索引段 3臨時段 4回退段 數(shù)據(jù)段中保存的是表中的記錄

6、。1數(shù)據(jù)段 在Oracle數(shù)據(jù)庫中每個未分區(qū)索引都有一個索引段保存索引中的索引條目。對于一個分區(qū)索引,每個分區(qū)都有一個索引段保存它的數(shù)據(jù)。2索引段 當(dāng)處理查詢時,Oracle可能會需要使用到一些臨時存儲空間,用于臨時保存解析過的查詢語句以及在排序過程中產(chǎn)生的臨時數(shù)據(jù)。Oracle會自動在專門用于存儲臨時數(shù)據(jù)的表空間為操作分配臨時段。3臨時段 回滾段用于存放數(shù)據(jù)修改之前的值(包括數(shù)據(jù)修改之前的位置和值)?;貪L段的作用主要有以下幾方面:(1)事務(wù)回滾(2)事務(wù)恢復(fù)(3)讀一致性4回退段 區(qū)是由很多連續(xù)的數(shù)據(jù)塊組成的數(shù)據(jù)庫存儲空間。缺省情況下,數(shù)據(jù)庫會使用表空間中存儲的存儲參數(shù)來管理他們的區(qū)。2.2

7、.3 區(qū) 主要的幾個存儲參數(shù):主要的幾個存儲參數(shù):INITIAL:段建立時分配的第一個區(qū)的大小(單位:字節(jié)):段建立時分配的第一個區(qū)的大?。▎挝唬鹤止?jié))NEXT:段內(nèi)分配的下一個增量區(qū)大?。▎挝唬鹤止?jié)):段內(nèi)分配的下一個增量區(qū)大小(單位:字節(jié))MAXEXTENTS:分配給段的區(qū)總數(shù)。:分配給段的區(qū)總數(shù)。MINEXTENTS:建立段時分配的區(qū)的總數(shù),也就是段的最:建立段時分配的區(qū)的總數(shù),也就是段的最小區(qū)數(shù)量。小區(qū)數(shù)量。PCTINCREASE:為段分配的每個增量區(qū)超過上一個區(qū)的:為段分配的每個增量區(qū)超過上一個區(qū)的百分比。百分比。INITRANS:為初試數(shù)量的:為初試數(shù)量的DML事務(wù)條目(并發(fā)訪問數(shù)

8、據(jù)事務(wù)條目(并發(fā)訪問數(shù)據(jù)塊中的行)保留的預(yù)分配空間數(shù)量。塊中的行)保留的預(yù)分配空間數(shù)量。NTKXTRANS:當(dāng)多個事務(wù)同時訪問同一數(shù)據(jù)塊的行時,:當(dāng)多個事務(wù)同時訪問同一數(shù)據(jù)塊的行時,為數(shù)據(jù)塊中每個為數(shù)據(jù)塊中每個DML事務(wù)的條目分配的空間。事務(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á)到此上限時,

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

10、統(tǒng)最近從數(shù)據(jù)文件中讀取的數(shù)據(jù)塊。數(shù)據(jù)塊緩沖區(qū)又稱用戶數(shù)據(jù)高速緩沖區(qū),為所有與該實例相鏈接的用戶進(jìn)程所共享。 1數(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ù)(Tra

11、nsaction)在記錄到重做日志之前都必須首先放到重做日志緩沖區(qū)(Redo Log Buffer.)中。重做日志緩沖區(qū)是專為此開辟的一塊內(nèi)存區(qū)域,重做日志緩存中的內(nèi)容將被LGWR后臺進(jìn)程隨時寫入重做日志文件。 3重做日志緩沖區(qū) 重做日志緩存是一個循環(huán)緩存區(qū),在使用時從頂端向底端寫入數(shù)據(jù),然后再返回到緩沖區(qū)的起始點循環(huán)寫入。重做日志緩沖區(qū)的大小(以字節(jié)為單位)由init.ora文件中的LOGBUFFER參數(shù)決定。 共享SQL池(Shared SQL Pool)相當(dāng)于程序高速緩沖區(qū),所有的用戶程序都存放在共享SQL池中。SQL共享池包括庫高速緩存、數(shù)據(jù)字典高速緩存和服務(wù)器控制結(jié)構(gòu)。4共享SQL池

12、 共享池的大小取決于init.ora文件參數(shù)SHARED_POOL_SIZE,它是以字節(jié)為單位的。用戶必須將這個值設(shè)得足夠大,以確保有足夠的可用空間來裝載和存儲PL/SQL塊和SQL語句。 Java池為Java命令提供語法分析。5Java池 緩沖池把大數(shù)據(jù)集與其他的應(yīng)用程序分開,以減少它們爭奪數(shù)據(jù)塊緩沖區(qū)內(nèi)相同的資源??梢栽赟GA中創(chuàng)建多個緩沖池 。6多緩沖池 程序全局區(qū)PGA(Program Global Area,PGA),是單個Oracle進(jìn)程使用的內(nèi)存區(qū)域,不屬于實例的內(nèi)存結(jié)構(gòu)。它含有單個進(jìn)程工作時需要的數(shù)據(jù)和控制信息,PGA是非共享的,只有服務(wù)進(jìn)程本身才能夠訪問它自己的PGA區(qū)。2.

13、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ū)(Software Code Area)用于存儲正在執(zhí)行的或可以執(zhí)行的程序代碼。軟件代碼區(qū)是只讀,可安裝成共享或非共享。Oracle系統(tǒng)程序是共享的,多個Oracle用戶可存取它,而不需要在內(nèi)存有多個副本。用戶程序可以共享也可以不共享。 2.3.4 軟件代碼區(qū) 2.4 數(shù)據(jù)庫實例與進(jìn)程2.4.1 Oracle數(shù)據(jù)庫實例2.4.2 進(jìn)程

14、數(shù)據(jù)庫是指物理上的數(shù)據(jù)庫文件或邏輯上的數(shù)據(jù)庫結(jié)構(gòu)。 基于之上管理和控制物理數(shù)據(jù)庫的軟件系統(tǒng),稱為數(shù)據(jù)庫管理系統(tǒng)(DBMS)。數(shù)據(jù)庫實例是指軟件系統(tǒng)中用來訪問數(shù)據(jù)庫文件集的存儲結(jié)構(gòu)以及后臺進(jìn)程的集合,它是存取和控制數(shù)據(jù)庫的軟件機(jī)制。 2.4.1 Oracle數(shù)據(jù)庫實例 進(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)實體;程序僅僅是指令的有序集合,而進(jìn)程則強(qiáng)調(diào)執(zhí)行過程。進(jìn)程可以動態(tài)地創(chuàng)建,完成任務(wù)后即會消亡。2.4.2 進(jìn)程

15、當(dāng)用戶運行一個應(yīng)用程序時,系統(tǒng)就為它建立一個用戶進(jìn)程。用戶進(jìn)程執(zhí)行的是一個應(yīng)用程序或Oracle工具程序的代碼,以完成用戶所指定的任務(wù)。用戶進(jìn)程不是實例。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)程(system monitor)(2)PMON進(jìn)程監(jiān)控進(jìn)程(process monitor)(3)DBWR數(shù)據(jù)庫寫進(jìn)程(4)LGWR日志文件寫進(jìn)程(5)ARCH歸檔進(jìn)程(archiver process)(6)RECO恢復(fù)進(jìn)程(7)LCKN封鎖進(jìn)

16、程3后臺進(jìn)程 2.5 數(shù)據(jù)字典數(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ǔ)表基礎(chǔ)表存儲相關(guān)數(shù)據(jù)庫信息的

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

溫馨提示

  • 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

提交評論