Oracle數(shù)據(jù)庫(kù)講義(第四章)課件_第1頁(yè)
Oracle數(shù)據(jù)庫(kù)講義(第四章)課件_第2頁(yè)
Oracle數(shù)據(jù)庫(kù)講義(第四章)課件_第3頁(yè)
Oracle數(shù)據(jù)庫(kù)講義(第四章)課件_第4頁(yè)
Oracle數(shù)據(jù)庫(kù)講義(第四章)課件_第5頁(yè)
已閱讀5頁(yè),還剩79頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

講義Oracle數(shù)據(jù)庫(kù)2009.3李明俊講義Oracle數(shù)據(jù)庫(kù)2009.3李明俊1第四章Oracle數(shù)據(jù)庫(kù)體系結(jié)構(gòu)

第四章Oracle數(shù)據(jù)庫(kù)體系結(jié)構(gòu)

2本章內(nèi)容4.1Oracle數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu)4.2Oracle數(shù)據(jù)庫(kù)的物理結(jié)構(gòu)4.3數(shù)據(jù)字典4.4Oracle的內(nèi)存結(jié)構(gòu)

本章內(nèi)容4.1Oracle數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu)34.1Oracle數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu)從邏輯上看,Oracle數(shù)據(jù)庫(kù)可以劃分為表空間、段、區(qū)和塊,以有效管理、存儲(chǔ)、檢索數(shù)據(jù)。4.1Oracle數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu)從邏輯上看,Oracl4Oracle數(shù)據(jù)庫(kù)結(jié)構(gòu)數(shù)據(jù)庫(kù)表空間用戶表空間索引表空間臨時(shí)表空間回退表空間段數(shù)據(jù)段索引段臨時(shí)段回退段區(qū)空閑區(qū)使用區(qū)數(shù)據(jù)文件用戶文件索引文件臨時(shí)文件回退文件數(shù)據(jù)塊Oracle數(shù)據(jù)庫(kù)結(jié)構(gòu)數(shù)據(jù)庫(kù)表空間用戶表空間索引表空間臨時(shí)表54.1.1表空間(TABLESPACE)1.表空間及其作用邏輯上來(lái)說(shuō),Oracle數(shù)據(jù)庫(kù)劃分為表空間,一個(gè)表空間通常將相關(guān)的邏輯結(jié)構(gòu)組織在一起。一個(gè)數(shù)據(jù)庫(kù)通常由一個(gè)或多個(gè)表空間組成,表空間可分為系統(tǒng)(SYSTEM)表空間和非系統(tǒng)表空間。數(shù)據(jù)庫(kù)的數(shù)據(jù)邏輯上存儲(chǔ)在表空間上,實(shí)際上存儲(chǔ)在表空間所對(duì)應(yīng)的物理數(shù)據(jù)文件上。4.1.1表空間(TABLESPACE)62.表空間類(lèi)型數(shù)據(jù)字典管理表空間—Oracle8以下版本采用。本地化管理表空間—Oracle8i以上版本采用。Oracle8i-Oracle9iRelease1兩種方法都可采用。Oracle9iRelease2完全采用本地化管理表空間。兩種管理方法的區(qū)別:--數(shù)據(jù)字典管理表空間當(dāng)空間需要擴(kuò)充時(shí)必須通過(guò)查詢數(shù)據(jù)字典來(lái)查找空閑塊,對(duì)磁盤(pán)碎片不能自動(dòng)合并。--本地化管理表空間使用位圖的方法查找空閑空間,產(chǎn)生的磁盤(pán)碎片可以自動(dòng)合并。目前安裝的數(shù)據(jù)庫(kù)是Oracle9iRelease2版,可通過(guò)查詢DBA_TABLESPACES了解表空間的狀態(tài)。2.表空間類(lèi)型7表空間用戶表空間系統(tǒng)表空間數(shù)據(jù)庫(kù)磁盤(pán)驅(qū)動(dòng)器1

磁盤(pán)驅(qū)動(dòng)器2

數(shù)據(jù)文件1數(shù)據(jù)文件2數(shù)據(jù)文件3表空間用戶表空間系統(tǒng)表空間數(shù)據(jù)庫(kù)磁盤(pán)磁盤(pán)數(shù)據(jù)文件1數(shù)據(jù)文件28一個(gè)表空間中的數(shù)據(jù)文件的個(gè)數(shù)與操作系統(tǒng)有關(guān),一般來(lái)說(shuō)是1022個(gè);一個(gè)數(shù)據(jù)庫(kù)中的數(shù)據(jù)文件的最大個(gè)數(shù)是65533。使用CREATEDATABASE或CREATECONTROLFILE語(yǔ)句中的MAXDATAFILES參數(shù)會(huì)限制每一個(gè)數(shù)據(jù)庫(kù)的數(shù)據(jù)文件個(gè)數(shù)。數(shù)據(jù)庫(kù)的表空間個(gè)數(shù)沒(méi)有限制,但數(shù)據(jù)庫(kù)只允許65533個(gè)數(shù)據(jù)文件,一個(gè)表空間至少有一個(gè)數(shù)據(jù)文件,因此數(shù)據(jù)庫(kù)的表空間數(shù)不能超過(guò)65533個(gè)。

一個(gè)表空間中的數(shù)據(jù)文件的個(gè)數(shù)與操作系統(tǒng)有關(guān),一般來(lái)說(shuō)是1029數(shù)據(jù)庫(kù)管理員(DBA)可利用表空間完成下列工作:控制數(shù)據(jù)庫(kù)數(shù)據(jù)的磁盤(pán)分配。將確定的空間份額分配給數(shù)據(jù)庫(kù)用戶。通過(guò)使單個(gè)表空間聯(lián)機(jī)或脫機(jī),控制數(shù)據(jù)的可用性。執(zhí)行部分?jǐn)?shù)據(jù)庫(kù)后備或恢復(fù)操作。為提高性能,跨越設(shè)備分配數(shù)據(jù)存儲(chǔ)。數(shù)據(jù)庫(kù)管理員(DBA)可利用表空間完成下列工作:103.建立表空間下列命令建立一個(gè)表空間的格式:CREATETABLESPACEtablespaceDATAFILEdatafileSIZEnnnM【autoxtendonnextnnnMmaxsizennnnM|unlimited】EXTENTMANAGEMENTLOCALUNIFORMSIZEnnnM|AUTOALLOCATE;tablespace—表空間datafile--數(shù)據(jù)文件autoxtendonnext—文件空間自動(dòng)增加EXTENTMANAGEMENTLOCAL—代表本地化表空間UNIFORM–區(qū)大小相同AUTOALLOCATE–區(qū)大小系統(tǒng)動(dòng)態(tài)自動(dòng)分配3.建立表空間下列命令建立一個(gè)表空間的格式:11下列命令建立一個(gè)USER_DATA本地化管理表空間,尺寸為100M。CREATETABLESPACEUSER_DATADATAFILE′f:\oracle\oradata\test\userl_data.dbf′SIZE100mautoxtendonnext100mmaxsize1000mEXTENTMANAGEMENTLOCALUNIFORMsize500k;

