oracle概念-數據庫文件概述如下:
oracle包含三大基本文件:
1:數據文件(data file)
2:控制文件(control file)
3:聯機重做日志文件(online redo log file)
oracle 數據庫 的 文件 (files) 的概念:
oracle數據庫的體系結構最終組件反映在存儲在磁盤上的物理文件,oracle有若干種類型的數據文件,,每一個數據文件都有不同的目的。
a : 數據庫數據文件 b : 控制文件 c : 聯機重做日志文件 d : 參數文件 e :其他數據庫相關文件
下面一一介紹以上文件:
1:數據庫數據文件
數據文件是一個存儲在磁盤上的物理文件,這些文件用於存儲數據庫數據,數據庫數據文件僅僅被DBWR進程寫入。
這些數據庫數據文件是和表空間進行關聯的,包含了表和索引。
2:控制文件
控制文件是一種數據庫的二進制文件包含了許多的數據庫信息,包含了數據庫名,數據日志文件,如果控制文件無效,oralce數據庫不能成功啟動。
因為控制文件是很重要,oracle允許你拷貝多個控制文件的備份,在不同的磁盤上放多個控制文件是DBA的良好的習慣。
3:聯機重做日志文件的概念(online redo logs )
聯機重做日志文件就像一個記錄帶記錄了oracle數據庫的每一個改變,當oracle數據庫發生變化的時候,這些變化是有規律的記錄在聯機重做日志日志中,就像VCR記錄一個movie一樣。
當磁盤出現破壞的時候,你可以使用備份oracle的文件替換存儲在磁盤上的數據,如果備份數據是很多天以前的,你將丟失一些數據。
幸運的是 oracle 在聯機重做日子文件中保存了這些操作事務,能夠通過這個文件讓丟失的事務操作重新進入數據庫中。
這意味著oracle能夠通過聯機重做日志文件在oracle數據庫啟動是時候重新恢復丟失的數據。
需要注意的是oracle需要兩個聯機重做日志文件,oracle將首先在第一個文件中寫信息,當第一個文件滿的時候,oracle將轉換到第二個日志文件寫同同樣的日志文件,這些日志成為oracle聯機重做日志組。
4: oralce 參數文件
參數文件(有時叫 init.ora)包含了oracle啟動時候需要的配置信息,通過參數文件我們能夠找到控制文件,以及寫trace 文件,還有其他oracle的信息,
如果沒有參數文件,oracle將不能啟動,oracle 允許你有一個客戶端的參數文件--PFILE或者服務器端的參數文件(SPFILE)
沒有特殊啟動現在都用 SPFILE文件啟動。
5:其他相關的oracle文件
在ORACLE_HOME以下的目錄中,你將看到很多不同的文件,我們主要介紹以下幾個:
1:ORACLE Trace files: oracle在很多不同的情況下創建這種文件,它們是被創建當數據庫有意外的時候,或者session 失敗,或者
個異常讓oracle中斷,或者基本的oracle的操作的命令(查詢表,DML,DDL ,TL)等。
2:Alert 日志: 這是oracle數據的普通日志文件。
3: NetWorking configuration files (網絡配置文件) 這些文件用於配置oralce不同的網絡組件,例如: tnsnames.ora和listener.ora
4 : oracle 數據 軟件包 包含了讓oracle運行的基本的oralce 程序。
討論了以上這些數據文件後,讓我們看看oracle數據庫在啟動的不同的狀態,這些參數文件的作用。
二:不同oralce啟動狀態的oracle 文件的作用。
1 :close ---> NOMOUNT狀態
需要做如下工作:
第一讀取初始化文件:
在$ORACLE_HOME/dbs中
首先去找spfileSID.ora
如果沒有找到,找 spfile.ora
如果沒有找到,找 initSID.ora
以上是啟動找三個文件的順序。
第二: 分配SGA
第三: 啟動後台進程
以上兩步我認為相當於建立oralce的instance
第四:打開alertSID.log文件 和 trace file
2 :NOMOUNT -->MOUNT 狀態
進行如下工作:
第一:把數據庫和已經啟動的實例關聯起來
第二:通過參數文件中指定的control file文件位置找到control file 然後打開讀取
第三:讀取控制文件(control file) ,獲取數據文件(data file)和聯機重做日子文件(online redo log file)的名字,只是獲取這個名字,但是不檢測和關心是否這個data file 和這個online redo log file 的存在。
3 :MONNT-->OPEN
打開 data file (數據文件) 和
online redo log files (聯機重做日子文件)
如果這個時候 data file 和 聯機重做日志文件出錯了
這個時候就會報錯
會檢查聯機重做文件和數據文件的一致性,如果不一致,
會做相關的一致性的清除工作。
control file的內容 :
1: 數據庫的名字 和 identifier
2:數據庫創建的時間戳
3:數據庫的表空間和表空間的名字
4:記錄了數據文件和聯機重做日志文件的位置:
5:包含了聯機 重做日志的 順序序列號
6:checkpoint 信息
7:undo segments 的開始點和技術點
8:redo log archive 聯機日志歸檔信息
9:backup 信息(備份信息)
注意:
oracle啟動的時候讀取啟動初始化信息,
初始化信息中包含了控制文件的位置
控制文件中包含了聯機重做日志文件和數據文件的位置
這三個控制文件的大小一樣,3個控制文件最好放在
不同的物理磁盤上,往控制文件中寫信息的時候
並發同時寫,所以3個控制文件的內容是相同的,
但是讀取的時候,只讀取第一個,如果3個控制文件
有一個出錯了,oracle就不能啟動了。