Oracle數(shù)據(jù)庫的幾種文件及表空間數(shù)據(jù)塊的知識簡介
Oracle數(shù)據(jù)庫中有一些文件及其它的一些知識是我們必須要了解的。本文我們就介紹了Oracle數(shù)據(jù)庫的幾種文件以及表空間、段、區(qū)間和Oracle數(shù)據(jù)塊方面的知識,接下來就讓我們來一起了解一下吧。
1、控制文件 (Control files)
參數(shù)文件init.ora 記錄了控制文件的位置,控制文件是一個非常小的二進制文件,***可以增長到64MB,控制文件包括如下主要信息:・所有的數(shù)據(jù)文件,聯(lián)機日志文件,歸檔日志文件信息有了這些信息,Oracle 就知道那些文件是數(shù)據(jù)文件,現(xiàn)在的重做日志文件是哪些,這些都是系統(tǒng)啟動和運行的基本條件,所以他是Oracle 運行的根本。如果沒有控制文件系統(tǒng)是不可能啟動的??刂莆募欠浅V匾模话悴捎枚鄠€鏡相復(fù)制來保護控制文件,或采用RAID 來保護控制文件??刂莆募膩G失,將使數(shù)據(jù)庫的恢復(fù)變的很復(fù)雜。控制文件信息可以從V$Controlfile 中查詢獲得
2、數(shù)據(jù)文件(Data files)
可以通過如下方式查看數(shù)據(jù)文件:
SQL> select name from v$datafile;
數(shù)據(jù)文件是Oracle 中最重要的物理文件,直接記錄了用戶數(shù)據(jù)。按照使用上的不同,可以把數(shù)據(jù)文件分成如下幾類:・回滾數(shù)據(jù)文件・用戶數(shù)據(jù)文件
3、重做日志文件(Redo files)
用戶對數(shù)據(jù)庫進行的任何操作都會記錄在重做日志文件。在了解重做日志之前必須了解重做日志的兩個概念,重做日志組和重做日志組成員(Member),一個 數(shù)據(jù)庫中至少要有兩個日志組文件,一組寫完后再寫另一組,即輪流寫。每個日志組中至少有一個日志成員,一個日志組中的多個日志成員是鏡相關(guān)系,有利于日志 文件的保護,因為日志文件的損壞,特別是當(dāng)前聯(lián)機日志的損壞,對數(shù)據(jù)庫的影響是巨大的。・在歸檔情況下,需要歸檔的日志來不及歸檔,而聯(lián)機日志又需要被重新利用
4、歸檔日志文件(Archived files)
Oracle 可以運行在兩種模式之中,歸檔模式和不歸檔模式。如果不用歸檔模式,當(dāng)然你就不會有歸檔日志,但是,你的系統(tǒng)將不會是一個實用系統(tǒng),特別是不能用于生產(chǎn)系 統(tǒng),因為你可能會丟失數(shù)據(jù)。但是在歸檔模式中,為了保存用戶的所有修改,在重做日志文件切換后和被覆蓋之間系統(tǒng)將他們另外保存成一組連續(xù)的文件系列,該文 件系列就是歸檔日志文件。
有人或許會說,歸檔日志文件占領(lǐng)我大量的硬盤空間,其實,具體想一想,你是愿意浪費一點磁盤空間來保護你的數(shù)據(jù),還是愿意丟失你的數(shù)據(jù)呢?顯而義見,我們 需要保證我們的數(shù)據(jù)的安全性。其實,歸檔并不是一直占領(lǐng)你的磁盤空間,你可以把她備份到磁帶上,或刪除上一次完整備份前的所有日志文件。通過 v$archived_log 和v$log_history 可以查看歸檔日志文件的信息。
5、表空間(tablespace)
在8i 以前,表空間的管理類型只有一種,被稱為字典管理表空間(DMT),即在數(shù)據(jù)字典中管理表空間中的空間的分配。在8i
以后的版本,為了減少在字典上的開銷,引入了本地管理的表空間(LMT),在該類型的表空間中,在每個數(shù)據(jù)文件中存儲的位圖來管理空間的分配,不再要求使通過v$tablespace 可以查詢表空間,DBA_TABLESPACE 可以查詢詳細表空間信息。
6、段(Segment)
可以指定擴展到哪個數(shù)據(jù)文件上面。段基本可以分為以下四種:
- 數(shù)據(jù)段(Data Segment)
- 索引段(Index Segment)
- 回滾段(Rollback Segment)
- 臨時段(Temporary Segment)
通過DBA/ALL/USER_SEGMENTS 可以查詢詳細的段信息。
7、區(qū)間(Extent)
關(guān)于Extent 個區(qū)間被用滿,數(shù)據(jù)庫會繼續(xù)申請一個新的預(yù)留存儲空間,即新的區(qū)間,一直到段的***區(qū)間數(shù)(Max Extent)或沒有可用的磁盤空間可以申請。
在Oracle8i 以上版本,理論上一個段可以無窮個區(qū)間,但是多個區(qū)間對Oracle 卻是有性能影響的,Oracle
建議把數(shù)據(jù)分布在盡量少的區(qū)間上,以減少Oracle 的管理與磁頭的移通過DBA/ALL/USER_EXTENTS 可以查詢詳細的區(qū)間信息。
8、Oracle 數(shù)據(jù)塊(Block)
Oracle最基本的存儲單位,在建立數(shù)據(jù)庫的時候指定,雖然在初始化文件中可見,但是不能修改。為了保證存取的速度,它是OS數(shù)據(jù)塊的整數(shù)倍。Oracle 的操作都是以塊為基本單位,一個區(qū)間可以包含多個塊,如果區(qū)間大小不是塊大小的整數(shù)倍,Oracle 塊的內(nèi)部結(jié)構(gòu)與數(shù)據(jù)的存取方法都是比較復(fù)雜的,以表段的塊為例,從簡單的結(jié)構(gòu)上劃分,可以把塊的內(nèi)部劃分成如下幾個部分:公用頭,表目錄,行目錄,可存取空間等。
關(guān)于Oracle數(shù)據(jù)庫的控制文件、重做日志文件等的介紹就到這里了,希望本次的介紹能夠?qū)δ兴斋@!
【編輯推薦】