其中:′f:\oracle\oradata\test\userl_data.dbf′SIZE100mautoxtendonnext100mmaxsize1000m是對(duì)數(shù)據(jù)文件的描述,而下面的子句是對(duì)表空間的描述。EXTENTMANAGEMENTLOCALUNIFORMsize500k;下列命令建立一個(gè)USER_DATA本地化管理表空間,尺寸為112下列命令建立一個(gè)USER_DATA本地化管理表空間,尺寸為300M,DATAFILE從句指定多個(gè)數(shù)據(jù)文件,并用逗號(hào)隔開(kāi),以建立大容量的數(shù)據(jù)文件。CREATETABLESPACEUSER_DATADATAFILE′f:\oracle\oradata\test\userl_data.dbf′SIZE100mautoxtendonnext100mmaxsize1000m,′f:\oracle\oradata\test\user2_data.dbf′SIZE100mautoxtendonnext100mmaxsizeunlimited,′f:\oracle\oradata\test\user3_data.dbf′SIZE100mEXTENTMANAGEMENTLOCALUNIFORMsize500k;下列命令建立一個(gè)USER_DATA本地化管理表空間,尺寸13下列命令建立一個(gè)臨時(shí)表空間,使用臨時(shí)表空間可以使得排序操作更加有效,以改進(jìn)性能。臨時(shí)表空間內(nèi)不能駐留永久數(shù)據(jù)。只能為臨時(shí)段指定臨時(shí)表空間。CreatetemporaryTablespaceTEMP2Tempfile'D:\oracle\oradata\test\Temp01.dbf'Size500MEXTENTMANAGERMENTLOCALUniformSize5M;下列命令建立一個(gè)臨時(shí)表空間,使用臨時(shí)表空間可以使得排序操作更144.修改表空間1.修改表空間的數(shù)據(jù)文件,給表空間增加數(shù)據(jù)文件ALTERTABLESPACEUSER_DATAADDDATAFILE′f:\oracle\oradata\user01.dbf′SIZE30M;2.修改表空間的可用性,將表空間聯(lián)機(jī)ALTERTABLESPACEUSER_DATAONLINE;3.修改表空間的非可用性,將表空間脫機(jī)ALTERTABLESPACEAPPL_DATAOFFLINE;4.修改表空間管理只讀模式ALTERTABLESPACEUSER_DATAREADONLY;5.修改表空間管理只讀寫(xiě)模式ALTERTABLESPACEUSER_DATAREADWRITE;4.修改表空間155.查詢表空間信息有關(guān)表空間的信息,可以查詢DBA_TABLESPACES、DBA_DATA_FILES、DBA_FREE_SPACE、V$TABLESPACE、V$SORT_USAGE、V$DATAFILE等數(shù)據(jù)字典和視圖。DBA_TABLESPACES包含了數(shù)據(jù)庫(kù)中所有表空間的信息(表空間名字、默認(rèn)的存儲(chǔ)參數(shù)、類(lèi)型、狀態(tài)、是否永久/臨時(shí)等),而USER_TABLESPACES包含了用戶擁有的表空間的信息。查詢DBA_DATA_FILES返回表空間數(shù)據(jù)文件信息(表空間名、表空間的數(shù)據(jù)文件、數(shù)據(jù)文件尺寸),是否自動(dòng)擴(kuò)展設(shè)置信息。SELECTFILE_NAME,TABLESPACE_NAME,BYTES,AUTOEXTENTSIBLE,MAXBYTESFROMDBA_DATA_FILES;5.查詢表空間信息有關(guān)表空間的信息,可以查詢DBA_TABL16查詢DBA_FREE_SPACE返回所有表空間中可用的自由區(qū),查詢一個(gè)表空間總的自由空間;USER_FREE_SPACE顯示當(dāng)前用戶擁有的表空間中的自由區(qū)。SELECTTABLESPACE_NAME,SUM(BYTES)FREE_SPACE FROMDBA_FREE_SPACEGROUPBYTABLESPACE_NAME;查詢?cè)撘晥D從控制文件獲得表空間名。SELECT*FROMV$TABLESPACE;Oracle數(shù)據(jù)庫(kù)講義(第四章)課件17V$DATAFILE,這是動(dòng)態(tài)性能視圖,包含數(shù)據(jù)文件名字、尺寸、數(shù)據(jù)文件所在的表空間名、數(shù)據(jù)文件的狀態(tài)(OFFLINE、ONLINE、READWRITE、READONLY)。其他視圖DBA_SEGMENTS、ALL_SEGMENTS、USER_SEGMENTS:包含段的類(lèi)型、段的尺寸、表空間相關(guān)的存儲(chǔ)參數(shù)。DBA_EXTENTS、ALL_EXTENTS、USER_EXTENTS:包含區(qū)的尺寸、與區(qū)相關(guān)的段和表空間信息。DBA_TEMP_FILES:包含本地化管理的臨時(shí)表空間的臨時(shí)文件。DBA_USERS:包含為用戶指定的默認(rèn)表空間和臨時(shí)表空間。V$TEMP_EXTENT_MAP:包含一個(gè)本地化管理的臨時(shí)表空間的所有區(qū)的信息V$DATAFILE,這是動(dòng)態(tài)性能視圖,包含數(shù)據(jù)文件名字186.UNDO表空間

UNDO表空間Oracle9i中引入的全新的概念,它自動(dòng)對(duì)回退段進(jìn)行管理,當(dāng)一個(gè)回退段不足時(shí),一個(gè)事務(wù)可以使用多個(gè)回退段,Oracle會(huì)自動(dòng)使用其他回退段,不終止事務(wù)的運(yùn)行。6.UNDO表空間194.1.2段(SEGMENT)段是表空間中指定類(lèi)型的邏輯存儲(chǔ)結(jié)構(gòu),是為表、索引等邏輯結(jié)構(gòu)分配的區(qū)(extent)的集合。Oracle的段主要有5種類(lèi)型。數(shù)據(jù)段:用于存儲(chǔ)表、分區(qū)的數(shù)據(jù)。每建立一張表,就分配一個(gè)段。索引段:存儲(chǔ)索引數(shù)據(jù)。每建立一個(gè)索引,就分配一個(gè)索引段。臨時(shí)段:數(shù)據(jù)庫(kù)執(zhí)行排序或子查詢時(shí)需要臨時(shí)工作區(qū),系統(tǒng)自動(dòng)建立臨時(shí)段,操作執(zhí)行結(jié)束自動(dòng)釋放臨時(shí)段?;赝硕危寒?dāng)用戶對(duì)數(shù)據(jù)庫(kù)執(zhí)行修改操作時(shí),系統(tǒng)將修改前的數(shù)據(jù)存入回退段,在執(zhí)行回退命令rollback時(shí),回退段中的數(shù)據(jù)用于撤消所作的修改。4.1.2段(SEGMENT)段是表空間中指定類(lèi)型的邏輯存204.1.3區(qū)(EXTENT)區(qū)是分配空間的最小單位。一個(gè)區(qū)由一組連續(xù)的邏輯塊組成。一個(gè)段至少包含一個(gè)區(qū)。當(dāng)一段中所有空間已使用完,Oracle為該段分配一個(gè)新的區(qū)。區(qū)的分配和回收是系統(tǒng)自動(dòng)完成的。4.1.3區(qū)(EXTENT)區(qū)是分配空間的最小單位。一個(gè)區(qū)214.1.4塊(BLOCK)塊是Oracle內(nèi)最小的邏輯單元,是I/O的最小單位。一個(gè)數(shù)據(jù)塊對(duì)應(yīng)一個(gè)或多個(gè)操作系統(tǒng)物理塊。塊的大小是在數(shù)據(jù)庫(kù)建立時(shí),使用參數(shù)DB_BLOCK_SIZE決定(系統(tǒng)缺省值為8K)。該參數(shù)在數(shù)據(jù)庫(kù)建立后不能更改,除非重建數(shù)據(jù)庫(kù)。4.1.4塊(BLOCK)塊是Oracle內(nèi)最小的邏輯單元224.2Oracle數(shù)據(jù)庫(kù)的物理結(jié)構(gòu)數(shù)據(jù)庫(kù)的物理結(jié)構(gòu)是數(shù)據(jù)庫(kù)中操作系統(tǒng)文件的集合。

Oracle數(shù)據(jù)庫(kù)文件數(shù)據(jù)庫(kù)數(shù)據(jù)文件控制文件重做日志重做日志參數(shù)文件口令文件歸檔的日志文件4.2Oracle數(shù)據(jù)庫(kù)的物理結(jié)構(gòu)數(shù)據(jù)庫(kù)的物理結(jié)構(gòu)是數(shù)據(jù)234.2.1數(shù)據(jù)文件

