一、數(shù)據(jù)庫的物理結(jié)構(gòu)
:
?
?
???
1.數(shù)據(jù)文件(data file)
???
每個數(shù)據(jù)庫有一個或多個數(shù)據(jù)文件,數(shù)據(jù)文件包含了全部數(shù)據(jù)庫的數(shù)據(jù)。邏輯數(shù)據(jù)庫結(jié)構(gòu)(如表、索引、數(shù)據(jù)字典)都存儲在數(shù)據(jù)文件中。在存取數(shù)據(jù)時,Oracle先從數(shù)據(jù)文件中讀取數(shù)據(jù)到內(nèi)存的數(shù)據(jù)緩沖區(qū)中,這樣的存取方式減少了磁盤I/O操作,提高了相應(yīng)性能。數(shù)據(jù)文件一旦建立后就不能改變大小,只能增加。
???
數(shù)據(jù)文件系統(tǒng)機制包括:
???
①
“
Cooked
”
操作系統(tǒng)(OS)文件系統(tǒng)
???
②原始分區(qū)(raw partitions)
???
③自動存儲系統(tǒng)(Automatic Storage Management,ASM)
???
④集群文件系統(tǒng)(RAC)
???
本地管理的表空間:
???
8.1.5版本之后使用
本地管理表空間(local-managed tablespace),他的優(yōu)點是:無需數(shù)據(jù)字典,僅對每個數(shù)據(jù)文件中存儲的一個位圖來管理區(qū)段。目前版本已無法建立dictionary tablespace
?
???
2.控制文件(control file)
???
控制文件是一個很小的二進制文件,用于描述數(shù)據(jù)庫的物理結(jié)構(gòu)。包括:①數(shù)據(jù)庫名;②數(shù)據(jù)庫數(shù)據(jù)文件和日志文件的名字和位置;③數(shù)據(jù)庫建立日期。
???
一般在安裝Oracle時自動創(chuàng)建,其存放位置由參數(shù)文件SPFILEsid.ora的CONTROL_FILES參數(shù)值來確定。數(shù)據(jù)庫在使用的過程中會不斷更新控制文件。如果該文件損壞,則數(shù)據(jù)庫將無法正常工作。
???
Oracle10g默認安裝了3個控制文件,每個文件內(nèi)容相同,當某個文件損壞時,Oracle會自動使用另一個,以確保數(shù)據(jù)庫正常運行。
???
可查詢
V$CONTROLFILE
來獲得控制文件信息。
?
???
3.重做日志文件(redo log file)
???
重做日志文件用于記錄對數(shù)據(jù)庫的修改信息,包括數(shù)據(jù)的修改以及數(shù)據(jù)庫結(jié)構(gòu)的修改。查詢信息不會被記錄在日志中。為了防止日志文件本身的故障,ORACLE允許鏡象日志(mirrored redo log),以致可在不同磁盤上維護兩個或多個日志副本。日志文件中的信息僅在系統(tǒng)故障或介質(zhì)故障恢復數(shù)據(jù)庫時使用,這些故障阻止將數(shù)據(jù)庫數(shù)據(jù)寫入到數(shù)據(jù)庫的數(shù)據(jù)文件。然而任何丟失的數(shù)據(jù)在下一次數(shù)據(jù)庫打開時,ORACLE自動地應(yīng)用日志文件中的信息來恢復數(shù)據(jù)庫數(shù)據(jù)文件。
???
日志工作過程中,多個日志是循環(huán)使用的,即一個日志文件組被填滿后,系統(tǒng)自動轉(zhuǎn)換到另一個日志文件組。當所有日志文件組都被填滿后,系統(tǒng)會將日志信息寫入到第一個日志組中,這時有兩個模式:歸檔模式(Archivelog)和非歸檔模式(NoArchivelog),當運行在歸檔模式時,系統(tǒng)將啟用ARCH進程將要被覆蓋的日志保存到磁盤上形成歸檔日志。若使用非歸檔模式,則會覆蓋被寫入的文檔。
???
查詢數(shù)據(jù)庫的日志組情況:
select
group#,bytes,members,status
from
v$log;
???
查詢數(shù)據(jù)庫的日志歸檔模式:
select
log_mode
from
v_database;
?
???
4.臨時文件(temp file)
??? Oracle
的臨時文件用來存儲大規(guī)模排序和散列操作的中間結(jié)果。如果
RMAN
中沒有足夠的空間,還會用臨時文件存儲全局臨時表數(shù)據(jù),或者結(jié)果集數(shù)據(jù)。
???
注意:
1.
永久表和索引等不會存儲在臨時文件中,但是臨時表及其索引的內(nèi)容要存儲在臨時文件。
???????? 2.
臨時文件不生成
redo log
,無法重做
???????? 3.
不需要備份臨時數(shù)據(jù)文件,因為無法恢復
?
???
5.密碼文件(password file)
???
密碼文件是一個可選文件,允許遠程
SYSDBA
或管理員訪問數(shù)據(jù)庫。具體操作比較復雜。
?
二、實例的物理結(jié)構(gòu)
:
?
?
???
1.參數(shù)文件(parameter file)
???
參數(shù)文件記錄了
Oracle
數(shù)據(jù)庫的基本參數(shù)信息,主要包括:數(shù)據(jù)庫名、控制文件路徑、進程等。
???
以前的參數(shù)文件名為
init.ora
,所以又叫
init
文件,但是在
Oracle10g
中,參數(shù)文件名為
SPFILEsid.ora
,其參數(shù)由
Oracle
系統(tǒng)自動管理。
SPFILE
的改進主要消除了參數(shù)文件的兩個嚴重問題:
??? 1.
由于只能放在數(shù)據(jù)庫服務(wù)器上,不能放在客戶機上,所以杜絕參數(shù)文件的繁衍。
??? 2.
可使用
ALTER SYSTEM
命令直接寫入?yún)?shù)值,無需使用編輯器進行編輯。
(
用戶最好不要用編輯器進行修改
)
???
注:取消參數(shù)設(shè)置:
alter
system
reset
sort_area_size
scope
=
spfile
sid=
'*'
?
???
2.跟蹤文件(trace file)
???
跟蹤文件能夠提供調(diào)試信息,需要設(shè)置參數(shù)
SQL_TRACE=TRUE
???
數(shù)據(jù)庫的測量性可以使用以下方法:
??? 1.V$
動態(tài)視圖:例如
V$WAITSTAT
、
V$SESSION_EVENT
等,均可反映系統(tǒng)動作
??? 2.
審計命令:例如
DBMS_FGA
等,可對某個表進行顆粒審計檢測
??? 3.
資源管理器:
DBMS_RESOURCE_MANAGER
,對數(shù)據(jù)庫資源
(CPU
、
I/O
等
)
實現(xiàn)微管理
??? 4.Oracle
事件:跟蹤診斷,在之前文章中已經(jīng)詳細介紹過
??? 5.DBMS_TRACE
:
PL/SQL
引擎中的工具,全面記錄調(diào)用樹、產(chǎn)生的異常、遇到的錯誤等
??? 6.
觸發(fā)器:不用介紹了
??? 7.SQL_TRACE
:即
10046
事件
?
???
3.警告文件(alert file)
???
警告文件就是數(shù)據(jù)庫的日記,是一個簡單的文本文件。記載了從數(shù)據(jù)庫創(chuàng)建到完結(jié)之間的所有包括日志開關(guān)、內(nèi)部錯誤、表空間創(chuàng)建、離線及恢復等等的所有操作信息。
?
三、其他物理結(jié)構(gòu):
?
???
1.修改跟蹤文件(change tracking file)
???
修改跟蹤文件是
Oracle10g
新增的一個可選文件,唯一的目的是跟蹤上一個增量備份以來那些塊已經(jīng)修改。這樣
RMAN
就只需要備份發(fā)生變化的塊,而不必讀取整個數(shù)據(jù)庫。如果打開跟蹤功能,數(shù)據(jù)庫的任何改變都會被自動寫入到這個文件中。但是這回消耗系統(tǒng)的資源。
???
可使用以下命令打開:
alter
database
enable
block
change
tracking;
?
???
2.閃回日志文件(flashback log file)
???
這也是
Oracle10g
的新增功能。引入
Flash Back
命令是為了加快原來很慢的時間點數(shù)據(jù)庫恢復
(point in time database recovery)
過程。具體內(nèi)容參考詳細資料。
?
???
3.轉(zhuǎn)儲文件(dump/DMP file)
???
使用導出工具創(chuàng)建的獨立的
DMP
文件,其中包括了所有必要的元數(shù)據(jù)
(create
和
alter
語句形式
)
,可能還有數(shù)據(jù)本身,可以用于重新創(chuàng)建表、模式、甚至整個數(shù)據(jù)庫。而導入工具的作用就是讀取這些
DMP
文件,執(zhí)行其
DDL
語句,并加載其數(shù)據(jù)。
?
???
4.數(shù)據(jù)泵文件(Data Pump file)
???
主要是被外部表和新的導入、導出工具
(IMPDP/EXPDP)
使用。只有
10g
之后的版本有這種功能。
?
???
5.平面文件(flat file)
???
平面文件就是一些沒有格式的數(shù)據(jù)記錄文件。
???????
?
?
?
-The End-