Oracle體系結構-基礎部分_第1頁
Oracle體系結構-基礎部分_第2頁
Oracle體系結構-基礎部分_第3頁
Oracle體系結構-基礎部分_第4頁
Oracle體系結構-基礎部分_第5頁
已閱讀5頁,還剩24頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第2章

Oracle體系結構ORACLE如同人體-它有哪些部分組成呀?每個部分負責什么呀?本章內容一、物理結構二、邏輯結構三、內存結構四、數(shù)據(jù)庫實例與進程五、數(shù)據(jù)字典一、物理結構Oracle數(shù)據(jù)庫文件包括數(shù)據(jù)文件、日志文件、控制文件、配置文件。1、數(shù)據(jù)文件用來存儲數(shù)據(jù)庫中的全部數(shù)據(jù),如數(shù)據(jù)庫表中的數(shù)據(jù)和索引數(shù)據(jù)。通常為后綴名為.dbf格式的文件。每個Oracle可以有一個或多個數(shù)據(jù)文件,一個數(shù)據(jù)文件只能屬于一個數(shù)據(jù)庫。每個數(shù)據(jù)文件又由若干物理塊組成;一個或多個數(shù)據(jù)文件組成表空間;2、日志文件(重做日志文件)用于記錄數(shù)據(jù)庫所做的全部變更(如增加、刪除、修改),以便在系統(tǒng)發(fā)生故障時,用它對數(shù)據(jù)庫進行恢復。名字通常為Log*.dbf格式。3、控制文件用于打開和存取數(shù)據(jù)庫。是較小的二進制文件,記錄了數(shù)據(jù)庫的物理結構,如:數(shù)據(jù)庫名、數(shù)據(jù)庫的數(shù)據(jù)文件和日志文件的名字和位置等信息。名字通常為Ctr*.ctl格式,如CtrlCIMS.ctl??刂莆募械膬热葜荒軌蛴蒓racle本身來修改。每個數(shù)據(jù)庫必須至少擁有一個控制文件。一個數(shù)據(jù)庫也可有多個控制文件,但是一個控制文件只能屬于一個數(shù)據(jù)庫。4、配置文件:是一個ASCII文本文件,記錄Oracle數(shù)據(jù)庫運行時的一些重要參數(shù)。名字通常為initsid*.ora格式,如:initCIMS.ora,SID相當于它所控制的數(shù)據(jù)庫的標識符。每個Oracle數(shù)據(jù)庫和實例都有它自己惟一的init.ora文件。二、Oracle的邏輯結構邏輯結構描述了數(shù)據(jù)庫從邏輯上如何來存儲數(shù)據(jù)塊中的數(shù)據(jù)。包括表空間、段、區(qū)、數(shù)據(jù)塊和模式對象。邏輯結構支配一個數(shù)據(jù)庫如何使用系統(tǒng)的物理空間,模式對象及其之間的關系則描述關系數(shù)據(jù)庫之間的設計。一個數(shù)據(jù)塊從邏輯上是由一個或多個表空間組成,表空間是數(shù)據(jù)塊中物理編組的數(shù)據(jù)倉庫,每個表空間由段構成,段由一組區(qū)組成,一個區(qū)由連續(xù)的數(shù)據(jù)塊組成。1、表空間表空間分類:Oracle中除了用戶創(chuàng)建的存放數(shù)據(jù)對象的數(shù)據(jù)表空間外,還有以下類型的表空間:1)System表空間(SystemTableSpace)2)回滾表空間(RollBackTableSpace)3)臨時表空間(TempTableSpace)系統(tǒng)表空間(SystemTableSpace):是每個Oracle數(shù)據(jù)庫必須具備部分,安裝時自動建立,存放表空間名稱、表空間所含數(shù)據(jù)文件等管理數(shù)據(jù)庫自身所需信息;如:數(shù)據(jù)字典、存儲過程、包、函數(shù)和觸發(fā)器定義、系統(tǒng)回滾段、數(shù)據(jù)庫對象定義,用戶過程等。每個Oracle數(shù)據(jù)庫必須至少有個默認表空間。系統(tǒng)表空間只保存屬于數(shù)據(jù)庫自身的相關數(shù)據(jù),用戶對象和數(shù)據(jù)保存在非系統(tǒng)表空間中。臨時表空間(TempTableSpace):是Oracle用于存儲實例運行過程中產(chǎn)生的所有臨時數(shù)據(jù),如執(zhí)行SQL語句產(chǎn)生的臨時表;類似于數(shù)據(jù)庫白板或草稿紙,記錄數(shù)據(jù)和進行的操作??梢杂卸鄠€臨時表空間;無臨時表空間將使用(SystemTableSpace)回滾表空間(RollBackTableSpace)所有Oracle數(shù)據(jù)庫都需要在一個地方保存恢復信息(Undo),用于存放回滾段(RollbackSegment)的表空間稱為回滾或簡稱RBS。Oracle將不完整或臨時中止的事務恢復的功能放在其核心功能中;2)表空間使用,在數(shù)據(jù)庫中使用多個表空間具有如下優(yōu)勢:能將數(shù)據(jù)字典與用戶數(shù)據(jù)分,避免因字典對象和用戶對象保存在同一個數(shù)據(jù)文件中而產(chǎn)生的I/O沖突。將回退數(shù)據(jù)與用戶數(shù)據(jù)分離,避免因硬盤損壞而導致永久性數(shù)據(jù)丟失。將表空間數(shù)據(jù)文件分散保存到不同硬盤上,平均分布物理I/O操作。將某個表空間設置為脫機狀態(tài)或聯(lián)機狀態(tài),對數(shù)據(jù)庫的一部分進行備份和恢復。將某個表空間設置為只讀,將數(shù)據(jù)庫的一部分設置為只讀狀態(tài)。為某種特殊用途專門設置一個表空間,比如臨時表空間等,優(yōu)化表空間的使用效率。更加靈活地為用戶設置表空間限額。3)表空間中對象存儲若表空間只對應一個數(shù)據(jù)文件,該表空間中所有對象都存儲在此數(shù)據(jù)文件中。若表空間對應于多個數(shù)據(jù)文件,可將一個對象的數(shù)據(jù)存儲在該表空間的任意一個數(shù)據(jù)文件中,也可將同一個對象的數(shù)據(jù)分布在表空間的多個數(shù)據(jù)文件中。2、段1)數(shù)據(jù)段數(shù)據(jù)段中保存表中記錄。用CREATE語句創(chuàng)建表或簇時,Oracle自動創(chuàng)建數(shù)據(jù)段。Oracle中所有未分區(qū)的表都使用一個段來保存數(shù)據(jù),而分區(qū)的表將為每個分區(qū)建立一個獨立數(shù)據(jù)段。2)索引段在使用CREATEINDEX語句創(chuàng)建索引時,Oracle為一個索引或一個索引分區(qū)創(chuàng)建索引段。在Oracle數(shù)據(jù)庫中每個未分區(qū)索引都有一個索引段保存索引中索引條目。對于一個分區(qū)索引,每個分區(qū)都有一個索引段保存它的數(shù)據(jù)。3)臨時段當處理查詢時,Oracle可能會需要使用到一些臨時存儲空間,用于臨時保存解析過的查詢語句以及在排序過程中產(chǎn)生的臨時數(shù)據(jù)。Oracle會自動在專門用于存儲臨時數(shù)據(jù)的表空間為操作分配臨時段。4)回退段:回滾段用于存放數(shù)據(jù)修改之前的值(包括數(shù)據(jù)修改之前的位置和值),作用主要有以下幾方面:事務回滾事務恢復讀一致性3、區(qū)區(qū)是由很多連續(xù)的數(shù)據(jù)塊組成的數(shù)據(jù)庫存儲空間。缺省情況下,數(shù)據(jù)庫會使用表空間中存儲的存儲參數(shù)來管理他們的區(qū)。主要的幾個存儲參數(shù):Initial:段建立時分配的第一個區(qū)的大小(單位:字節(jié))Next:段內分配的下一個增量區(qū)大小(單位:字節(jié))MaxExtents:分配給段的區(qū)總數(shù)。MinExtents:建立段時分配的區(qū)的總數(shù),也就是段的最小區(qū)數(shù)量。PctEncrease:為段分配的每個增量區(qū)超過上一個區(qū)的百分比。Initrans:為初試數(shù)量的DML事務條目(并發(fā)訪問數(shù)據(jù)塊中的行)保留的預分配空間數(shù)量。Ntkxtrans:當多個事務同時訪問同一數(shù)據(jù)塊的行時,為數(shù)據(jù)塊中每個DML事務的條目分配的空間。4、數(shù)據(jù)庫塊數(shù)據(jù)庫塊也稱邏輯塊或Oracle塊,對應磁盤上一個或多個物理塊,大小由初始化參數(shù)(db_block_size)在文件(init.ora)決定,典型大小是2k。Pckfree和Pctused兩個參數(shù)用來優(yōu)化數(shù)據(jù)塊空間的使用。