數(shù)據(jù)文件有如下特點(diǎn):每個(gè)數(shù)據(jù)庫(kù)至少有一個(gè)數(shù)據(jù)文件。每個(gè)數(shù)據(jù)文件只與一個(gè)表空間、一個(gè)數(shù)據(jù)庫(kù)相關(guān)。在數(shù)據(jù)庫(kù)中建立的表、索引等對(duì)象只能存儲(chǔ)在一個(gè)表空間中。但這些對(duì)象的物理存儲(chǔ)可以在該表空間的不同數(shù)據(jù)文件上。一般的做法是將表數(shù)據(jù)與索引數(shù)據(jù)存放在不同的數(shù)據(jù)文件上,將回退信息與臨時(shí)數(shù)據(jù)存放在不同的數(shù)據(jù)文件上。4.2.1數(shù)據(jù)文件數(shù)據(jù)文件有如下特點(diǎn):24對(duì)象1對(duì)象2對(duì)象3表空間1表空間2數(shù)據(jù)文件1數(shù)據(jù)文件2數(shù)據(jù)文件3對(duì)象4對(duì)象5

對(duì)象1對(duì)象2對(duì)象3表空間1表空間2數(shù)據(jù)文件1數(shù)據(jù)文件2數(shù)據(jù)文25創(chuàng)建數(shù)據(jù)文件,當(dāng)建立一個(gè)表空間時(shí),會(huì)建立相應(yīng)的數(shù)據(jù)文件。如建立一300M的數(shù)據(jù)文件。 CREATETABLESPACEAPPL_DATADATAFILE′f:\oracle\oradata\test\appl_data.dbf′SIZE300M;也可以給已經(jīng)存在的表空間增加數(shù)據(jù)文件。 ALTERTABLESPACEUSERSADDDATAFILE ′f:\oracle\oradata\test\appl_data.dbf′SIZE25M;查詢數(shù)據(jù)文件 通過(guò)V$DATAFILE,V$TEMPFILE,DBA_DATA_FILES,DAB_EXTENTS等數(shù)據(jù)字典和視圖可以查詢數(shù)據(jù)文件的相應(yīng)信息。例如查詢數(shù)據(jù)文件中的狀態(tài),名字。其中system01.dbf文件的狀態(tài)為system,表明該文件是系統(tǒng)表空間的一部分。創(chuàng)建數(shù)據(jù)文件,當(dāng)建立一個(gè)表空間時(shí),會(huì)建立相應(yīng)的數(shù)據(jù)文件。如建26調(diào)整數(shù)據(jù)文件的尺寸建立文件時(shí)設(shè)置AUTOEXTEND,使得數(shù)據(jù)文件尺寸自動(dòng)擴(kuò)展,或使用ALTERDATABASE設(shè)置自動(dòng)擴(kuò)展; CREATETABLESPACEAPPL_DATA DATAFILE′f:\oracle\oradata\test\appl_data.dbf′ SIZE500MAUTOEXTENDONNEXT100MMAXSIZE2000M; ALTERDATABASEDATAFILE ′f:\oracle\oradata\test\appl_data.dbf′ AUTOEXTENDONNEXT100MMAXSIZE2000M;另一方法是手工操作,執(zhí)行命令A(yù)LTERDATABASEDATAFILE的RESIZE從句來(lái)調(diào)整數(shù)據(jù)文件尺寸。 ALTERDATABASEDATAFILE′f:\oracle\oradata\test\appl_data.dbf′RESIZE1500M;調(diào)整數(shù)據(jù)文件的尺寸274.2.2重做日志Oracle數(shù)據(jù)庫(kù)的重做日志(redolog),也稱為事務(wù)日志(transactionlog),是數(shù)據(jù)庫(kù)的重要組成部分,用于保護(hù)所有已提交事務(wù)的工作。日志文件分為聯(lián)機(jī)重做日志文件和歸檔日志文件。日志文件的工作模式分為歸檔模式(Archivelog)和非歸檔模式(NoArchivelog)兩種。

數(shù)據(jù)庫(kù)的重做日志是存儲(chǔ)在硬盤(pán)上的一組系統(tǒng)數(shù)據(jù)文件。

日志文件組日志文件組歸檔的事務(wù)日志日志切換日志切換4.2.2重做日志Oracle數(shù)據(jù)庫(kù)的重做日志(redo28歸檔日志模式(Archivelog)當(dāng)聯(lián)機(jī)重做日志文件寫(xiě)滿一個(gè)后開(kāi)始寫(xiě)另一個(gè)聯(lián)機(jī)重做日志文件之前,把要開(kāi)始寫(xiě)的日志轉(zhuǎn)存到歸檔日志文件中,然后再寫(xiě)該日志,這種方式為歸檔模式。非歸檔日志模式(NoArchivelog)當(dāng)聯(lián)機(jī)重做日志文件寫(xiě)滿一個(gè)后直接覆蓋寫(xiě)另一個(gè)聯(lián)機(jī)重做日志文件,進(jìn)行循環(huán)覆蓋寫(xiě)聯(lián)機(jī)重做日值,會(huì)丟失最早的日志,這種方式為非歸檔模式。查看聯(lián)機(jī)重做日志文件信息 在V$Logfile、V$Log、V$Log_History等數(shù)據(jù)字典中,可以查看日志文件的組、狀態(tài)、名稱等信息。

歸檔日志模式(Archivelog)294.2.3控制文件控制文件用于記錄和維護(hù)數(shù)據(jù)庫(kù)的全局物理結(jié)構(gòu),是成功啟動(dòng)和操作數(shù)據(jù)庫(kù)必須的二進(jìn)制文件,以“.CTL”為文件后綴。一個(gè)數(shù)據(jù)庫(kù)至少需要一個(gè)控制文件,每個(gè)控制文件只與一個(gè)數(shù)據(jù)庫(kù)相關(guān)聯(lián)??刂莆募缦滦畔ⅲ簲?shù)據(jù)庫(kù)名數(shù)據(jù)庫(kù)建立時(shí)間數(shù)據(jù)庫(kù)中所有數(shù)據(jù)文件和日志文件的文件名和路徑表空間名稱當(dāng)前重做日志文件序號(hào)檢查點(diǎn)信息備份信息日志歷史記錄4.2.3控制文件控制文件用于記錄和維護(hù)數(shù)據(jù)庫(kù)的全局物理結(jié)30記錄控制文件名和路徑的參數(shù)在init.ora的control_files中。control_files=("F:\oracle\oradata\test\CONTROL01.CTL","F:\oracle\oradata\test\CONTROL02.CTL", "F:\oracle\oradata\test\CONTROL03.CTL")查看V$CONTROLFILE,得到控制文件的名稱和狀態(tài)。查看V$PARAMETER,得到所有初始化參數(shù)文件中的所有值、狀態(tài)等信息。查看V$CONTROLFILE_RECORD_SECTION,獲得控制文件的記錄段的信息。通過(guò)OEM導(dǎo)航樹(shù)來(lái)查看。3.控制文件的信息查看記錄控制文件名和路徑的參數(shù)在init.ora的control314.2.4參數(shù)文件參數(shù)文件確定存儲(chǔ)結(jié)構(gòu)的大小,設(shè)置數(shù)據(jù)庫(kù)的默認(rèn)值,設(shè)置數(shù)據(jù)庫(kù)的各種物理屬性,優(yōu)化數(shù)據(jù)庫(kù)性能。參數(shù)文件定義了Oracle實(shí)例(Instance)的特性,在建立數(shù)據(jù)庫(kù)或啟動(dòng)實(shí)例時(shí)必須訪問(wèn)參數(shù)文件。參數(shù)文件是一文本文件,可直接使用任何文本編輯器進(jìn)行編輯。在修改該文件前必須關(guān)閉數(shù)據(jù)庫(kù)。修改的參數(shù)在重啟數(shù)據(jù)庫(kù)時(shí)才生效。

