萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> oracle教程 >> oracle概念-數據庫文件概述

oracle概念-數據庫文件概述

  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就不能啟動了。

copyright © 萬盛學電腦網 all rights reserved