PCTFREE:塊中保留用于UPDATE操作的空間百分比,當數(shù)據(jù)占用的空間達到此上限時,新的數(shù)據(jù)將不能再插入到此塊中;

PCTUSED:指定塊中數(shù)據(jù)使用空間的最低百分比;5、模式對象Oracle數(shù)據(jù)庫的模式對象包括表、視圖、序列、同義詞、索引、觸發(fā)器、存儲過程等。三、內存結構系統(tǒng)全局區(qū)、軟件代碼區(qū)、程序全局區(qū)和排序區(qū)。1、系統(tǒng)全局區(qū)(SGA):是實例的主要部分SGA是內存結構的主要組成部分,是Oracle為一個實例分配的一組共享內存緩沖區(qū),保存著Oracle系統(tǒng)與所有數(shù)據(jù)庫用戶的共享信息,包括數(shù)據(jù)維護、SQL語句分析,重做日志管理等。數(shù)據(jù)塊緩沖區(qū)存放Oracle系統(tǒng)最近從數(shù)據(jù)文件中讀取的數(shù)據(jù)塊。又稱用戶數(shù)據(jù)高速緩沖區(qū),為所有與該實例相鏈接的用戶進程所共享。容量受物理容量限制。在Oracle9i中,緩存大小可直接由初始化參數(shù)DB_ACHESIZE指定,該參數(shù)可以直接以KB字節(jié)或MB字節(jié)為單位來設置數(shù)據(jù)庫緩存大小。字典緩沖區(qū)字典緩沖區(qū)用于保存數(shù)據(jù)字典中的行。數(shù)據(jù)字典緩沖區(qū)也通過最近最少使用(LRU)算法來管理。大小由數(shù)據(jù)庫內部管理。字典緩存區(qū)是SQL共享池的一部分,共享池的大小(以字節(jié)為單位)由數(shù)據(jù)庫文件init.ora中的Shared_pool_size參數(shù)來設置。重做日志緩沖區(qū)對數(shù)據(jù)庫進行修改的任何事務(Transaction)在記錄到重做日志之前都必須首先放到重做日志緩沖區(qū)(RedoLogBuffer.)中。重做日志緩沖區(qū)是專為此開辟的一塊內存區(qū)域,重做日志緩存中的內容將被LGWR后臺進程隨時寫入重做日志文件。共享SQL池(SharedSQLPool)相當于程序高速緩沖區(qū),所有的用戶程序都存放在共享SQL池中。包括庫高速緩存、數(shù)據(jù)字典高速緩存和服務器控制結構。共享池大小取決于init.ora文件參數(shù)Shared_pool_size,以字節(jié)為單位用戶必須將該值設得足夠大,以確保有足夠可用空間來裝載和存儲PL/SQL塊和SQL語句。Java池:Java池為Java命令提供語法分析多緩沖池:緩沖池把大數(shù)據(jù)集與其他的應用程序分開,以減少它們爭奪數(shù)據(jù)塊緩沖區(qū)內相同的資源。可在SGA中創(chuàng)建多個緩沖池。2、程序全局區(qū)PGA(ProgramGlobalArea,PGA)是單個Oracle進程使用的內存區(qū)域,不屬于實例的內存結構。含有單個進程工作時需要的數(shù)據(jù)和控制信息,PGA是非共享的,只有服務進程本身才能夠訪問它自己的PGA區(qū)。3、排序區(qū)排序區(qū)存在于請求排序的用戶進程的內存中,由于排序需要內存空間,Oracle利用該內存排序數(shù)據(jù),這部分空間稱為排序區(qū)。該空間的大小為適應排序數(shù)據(jù)量的大小,可增長,但受初始化參數(shù):Sort_area_sizer所限制。4、軟件代碼區(qū):用于存儲正在執(zhí)行的或可以執(zhí)行的程序代碼。是只讀,可安裝成共享或非共享。Oracle系統(tǒng)程序是共享的,多個Oracle用戶可存取它,無需在內存有多個副本。用戶程序可以共享也可以不共享。四、數(shù)據(jù)庫實例與進程1、Oracle數(shù)據(jù)庫實例數(shù)據(jù)庫是指物理上的數(shù)據(jù)庫文件或邏輯上的數(shù)據(jù)庫結構。基于之上管理和控制物理數(shù)據(jù)庫的軟件系統(tǒng),稱為數(shù)據(jù)庫管理系統(tǒng)(DBMS)。數(shù)據(jù)庫實例是指軟件系統(tǒng)中用來訪問數(shù)據(jù)庫文件集的存儲結構以及后臺進程的集合,它是存取和控制數(shù)據(jù)庫的軟件機制。2、進程進程又稱任務,一個進程執(zhí)行一組操作,完成一個特定的任務。對Oracle數(shù)據(jù)庫管理系統(tǒng)來說,進程由用戶進程、服務器進程和后臺進程所組成。進程與程序的區(qū)別在于前者是一個動態(tài)概念,后者是一個靜態(tài)實體;程序僅僅是指令的有序集合,而進程則強調執(zhí)行過程。進程可以動態(tài)地創(chuàng)建,完成任務后即會消亡。用戶進程當用戶運行一個應用程序時,系統(tǒng)就為它建立一個用戶進程。用戶進程執(zhí)行的是一個應用程序或Oracle工具程序的代碼,以完成用戶所指定的任務。用戶進程不是實例。服務器進程服務器進程處理與應用程序相連的用戶進程的請求,它與用戶進程相通訊,為相連的用戶進程的Oracle請求服務。3、后臺進程Oracle的后臺進程主要包括:SMON——系統(tǒng)監(jiān)控進程(SystemMonitor)PMON——進程監(jiān)控進程(Processmonitor)DBWR——數(shù)據(jù)庫寫進程LGWR——日志文件寫進程ARCH——歸檔進程(Archiverprocess)RECO——恢復進程LCKN——封鎖進程進程名功能數(shù)據(jù)庫書寫進程DBWR將修改過的數(shù)據(jù)塊寫回到數(shù)據(jù)文件日志書寫進程LGWR將重做日志記錄寫回到聯(lián)機日志文件系統(tǒng)監(jiān)視進程SMON執(zhí)行崩潰恢復和聯(lián)合自由空間進程監(jiān)視進程PMON查看進程是否過早斷開,釋放任何容納的鎖,并處理任何其它必要的清除任務檢查點進程CKPT定期檢查數(shù)據(jù)庫歸檔進程ARCH將已寫滿的聯(lián)機日志文件復制到歸檔日志文件隊列監(jiān)視進程QMON管理消息隊列恢復進程RECO在分布式數(shù)據(jù)庫中恢復失敗的事務Oracle典型后臺進程功能五、數(shù)據(jù)字典數(shù)據(jù)字典是Oracle數(shù)據(jù)庫的核心組件,對用戶是只讀類型表和視圖組成。保存著關于數(shù)據(jù)庫系統(tǒng)本身以及其中存儲的所有對象的基本信息數(shù)據(jù)庫對象中所有框架對象的定義,如表、視圖、索引、群集、同義詞、序列、過程、函數(shù)、包、觸發(fā)器等框架對象如何分配和使用空間列默認值完整性約束信息安全信息,如用戶、權限、角色審計信息數(shù)據(jù)字典表和視圖均保存在系統(tǒng)表空間1、數(shù)據(jù)字典的結構一個數(shù)據(jù)字典包括基礎表,動態(tài)性能視圖及數(shù)據(jù)字典視圖。數(shù)據(jù)字典視圖又包含ALL視圖,USER視圖和DBA視圖。1)基礎表存儲相關數(shù)據(jù)庫信息的表,這些數(shù)據(jù)庫的信息包括表、索引、約束,以及所有其他數(shù)據(jù)庫對象結構的信息。它們屬于SYS用戶,通過運行SQL腳本來創(chuàng)建(在數(shù)據(jù)庫創(chuàng)建時自動發(fā)生)。是Oracle系統(tǒng)的核心。只有Oracle才能寫和讀取這些表?;A表中的存儲的信息通常是經(jīng)過加密處理的。大部分數(shù)據(jù)字典基礎表的名稱中都包含“$”等特殊字符。2)動態(tài)性能視圖在操作過程中,Oracle維護了一種“虛擬”表的集合,記錄當前數(shù)據(jù)庫的活動。這些表稱為動態(tài)性能表。SYS擁有動態(tài)性能表,其名字都是以V_$開頭的。在這些表上面創(chuàng)建的視圖被稱為動態(tài)性能視圖(dynamicperformanceview)??蔀檫@些視圖創(chuàng)建公共同義詞,同義詞名稱以V$開頭。3)ALL視圖包含了用戶查詢表時可以訪問的所有對象的信息。4)USER視圖前綴為USER,每個數(shù)據(jù)庫用戶都擁有一套屬于自己的USER視圖。在USER視圖中包含了該用戶模式下所有

溫馨提示

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

評論

0/150

提交評論