4.2.4參數(shù)文件參數(shù)文件確定存儲(chǔ)結(jié)構(gòu)的大小,設(shè)置數(shù)據(jù)庫(kù)的32參數(shù)文件包含有實(shí)例配置參數(shù),這些參數(shù)置成特殊值,用于初始Oracle實(shí)例的許多內(nèi)存和進(jìn)程設(shè)置,該參數(shù)文件包含:一組實(shí)例參數(shù)的值;一個(gè)實(shí)例所啟動(dòng)的數(shù)據(jù)庫(kù)名字;在SGA中存儲(chǔ)結(jié)構(gòu)使用多少內(nèi)存;如何處理聯(lián)機(jī)日志文件;數(shù)據(jù)庫(kù)控制文件的名稱和位置;回退段的信息。參數(shù)文件包含有實(shí)例配置參數(shù),這些參數(shù)置成特殊值,用于初始Or334.2.5其他Oracle文件其他Oracle文件主要有:口令文件,用于存放用戶口令的加密文件歸檔文件,包含恢復(fù)所需的庫(kù)結(jié)構(gòu)和數(shù)據(jù)文件的副本警告文件,存放Oracle數(shù)據(jù)庫(kù)運(yùn)行當(dāng)中出現(xiàn)的各種消息、警告和錯(cuò)誤信息。跟蹤文件,用于存儲(chǔ)后臺(tái)進(jìn)程和服務(wù)器進(jìn)程的跟蹤信息,包括后臺(tái)進(jìn)程的警告和錯(cuò)誤信息,每個(gè)后臺(tái)進(jìn)程都有相應(yīng)的跟蹤文件,以“.TRC”為文件后綴服務(wù)器進(jìn)程跟蹤文件,主要跟蹤SQL語(yǔ)句,通過(guò)它了解SQL語(yǔ)句的性能,并進(jìn)行相應(yīng)的調(diào)整。4.2.5其他Oracle文件其他Oracle文件主要有:344.3數(shù)據(jù)字典數(shù)據(jù)字典是由一組擁有數(shù)據(jù)庫(kù)元數(shù)據(jù)的表和視圖組成,用于存儲(chǔ)Oracle數(shù)據(jù)庫(kù)的結(jié)構(gòu)信息。數(shù)據(jù)字典一般在創(chuàng)建數(shù)據(jù)庫(kù)時(shí)建立,沒(méi)有數(shù)據(jù)字典,PL/SQL就沒(méi)法執(zhí)行。數(shù)據(jù)字典分為靜態(tài)字典和動(dòng)態(tài)字典。4.3.1靜態(tài)數(shù)據(jù)字典靜態(tài)數(shù)據(jù)字典主要是表和視圖。一般來(lái)說(shuō),數(shù)據(jù)字典中的表是不能被訪問(wèn)的??梢栽L問(wèn)的是數(shù)據(jù)字典中的視圖。靜態(tài)數(shù)據(jù)字典中的視圖分為3類(lèi),分別有3個(gè)前綴構(gòu)成。user_*、all_*、dba_*4.3.2動(dòng)態(tài)數(shù)據(jù)字典動(dòng)態(tài)視圖提供有關(guān)內(nèi)存和磁盤(pán)的運(yùn)行情況,用戶只能讀動(dòng)態(tài)視圖,不能寫(xiě)。動(dòng)態(tài)視圖以V$為前綴,例如V$logfile、V$session、V$active_instances、V$context等。4.3數(shù)據(jù)字典數(shù)據(jù)字典是由一組擁有數(shù)據(jù)庫(kù)元數(shù)據(jù)的表和視圖組354.4Oracle的內(nèi)存結(jié)構(gòu)4.4.1系統(tǒng)全局區(qū):SystemGlobalArea—SGA數(shù)據(jù)塊緩沖區(qū)—與數(shù)據(jù)文件進(jìn)行數(shù)據(jù)交換重做日志緩沖區(qū)—與日志文件進(jìn)行數(shù)據(jù)交換SQL共享池—處理SQL語(yǔ)句的內(nèi)存空間,由庫(kù)緩沖、數(shù)據(jù)字典緩沖以及用戶全局區(qū);4.4.2程序全局區(qū):ProgramGlobalArea—PGA是非共享區(qū),存儲(chǔ)用戶SQL語(yǔ)句中的變量、數(shù)組等;4.4.3排序區(qū):存放用戶排序數(shù)據(jù),當(dāng)數(shù)據(jù)量超出排序區(qū)大小時(shí),將占用磁盤(pán)臨時(shí)段。內(nèi)存結(jié)構(gòu)圖在下頁(yè)。4.4Oracle的內(nèi)存結(jié)構(gòu)36Oracle內(nèi)存結(jié)構(gòu)用戶進(jìn)程程序區(qū)PGAProgramGlobalArea排序區(qū)共享區(qū)SQL數(shù)據(jù)緩存區(qū)日志緩存過(guò)程.包庫(kù)緩沖字典緩沖用戶全局區(qū)全局區(qū)(SystemGlobalArea—SGA)LGWRARCHDBWR服務(wù)器進(jìn)程數(shù)據(jù)文件日志文件歸檔日志文件Oracle內(nèi)存結(jié)構(gòu)用戶進(jìn)程程序區(qū)共享區(qū)SQL374.4.4后臺(tái)進(jìn)程后臺(tái)進(jìn)程用于處理并行用戶請(qǐng)求所需的通用功能,它們不會(huì)損害系統(tǒng)的完整性和性能。它們把為每個(gè)用戶運(yùn)行的多個(gè)Oracle程序所處理的功能統(tǒng)一起來(lái)。后臺(tái)進(jìn)程執(zhí)行I/O并監(jiān)控其他Oracle進(jìn)程以增加并行性,從而使性能和可靠性更加優(yōu)越。每個(gè)例程至少包括5個(gè)基本的后臺(tái)進(jìn)程:DBWR—DatabaseWriter數(shù)據(jù)寫(xiě)入進(jìn)程;LGWR—LOGWriter日志寫(xiě)入進(jìn)程;SMON—SystemMonitor系統(tǒng)監(jiān)控進(jìn)程PMON—ProcessMonitor進(jìn)程監(jiān)控進(jìn)程;CKPT—CheckPoint檢查點(diǎn)進(jìn)程。4.4.4后臺(tái)進(jìn)程后臺(tái)進(jìn)程用于處理并行用戶請(qǐng)求所需的通用功38數(shù)據(jù)庫(kù)寫(xiě)進(jìn)程(DBWR)負(fù)責(zé)將更新的數(shù)據(jù)從數(shù)據(jù)庫(kù)緩沖區(qū)高速緩存寫(xiě)入數(shù)據(jù)文件。日志寫(xiě)進(jìn)程(LGWR)將重做日志緩沖區(qū)中注冊(cè)的更改寫(xiě)入重做日志文件。系統(tǒng)監(jiān)控進(jìn)程(SMON)系統(tǒng)監(jiān)控程序在數(shù)據(jù)庫(kù)啟動(dòng)時(shí),負(fù)責(zé)檢查數(shù)據(jù)庫(kù)的一致性,對(duì)數(shù)據(jù)庫(kù)進(jìn)行恢復(fù)操作過(guò)程監(jiān)視進(jìn)程(PMON)是一個(gè)被定時(shí)喚醒的后臺(tái)進(jìn)程,負(fù)責(zé)在一個(gè)Oracle進(jìn)程失敗時(shí)清理資源檢查點(diǎn)進(jìn)程(CKPT)-當(dāng)日志文件切換時(shí)產(chǎn)生,檢查內(nèi)存數(shù)據(jù)是否完整寫(xiě)入當(dāng)前文件。歸檔進(jìn)程(ARCH)-在歸檔模式下,把重做日志文件寫(xiě)入歸檔日志文件。數(shù)據(jù)庫(kù)寫(xiě)進(jìn)程(DBWR)394.5小結(jié)Oracle數(shù)據(jù)庫(kù)的體系結(jié)構(gòu)包括物理結(jié)構(gòu)、邏輯結(jié)構(gòu)和例程。邏輯結(jié)構(gòu)代表Oracle數(shù)據(jù)庫(kù)中表、索引等可見(jiàn)部分;物理結(jié)構(gòu)代表Oracle內(nèi)部使用的存儲(chǔ)方式,如數(shù)據(jù)文件、控制文件。從邏輯上看,Oracle數(shù)據(jù)庫(kù)可以劃分為表空間、段、區(qū)和塊,以有效管理、存儲(chǔ)、檢索數(shù)據(jù)。一個(gè)數(shù)據(jù)庫(kù)由若干個(gè)表空間組成。一個(gè)表空間由若干個(gè)相同或不同類(lèi)型的段組成。在建立一個(gè)段時(shí),至少包含一個(gè)區(qū),區(qū)由連續(xù)的數(shù)據(jù)塊組成。隨著段的增長(zhǎng),區(qū)的個(gè)數(shù)會(huì)增加。數(shù)據(jù)塊是Oracle讀寫(xiě)的基本單元。一個(gè)數(shù)據(jù)塊不同于物理文件塊,一個(gè)數(shù)據(jù)塊對(duì)應(yīng)一個(gè)或多個(gè)物理文件的物理塊。從邏輯上看,Oracle數(shù)據(jù)庫(kù)可以劃分為表空間、段、區(qū)和塊,以有效管理、存儲(chǔ)、檢索數(shù)據(jù)。4.5小結(jié)Oracle數(shù)據(jù)庫(kù)的體系結(jié)構(gòu)包括物理結(jié)構(gòu)、邏輯結(jié)40數(shù)據(jù)庫(kù)的物理結(jié)構(gòu)是數(shù)據(jù)庫(kù)中操作系統(tǒng)文件的集合。Oracle數(shù)據(jù)庫(kù)主要有數(shù)據(jù)文件、控制文件、重做日志文件、初始化參數(shù)文件和其他Oracle物理文件。數(shù)據(jù)字典是由一組擁有數(shù)據(jù)庫(kù)元數(shù)據(jù)的表和視圖組成,用于存儲(chǔ)Oracle數(shù)據(jù)庫(kù)的結(jié)構(gòu)信息。數(shù)據(jù)字典用來(lái)描述數(shù)據(jù)的組織方式,用戶不能直接更新數(shù)據(jù)字典,當(dāng)用戶執(zhí)行相應(yīng)操作時(shí),Oracle自動(dòng)更新數(shù)據(jù)字典,數(shù)據(jù)字典對(duì)用戶和DBA是只讀的。Oracle服務(wù)器有一個(gè)Oracle例程和一個(gè)Oracle數(shù)據(jù)庫(kù)組成。Oracle例程可以分為后臺(tái)進(jìn)程和內(nèi)存結(jié)構(gòu)兩部分。必須啟動(dòng)例程才能訪問(wèn)數(shù)據(jù)庫(kù),啟動(dòng)例程時(shí),會(huì)分配系統(tǒng)全局區(qū)SGA,并啟動(dòng)Oracle后臺(tái)進(jìn)程。SGA是用于存儲(chǔ)數(shù)據(jù)庫(kù)信息的內(nèi)存區(qū),該信息為數(shù)據(jù)庫(kù)進(jìn)程所共享。后臺(tái)進(jìn)程執(zhí)行I/O并監(jiān)控其他Oracle進(jìn)程。Oracle數(shù)據(jù)庫(kù)用于存儲(chǔ)和檢索信息,是數(shù)據(jù)的集合。數(shù)據(jù)庫(kù)的物理結(jié)構(gòu)是數(shù)據(jù)庫(kù)中操作系統(tǒng)文件的集合。Oracle數(shù)41內(nèi)存結(jié)構(gòu)是Oracle使用計(jì)算機(jī)內(nèi)存存儲(chǔ)Oracle運(yùn)行所需的數(shù)據(jù)和程序,可以分為SGA區(qū)(系統(tǒng)全局區(qū))和PGA區(qū)(程序全局區(qū))兩部分。Oracle是一個(gè)海量數(shù)據(jù)管理系統(tǒng),為運(yùn)行優(yōu)化,Oracle創(chuàng)建和使用了不同的內(nèi)存緩沖區(qū),以減少磁盤(pán)輸入/輸出次數(shù),并提高服務(wù)器性能,主要有高速緩存區(qū)、共享池和程序全局區(qū)。服務(wù)器進(jìn)程是指運(yùn)行在服務(wù)器上的程序,接受用戶進(jìn)程發(fā)出的請(qǐng)求,根據(jù)請(qǐng)求與數(shù)據(jù)庫(kù)通信,完成與數(shù)據(jù)庫(kù)的連接操作和I/O訪問(wèn)。用戶進(jìn)程是指在客戶機(jī)上運(yùn)行的程序,如SQLPlus、企業(yè)管理器等,用戶進(jìn)程向服務(wù)器進(jìn)程請(qǐng)求信息。后臺(tái)進(jìn)程是Oracle數(shù)據(jù)庫(kù)例程啟動(dòng)時(shí)自動(dòng)建立,用來(lái)管理數(shù)據(jù)庫(kù)的讀寫(xiě)、恢復(fù)和監(jiān)視工作,后臺(tái)進(jìn)程是服務(wù)器進(jìn)程和用戶進(jìn)程之間通訊的橋梁。

