程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> 關於Oracle數據庫 >> 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就不能啟動了。

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved