摘 要
Oracle數(shù)據(jù)庫體系結(jié)構(gòu),就是指Oracle數(shù)據(jù)庫是如何使用計(jì)算機(jī)資源的。因此,在開始對(duì)Oracle數(shù)據(jù)庫學(xué)習(xí)和操作前,用戶有必要理解Oracle的體系結(jié)構(gòu)。這不光能使用戶對(duì)Oracle有從外到內(nèi)的整體認(rèn)識(shí),還對(duì)以后Oracle的使用具有重大指導(dǎo)意義。
【關(guān)鍵詞】Oracle數(shù)據(jù)庫 體系結(jié)構(gòu) 計(jì)算機(jī)資源
1 Oracle數(shù)據(jù)庫的存儲(chǔ)結(jié)構(gòu)
Oracle數(shù)據(jù)庫按存儲(chǔ)結(jié)構(gòu)分為:物理存儲(chǔ)結(jié)構(gòu)和邏輯存儲(chǔ)結(jié)構(gòu)。
1.1 物理存儲(chǔ)結(jié)構(gòu)
物理存儲(chǔ)結(jié)構(gòu)是存儲(chǔ)在磁盤中的操作系統(tǒng)文件。一般主要由三種類型的文件組成:數(shù)據(jù)文件(*.dbf)、控制文件(*.ctl)、日志文件(*.log)。這三大核心文件對(duì)Oracle數(shù)據(jù)庫的正常啟動(dòng)是缺一不可的。
數(shù)據(jù)文件(Data File)用于存儲(chǔ)數(shù)據(jù)的文件,表中的數(shù)據(jù)記錄,索引,數(shù)據(jù)字典信息等都存儲(chǔ)于此。數(shù)據(jù)庫與數(shù)據(jù)文件的關(guān)系見圖1,即一個(gè)數(shù)據(jù)庫可以包含多個(gè)數(shù)據(jù)文件,用戶不僅能通過數(shù)據(jù)字典(dba_data_files靜態(tài),v$datafile動(dòng)態(tài))查看數(shù)據(jù)文件,還可以通過命令添加或刪除數(shù)據(jù)文件。
控制文件(Control Files)是一個(gè)二進(jìn)制文件,用于對(duì)Oracle數(shù)據(jù)庫的物理結(jié)構(gòu)進(jìn)行描述。控制文件一般在安裝Oracle系統(tǒng)時(shí)自動(dòng)創(chuàng)建。使用數(shù)據(jù)字典v$controlfile查看當(dāng)前數(shù)據(jù)庫的控制文件的方法:SQL>SELECT name FROM v$controlfile;
日志文件(Redo Log Files)也叫做重做(或重演)日志文件。不僅用于對(duì)Oracle數(shù)據(jù)庫的修改進(jìn)行記錄,而且對(duì)Oracle數(shù)據(jù)庫所作的修改信息也被記錄在此。要了解日志文件的信息可以查詢數(shù)據(jù)字典v$logfile和v$log。SQL>SELECT name FROM v$log;
1.2 邏輯存儲(chǔ)結(jié)構(gòu)
數(shù)據(jù)庫的邏輯結(jié)構(gòu)是從邏輯的角度分析數(shù)據(jù)庫的構(gòu)成。Oracle邏輯存儲(chǔ)結(jié)構(gòu)如圖2所示。
表空間是在Oracle數(shù)據(jù)庫中用戶能使用的最大的邏輯存儲(chǔ)結(jié)構(gòu),即表空間中存儲(chǔ)著用戶在Oracle數(shù)據(jù)庫中建立的所有對(duì)象,所有表空間大小的和就是Oracle數(shù)據(jù)庫的大小。表空間根據(jù)存儲(chǔ)數(shù)據(jù)不同,分為系統(tǒng)表空間(SYSTEM存放三大文件等管理信息、SYSAUX輔助系統(tǒng)表空間用于存儲(chǔ)數(shù)據(jù)庫組件等信息、TEMP臨時(shí)表空間存放臨時(shí)表和臨時(shí)數(shù)據(jù))和非系統(tǒng)表空間(UNDOTBS1存儲(chǔ)管理回退信息、USERS用戶表空間或數(shù)據(jù)表空間用于存放永久行的用戶對(duì)象的數(shù)據(jù)和私有信息、EXAMPLE示例表空間)兩類。通過數(shù)據(jù)字典(dba_tablespaces)查看表空間的信息,SQL>SELECT tablespace_name FROM dba_tablespaces;,
創(chuàng)建表空間的方法:
CREATE [TEMPORARY|UNDO] TABLESPACE 表空間名
[DATAFILE|TEMPFILE 路徑+文件名]
SIZE 大?。ǘ嗌費(fèi)|K)[REUSE已存在同名文件時(shí)使用]
[MININUM EXTENT大?。ǘ嗌費(fèi)|K) ] [BLOCKSIZE大小(多少M(fèi)|K) ]
[LOGGING|NOLOGGING] [FORCE LOGGING]
[DEFAULT {data_segment_compression} storage_clause]
[ONLINE|OFFLINE] [PRERMANENT|PEMPORARY]
[EXTENT MANAGEMENT DICTIONARY|LOCAL]
[AUTOALLOCATE|UNIFORM SIZE 多少]
[SEGMENT MANAGEMENT AUTO|MANUAL]
段是由區(qū)組成的邏輯存儲(chǔ)單元,是表空間的組成單位。
區(qū)是數(shù)據(jù)庫存儲(chǔ)空間分配的邏輯單位,一個(gè)區(qū)由一組數(shù)據(jù)塊組成,區(qū)是由段分配的,分配的第一個(gè)區(qū)稱初始區(qū),以后分配的區(qū)稱增量區(qū)。
數(shù)據(jù)庫塊(Database block)是Oracle邏輯存儲(chǔ)的最小單元即最底層,也叫邏輯塊、Oracle塊。一個(gè)數(shù)據(jù)塊對(duì)應(yīng)一個(gè)或多個(gè)操作系統(tǒng)塊。
參考文獻(xiàn)
[1]史斌,王明,徐洪麗.大型數(shù)據(jù)庫管理系統(tǒng)Oracle體系結(jié)構(gòu)[J].電腦編程技巧與維護(hù),2010(18)
[2]劉星沙,肖立英.Oracle數(shù)據(jù)庫結(jié)構(gòu)優(yōu)化技術(shù)的研究與應(yīng)用[J].湘潭師范學(xué)院學(xué)報(bào)(自然科學(xué)版),2007(01).
[3]陳紅梅.數(shù)據(jù)庫的邏輯結(jié)構(gòu)設(shè)計(jì)[J].福建電腦,2012(10).
[4]陳鑫.應(yīng)用Oracle數(shù)據(jù)庫監(jiān)控維護(hù)技術(shù)維護(hù)數(shù)據(jù)庫安全的探討[J].信息安全與技術(shù),2012(04).
[5]史斌,王明,徐洪麗.大型數(shù)據(jù)庫管理系統(tǒng)Oracle體系結(jié)構(gòu)[J].電腦編程技巧與維護(hù),2010(18).
[6]韓云波,宋莉.Oracle性能調(diào)整技術(shù)研究[J].電腦知識(shí)與技術(shù),2010(07).
作者簡介
鄧麗萍(1982-),女,江西省貴溪市人。碩士學(xué)位。現(xiàn)為江西信息應(yīng)用職業(yè)技術(shù)學(xué)院軟件工程系講師,主要從事軟件開發(fā)、計(jì)算機(jī)軟件方向教學(xué)。
作者單位
江西信息應(yīng)用職業(yè)技術(shù)學(xué)院軟件工程系 江西省南昌市 330043