內(nèi)存結(jié)構(gòu)是Oracle使用計(jì)算機(jī)內(nèi)存存儲(chǔ)Oracle運(yùn)行所需42

講義Oracle數(shù)據(jù)庫(kù)2009.3李明俊講義Oracle數(shù)據(jù)庫(kù)2009.3李明俊43第四章Oracle數(shù)據(jù)庫(kù)體系結(jié)構(gòu)

第四章Oracle數(shù)據(jù)庫(kù)體系結(jié)構(gòu)

44本章內(nèi)容4.1Oracle數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu)4.2Oracle數(shù)據(jù)庫(kù)的物理結(jié)構(gòu)4.3數(shù)據(jù)字典4.4Oracle的內(nèi)存結(jié)構(gòu)

本章內(nèi)容4.1Oracle數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu)454.1Oracle數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu)從邏輯上看,Oracle數(shù)據(jù)庫(kù)可以劃分為表空間、段、區(qū)和塊,以有效管理、存儲(chǔ)、檢索數(shù)據(jù)。4.1Oracle數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu)從邏輯上看,Oracl46Oracle數(shù)據(jù)庫(kù)結(jié)構(gòu)數(shù)據(jù)庫(kù)表空間用戶表空間索引表空間臨時(shí)表空間回退表空間段數(shù)據(jù)段索引段臨時(shí)段回退段區(qū)空閑區(qū)使用區(qū)數(shù)據(jù)文件用戶文件索引文件臨時(shí)文件回退文件數(shù)據(jù)塊Oracle數(shù)據(jù)庫(kù)結(jié)構(gòu)數(shù)據(jù)庫(kù)表空間用戶表空間索引表空間臨時(shí)表474.1.1表空間(TABLESPACE)1.表空間及其作用邏輯上來(lái)說(shuō),Oracle數(shù)據(jù)庫(kù)劃分為表空間,一個(gè)表空間通常將相關(guān)的邏輯結(jié)構(gòu)組織在一起。一個(gè)數(shù)據(jù)庫(kù)通常由一個(gè)或多個(gè)表空間組成,表空間可分為系統(tǒng)(SYSTEM)表空間和非系統(tǒng)表空間。數(shù)據(jù)庫(kù)的數(shù)據(jù)邏輯上存儲(chǔ)在表空間上,實(shí)際上存儲(chǔ)在表空間所對(duì)應(yīng)的物理數(shù)據(jù)文件上。4.1.1表空間(TABLESPACE)482.表空間類(lèi)型數(shù)據(jù)字典管理表空間—Oracle8以下版本采用。本地化管理表空間—Oracle8i以上版本采用。Oracle8i-Oracle9iRelease1兩種方法都可采用。Oracle9iRelease2完全采用本地化管理表空間。兩種管理方法的區(qū)別:--數(shù)據(jù)字典管理表空間當(dāng)空間需要擴(kuò)充時(shí)必須通過(guò)查詢數(shù)據(jù)字典來(lái)查找空閑塊,對(duì)磁盤(pán)碎片不能自動(dòng)合并。--本地化管理表空間使用位圖的方法查找空閑空間,產(chǎn)生的磁盤(pán)碎片可以自動(dòng)合并。目前安裝的數(shù)據(jù)庫(kù)是Oracle9iRelease2版,可通過(guò)查詢DBA_TABLESPACES了解表空間的狀態(tài)。2.表空間類(lèi)型49表空間用戶表空間系統(tǒng)表空間數(shù)據(jù)庫(kù)磁盤(pán)驅(qū)動(dòng)器1

磁盤(pán)驅(qū)動(dòng)器2

數(shù)據(jù)文件1數(shù)據(jù)文件2數(shù)據(jù)文件3表空間用戶表空間系統(tǒng)表空間數(shù)據(jù)庫(kù)磁盤(pán)磁盤(pán)數(shù)據(jù)文件1數(shù)據(jù)文件250一個(gè)表空間中的數(shù)據(jù)文件的個(gè)數(shù)與操作系統(tǒng)有關(guān),一般來(lái)說(shuō)是1022個(gè);一個(gè)數(shù)據(jù)庫(kù)中的數(shù)據(jù)文件的最大個(gè)數(shù)是65533。使用CREATEDATABASE或CREATECONTROLFILE語(yǔ)句中的MAXDATAFILES參數(shù)會(huì)限制每一個(gè)數(shù)據(jù)庫(kù)的數(shù)據(jù)文件個(gè)數(shù)。數(shù)據(jù)庫(kù)的表空間個(gè)數(shù)沒(méi)有限制,但數(shù)據(jù)庫(kù)只允許65533個(gè)數(shù)據(jù)文件,一個(gè)表空間至少有一個(gè)數(shù)據(jù)文件,因此數(shù)據(jù)庫(kù)的表空間數(shù)不能超過(guò)65533個(gè)。

一個(gè)表空間中的數(shù)據(jù)文件的個(gè)數(shù)與操作系統(tǒng)有關(guān),一般來(lái)說(shuō)是10251數(shù)據(jù)庫(kù)管理員(DBA)可利用表空間完成下列工作:控制數(shù)據(jù)庫(kù)數(shù)據(jù)的磁盤(pán)分配。將確定的空間份額分配給數(shù)據(jù)庫(kù)用戶。通過(guò)使單個(gè)表空間聯(lián)機(jī)或脫機(jī),控制數(shù)據(jù)的可用性。執(zhí)行部分?jǐn)?shù)據(jù)庫(kù)后備或恢復(fù)操作。為提高性能,跨越設(shè)備分配數(shù)據(jù)存儲(chǔ)。數(shù)據(jù)庫(kù)管理員(DBA)可利用表空間完成下列工作:523.建立表空間下列命令建立一個(gè)表空間的格式:CREATETABLESPACEtablespaceDATAFILEdatafileSIZEnnnM【autoxtendonnextnnnMmaxsizennnnM|unlimited】EXTENTMANAGEMENTLOCALUNIFORMSIZEnnnM|AUTOALLOCATE;tablespace—表空間datafile--數(shù)據(jù)文件autoxtendonnext—文件空間自動(dòng)增加EXTENTMANAGEMENTLOCAL—代表本地化表空間UNIFORM–區(qū)大小相同AUTOALLOCATE–區(qū)大小系統(tǒng)動(dòng)態(tài)自動(dòng)分配3.建立表空間下列命令建立一個(gè)表空間的格式:53下列命令建立一個(gè)USER_DATA本地化管理表空間,尺寸為100M。CREATETABLESPACEUSER_DATADATAFILE′f:\oracle\oradata\test\userl_data.dbf′SIZE100mautoxtendonnext100mmaxsize1000mEXTENTMANAGEMENTLOCALUNIFORMsize500k;

其中:′f:\oracle\oradata\test\userl_data.dbf′SIZE100mautoxtendonnext100mmaxsize1000m是對(duì)數(shù)據(jù)文件的描述,而下面的子句是對(duì)表空間的描述。EXTENTMANAGEMENTLOCALUNIFORMsize500k;下列命令建立一個(gè)USER_DATA本地化管理表空間,尺寸為154下列命令建立一個(gè)USER_DATA本地化管理表空間,尺寸為300M,DATAFILE從句指定多個(gè)數(shù)據(jù)文件,并用逗號(hào)隔開(kāi),以建立大容量的數(shù)據(jù)文件。CREATETABLESPACEUSER_DATADATAFILE′f:\oracle\oradata\test\userl_data.dbf′SIZE100mautoxtendonnext100mmaxsize1000m,′f:\oracle\oradata\test\user2_data.dbf′SIZE100mautoxtendonnext100mmaxsizeunlimited,′f:\oracle\oradata\test\user3_data.dbf′SIZE100mEXTENTMANAGEMENTLOCALUNIFORMsize500k;下列命令建立一個(gè)USER_DATA本地化管理表空間,尺寸55下列命令建立一個(gè)臨時(shí)表空間,使用臨時(shí)表空間可以使得排序操作更加有效,以改進(jìn)性能。臨時(shí)表空間內(nèi)不能駐留永久數(shù)據(jù)。只能為臨時(shí)段指定臨時(shí)表空間。CreatetemporaryTablespaceTEMP2Tempfile'D:\oracle\oradata\test\Temp01.dbf'Size500MEXTENTMANAGERMENTLOCALUniformSize5M;下列命令建立一個(gè)臨時(shí)表空間,使用臨時(shí)表空間可以使得排序操作更564.修改表空間1.修改表空間的數(shù)據(jù)文件,給表空間增加數(shù)據(jù)文件ALTERTABLESPACEUSER_DATAADDDATAFILE′f:\oracle\oradata\user01.dbf′SIZE30M;2.修改表空間的可用性,將表空間聯(lián)機(jī)ALTERTABLESPACEUSER_DATAONLINE;3.修改表空間的非可用性,將表空間脫機(jī)ALTERTABLESPACEAPPL_DATAOFFLINE;4.修改表空間管理只讀模式ALTERTABLESPACEUSER_DATAREADONLY;5.修改表空間管理只讀寫(xiě)模式ALTERTABLESPACEUSER_DATAREADWRITE;4.修改表空間575.查詢表空間信息有關(guān)表空間的信息,可以查詢DBA_TABLESPACES、DBA_DATA_FILES、DBA_FREE_SPACE、V$TABLESPACE、V$SORT_USAGE、V$DATAFILE等數(shù)據(jù)字典和視圖。DBA_TABLESPACES包含了數(shù)據(jù)庫(kù)中所有表空間的信息(表空間名字、默認(rèn)的存儲(chǔ)參數(shù)、類(lèi)型、狀態(tài)、是否永久/臨時(shí)等),而USER_TABLESPACES包含了用戶擁有的表空間的信息。查詢DBA_DATA_FILES返回表空間數(shù)據(jù)文件信息(表空間名、表空間的數(shù)據(jù)文件、數(shù)據(jù)文件尺寸),是否自動(dòng)擴(kuò)展設(shè)置信息。SELECTFILE_NAME,TABLESPACE_NAME,BYTES,AUTOEXTENTSIBLE,MAXBYTESFROMDBA_DATA_FILES;5.查詢表空間信息有關(guān)表空間的信息,可以查詢DBA_TABL58查詢DBA_FREE_SPACE返回所有表空間中可用的自由區(qū),查詢一個(gè)表空間總的自由空間;USER_FREE_SPACE顯示當(dāng)前用戶擁有的表空間中的自由區(qū)。SELECTTABLESPACE_NAME,SUM(BYTES)FREE_SPACE FROMDBA_FREE_SPACEGROUPBYTABLESPACE_NAME;查詢?cè)撘晥D從控制文件獲得表空間名。SELECT*FROMV$TABLESPACE;Oracle數(shù)據(jù)庫(kù)講義(第四章)課件59V$DATAFILE,這是動(dòng)態(tài)性能視圖,包含數(shù)據(jù)文件名字、尺寸、數(shù)據(jù)文件所在的表空間名、數(shù)據(jù)文件的狀態(tài)(OFFLINE、ONLINE、READWRITE、READONLY)。其他視圖DBA_SEGMENTS、ALL_SEGMENTS、USER_SEGMENTS:包含段的類(lèi)型、段的尺寸、表空間相關(guān)的存儲(chǔ)參數(shù)。DBA_EXTENTS、ALL_EXTENTS、USER_EXTENTS:包含區(qū)的尺寸、與區(qū)相關(guān)的段和表空間信息。DBA_TEMP_FILES:包含本地化管理的臨時(shí)表空間的臨時(shí)文件。DBA_USERS:包含為用戶指定的默認(rèn)表空間和臨時(shí)表空間。V$TEMP_EXTENT_MAP:包含一個(gè)本地化管理的臨時(shí)表空間的所有區(qū)的信息V$DATAFILE,這是動(dòng)態(tài)性能視圖,包含數(shù)據(jù)文件名字606.UNDO表空間

UNDO表空間Oracle9i中引入的全新的概念,它自動(dòng)對(duì)回退段進(jìn)行管理,當(dāng)一個(gè)回退段不足時(shí),一個(gè)事務(wù)可以使用多個(gè)回退段,Oracle會(huì)自動(dòng)使用其他回退段,不終止事務(wù)的運(yùn)行。6.UNDO表空間614.1.2段(SEGMENT)段是表空間中指定類(lèi)型的邏輯存儲(chǔ)結(jié)構(gòu),是為表、索引等邏輯結(jié)構(gòu)分配的區(qū)(extent)的集合。Oracle的段主要有5種類(lèi)型。數(shù)據(jù)段:用于存儲(chǔ)表、分區(qū)的數(shù)據(jù)。每建立一張表,就分配一個(gè)段。索引段:存儲(chǔ)索引數(shù)據(jù)。每建立一個(gè)索引,就分配一個(gè)索引段。臨時(shí)段:數(shù)據(jù)庫(kù)執(zhí)行排序或子查詢時(shí)需要臨時(shí)工作區(qū),系統(tǒng)自動(dòng)建立臨時(shí)段,操作執(zhí)行結(jié)束自動(dòng)釋放臨時(shí)段。回退段:當(dāng)用戶對(duì)數(shù)據(jù)庫(kù)執(zhí)行修改操作時(shí),系統(tǒng)將修改前的數(shù)據(jù)存入回退段,在執(zhí)行回退命令rollback時(shí),回退段中的數(shù)據(jù)用于撤消所作的修改。4.1.2段(SEGMENT)段是表空間中指定類(lèi)型的邏輯存624.1.3區(qū)(EXTENT)區(qū)是分配空間的最小單位。一個(gè)區(qū)由一組連續(xù)的邏輯塊組成。一個(gè)段至少包含一個(gè)區(qū)。當(dāng)一段中所有空間已使用完,Oracle為該段分配一個(gè)新的區(qū)。區(qū)的分配和回收是系統(tǒng)自動(dòng)完成的。4.1.3區(qū)(EXTENT)區(qū)是分配空間的最小單位。一個(gè)區(qū)634.1.4塊(BLOCK)塊是Oracle內(nèi)最小的邏輯單元,是I/O的最小單位。一個(gè)數(shù)據(jù)塊對(duì)應(yīng)一個(gè)或多個(gè)操作系統(tǒng)物理塊。塊的大小是在數(shù)據(jù)庫(kù)建立時(shí),使用參數(shù)DB_BLOCK_SIZE決定(系統(tǒng)缺省值為8K)。該參數(shù)在數(shù)據(jù)庫(kù)建立后不能更改,除非重建數(shù)據(jù)庫(kù)。4.1.4塊(BLOCK)塊是Oracle內(nèi)最小的邏輯單元644.2Oracle數(shù)據(jù)庫(kù)的物理結(jié)構(gòu)數(shù)據(jù)庫(kù)的物理結(jié)構(gòu)是數(shù)據(jù)庫(kù)中操作系統(tǒng)文件的集合。

Oracle數(shù)據(jù)庫(kù)文件數(shù)據(jù)庫(kù)數(shù)據(jù)文件控制文件重做日志重做日志參數(shù)文件口令文件歸檔的日志文件4.2Oracle數(shù)據(jù)庫(kù)的物理結(jié)構(gòu)數(shù)據(jù)庫(kù)的物理結(jié)構(gòu)是數(shù)據(jù)654.2.1數(shù)據(jù)文件

數(shù)據(jù)文件有如下特點(diǎn):每個(gè)數(shù)據(jù)庫(kù)至少有一個(gè)數(shù)據(jù)文件。每個(gè)數(shù)據(jù)文件只與一個(gè)表空間、一個(gè)數(shù)據(jù)庫(kù)相關(guān)。在數(shù)據(jù)庫(kù)中建立的表、索引等對(duì)象只能存儲(chǔ)在一個(gè)表空間中。但這些對(duì)象的物理存儲(chǔ)可以在該表空間的不同數(shù)據(jù)文件上。一般的做法是將表數(shù)據(jù)與索引數(shù)據(jù)存放在不同的數(shù)據(jù)文件上,將回退信息與臨時(shí)數(shù)據(jù)存放在不同的數(shù)據(jù)文件上。4.2.1數(shù)據(jù)文件數(shù)據(jù)文件有如下特點(diǎn):66對(duì)象1對(duì)象2對(duì)象3表空間1表空間2數(shù)據(jù)文件1數(shù)據(jù)文件2數(shù)據(jù)文件3對(duì)象4對(duì)象5

對(duì)象1對(duì)象2對(duì)象3表空間1表空間2數(shù)據(jù)文件1數(shù)據(jù)文件2數(shù)據(jù)文67創(chuàng)建數(shù)據(jù)文件,當(dāng)建立一個(gè)表空間時(shí),會(huì)建立相應(yīng)的數(shù)據(jù)文件。如建立一300M的數(shù)據(jù)文件。 CREATETABLESPACEAPPL_DATADATAFILE′f:\oracle\oradata\test\appl_data.dbf′SIZE300M;也可以給已經(jīng)存在的表空間增加數(shù)據(jù)文件。 ALTERTABLESPACEUSERSADDDATAFILE ′f:\oracle\oradata\test\appl_data.dbf′SIZE25M;查詢數(shù)據(jù)文件 通過(guò)V$DATAFILE,V$TEMPFILE,DBA_DATA_FILES,DAB_EXTENTS等數(shù)據(jù)字典和視圖可以查詢數(shù)據(jù)文件的相應(yīng)信息。例如查詢數(shù)據(jù)文件中的狀態(tài),名字。其中system01.dbf文件的狀態(tài)為system,表明該文件是系統(tǒng)表空間的一部分。創(chuàng)建數(shù)據(jù)文件,當(dāng)建立一個(gè)表空間時(shí),會(huì)建立相應(yīng)的數(shù)據(jù)文件。如建68調(diào)整數(shù)據(jù)文件的尺寸建立文件時(shí)設(shè)置AUTOEXTEND,使得數(shù)據(jù)文件尺寸自動(dòng)擴(kuò)展,或使用ALTERDATABASE設(shè)置自動(dòng)擴(kuò)展; CREATETABLESPACEAPPL_DATA DATAFILE′f:\oracle\oradata\test\appl_data.dbf′ SIZE500MAUTOEXTENDONNEXT100MMAXSIZE2000M; ALTERDATABASEDATAFILE ′f:\oracle\oradata\test\appl_data.dbf′ AUTOEXTENDONNEXT100MMAXSIZE2000M;另一方法是手工操作,執(zhí)行命令A(yù)LTERDATABASEDATAFILE的RESIZE從句來(lái)調(diào)整數(shù)據(jù)文件尺寸。 ALTERDATABASEDATAFILE′f:\oracle\oradata\test\appl_data.dbf′RESIZE1500M;調(diào)整數(shù)據(jù)文件的尺寸694.2.2重做日志Oracle數(shù)據(jù)庫(kù)的重做日志(redolog),也稱為事務(wù)日志(transactionlog),是數(shù)據(jù)庫(kù)的重要組成部分,用于保護(hù)所有已提交事務(wù)的工作。日志文件分為聯(lián)機(jī)重做日志文件和歸檔日志文件。日志文件的工作模式分為歸檔模式(Archivelog)和非歸檔模式(NoArchivelog)兩種。

數(shù)據(jù)庫(kù)的重做日志是存儲(chǔ)在硬盤(pán)上的一組系統(tǒng)數(shù)據(jù)文件。

日志文件組日志文件組歸檔的事務(wù)日志日志切換日志切換4.2.2重做日志Oracle數(shù)據(jù)庫(kù)的重做日志(redo70歸檔日志模式(Archivelog)當(dāng)聯(lián)機(jī)重做日志文件寫(xiě)滿一個(gè)后開(kāi)始寫(xiě)另一個(gè)聯(lián)機(jī)重做日志文件之前,把要開(kāi)始寫(xiě)的日志轉(zhuǎn)存到歸檔日志文件中,然后再寫(xiě)該日志,這種方式為歸檔模式。非歸檔日志模式(NoArchivelog)當(dāng)聯(lián)機(jī)重做日志文件寫(xiě)滿一個(gè)后直接覆蓋寫(xiě)另一個(gè)聯(lián)機(jī)重做日志文件,進(jìn)行循環(huán)覆蓋寫(xiě)聯(lián)機(jī)重做日值,會(huì)丟失最早的日志,這種方式為非歸檔模式。查看聯(lián)機(jī)重做日志文件信息 在V$Logfile、V$Log、V$Log_History等數(shù)據(jù)字典中,可以查看日志文件的組、狀態(tài)、名稱等信息。

歸檔日志模式(Archivelog)714.2.3控制文件控制文件用于記錄和維護(hù)數(shù)據(jù)庫(kù)的全局物理結(jié)構(gòu),是成功啟動(dòng)和操作數(shù)據(jù)庫(kù)必須的二進(jìn)制文件,以“.CTL”為文件后綴。一個(gè)數(shù)據(jù)庫(kù)至少需要一個(gè)控制文件,每個(gè)控制文件只與一個(gè)數(shù)據(jù)庫(kù)相關(guān)聯(lián)??刂莆募缦滦畔ⅲ簲?shù)據(jù)庫(kù)名數(shù)據(jù)庫(kù)建立時(shí)間數(shù)據(jù)庫(kù)中所有數(shù)據(jù)文件和日志文件的文件名和路徑表空間名稱當(dāng)前重做日志文件序號(hào)檢查點(diǎn)信息備份信息日志歷史記錄4.2.3控制文件控制文件用于記錄和維護(hù)數(shù)據(jù)庫(kù)的全局物理結(jié)72記錄控制文件名和路徑的參數(shù)在init.ora的control_files中。control_files=("F:\oracle\oradata\test\CONTROL01.CTL","F:\oracle\oradata\test\CONTROL02.CTL", "F:\oracle\oradata\test\CONTROL03.CTL")查看V$CONTROLFILE,得到控制文件的名稱和狀態(tài)。查看V$PARAMETER,得到所有初始化參數(shù)文件中的所有值、狀態(tài)等信息。查看V$CONTROLFILE_RECORD_SECTION,獲得控制文件的記錄段的信息。通過(guò)OEM導(dǎo)航樹(shù)來(lái)查看。3.控制文件的信息查看記錄控制文件名和路徑的參數(shù)在init.ora的control734.2.4參數(shù)文件參數(shù)文件確定存儲(chǔ)結(jié)構(gòu)的大小,設(shè)置數(shù)據(jù)庫(kù)的默認(rèn)值,設(shè)置數(shù)據(jù)庫(kù)的各種物理屬性,優(yōu)化數(shù)據(jù)庫(kù)性能。參數(shù)文件定義了Oracle實(shí)例(Instance)的特性,在建立數(shù)據(jù)庫(kù)或啟動(dòng)實(shí)例時(shí)必須訪問(wèn)參數(shù)文件。參數(shù)文件是一文本文件,可直接使用任何文本編輯器進(jìn)行編輯。在修改該文件前必須關(guān)閉數(shù)據(jù)庫(kù)。修改的參數(shù)在重啟數(shù)據(jù)庫(kù)時(shí)才生效。

4.2.4參數(shù)文件參數(shù)文件確定存儲(chǔ)結(jié)構(gòu)的大小,設(shè)置數(shù)據(jù)庫(kù)的74參數(shù)文件包含有實(shí)例配置參數(shù),這些參數(shù)置成特殊值,用于初始Oracle實(shí)例的許多內(nèi)存和進(jìn)程設(shè)置,該參數(shù)文件包含:一組實(shí)例參數(shù)的值;一個(gè)實(shí)例所啟動(dòng)的數(shù)據(jù)庫(kù)名字;在SGA中存儲(chǔ)結(jié)構(gòu)使用多少內(nèi)存;如何處理聯(lián)機(jī)日志文件;數(shù)據(jù)庫(kù)控制文件的名稱和位置;回退段的信息。參數(shù)文件包含有實(shí)例配置參數(shù),這些參數(shù)置成特殊值,用于初始Or754.2.5其他Oracle文件其他Oracle文件主要有:口令文件,用于存放用戶口令的加密文件歸檔文件,包含恢復(fù)所需的庫(kù)結(jié)構(gòu)和數(shù)據(jù)文件的副本警告文件,存放Oracle數(shù)據(jù)庫(kù)運(yùn)行當(dāng)中出現(xiàn)的各種消息、警告和錯(cuò)誤信息。跟蹤文件,用于存儲(chǔ)后臺(tái)進(jìn)程和服務(wù)器進(jìn)程的跟蹤信息,包括后臺(tái)進(jìn)程的警告和錯(cuò)誤信息,每個(gè)后臺(tái)進(jìn)程都有相應(yīng)的跟蹤文件,以“.TRC”為文件后綴服務(wù)器進(jìn)程跟蹤文件,主要跟蹤SQL語(yǔ)句,通過(guò)它了解SQL語(yǔ)句的性能,并進(jìn)行相應(yīng)的調(diào)整。4.2.5其他Oracle文件其他Oracle文件主要有:764.3數(shù)據(jù)字典數(shù)據(jù)字典是由一組擁有數(shù)據(jù)庫(kù)元數(shù)據(jù)的表和視圖組成,用于存儲(chǔ)Oracle數(shù)據(jù)庫(kù)的結(jié)構(gòu)信息。數(shù)據(jù)字典一般在創(chuàng)建數(shù)據(jù)庫(kù)時(shí)建立,沒(méi)有數(shù)據(jù)字典,PL/SQL就沒(méi)法執(zhí)行。數(shù)據(jù)字典分為靜態(tài)字典和動(dòng)態(tài)字典。4.3.1靜態(tài)數(shù)據(jù)字典靜態(tài)數(shù)據(jù)字典主要是表和視圖。一般來(lái)說(shuō),數(shù)據(jù)字典中的表是不能被訪問(wèn)的??梢栽L問(wèn)的是數(shù)據(jù)字典中的視圖。靜態(tài)數(shù)據(jù)字典中的視圖分為3類(lèi),分別有3個(gè)前綴構(gòu)成。user_*、all_*、dba_*4.3.2動(dòng)態(tài)數(shù)據(jù)字典動(dòng)態(tài)視圖提供有關(guān)內(nèi)存和磁盤(pán)的運(yùn)行情況,用戶只能讀動(dòng)態(tài)視圖,不能寫(xiě)。動(dòng)態(tài)視圖以V$為前綴,例如V$logfile、V$session、V$active_instances、V$context等。4.3數(shù)據(jù)字典數(shù)據(jù)字典是由一組擁有數(shù)據(jù)庫(kù)元數(shù)據(jù)的表和視圖組774.4Oracle的內(nèi)存結(jié)構(gòu)4.4.1系統(tǒng)全局區(qū):SystemGlobalArea—SGA數(shù)據(jù)塊緩沖區(qū)—與數(shù)據(jù)文件進(jìn)行數(shù)據(jù)交換重做日志緩沖區(qū)—與日志文件進(jìn)行數(shù)據(jù)交換SQL共享池—處理SQL語(yǔ)句的內(nèi)存空間

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論