Oracle存儲(chǔ)結(jié)構(gòu)之Oracle物理存儲(chǔ)結(jié)構(gòu)
Oracle存儲(chǔ)結(jié)構(gòu)包括:物理存儲(chǔ)結(jié)構(gòu)和邏輯存儲(chǔ)結(jié)構(gòu)。
1.Oracle物理存儲(chǔ)結(jié)構(gòu)是由數(shù)據(jù)文件(data file)、聯(lián)機(jī)日志文件(online redo log file)、控制文件(control file)組成的,當(dāng)然他也包括一些其他的文件如歸檔日志文件、參數(shù)文件、警報(bào)文件、跟蹤文件、備份文件等。
2.Oracle邏輯存儲(chǔ)結(jié)構(gòu)是由數(shù)據(jù)塊(data block)、區(qū)(extents)、段(segment)、表空間(tablespace)組成的.
Oracle物理存儲(chǔ)結(jié)構(gòu):
① 數(shù)據(jù)文件(data file):一個(gè)數(shù)據(jù)庫(kù)可以由多個(gè)數(shù)據(jù)文件組成的,數(shù)據(jù)文件是真正存放數(shù)據(jù)庫(kù)數(shù)據(jù)的.一個(gè)數(shù)據(jù)文件就是一個(gè)操作系統(tǒng)文件.數(shù)據(jù)庫(kù)的對(duì)象(表和索引)物理上是被存放在數(shù)據(jù)文件中的.
數(shù)據(jù)文件的特征是:
A:一個(gè)數(shù)據(jù)文件只能屬于一個(gè)數(shù)據(jù)庫(kù).
B:數(shù)據(jù)文件可以被設(shè)置成自動(dòng)增長(zhǎng).
C:一個(gè)或多個(gè)數(shù)據(jù)文件組成了表空間.
D:一個(gè)數(shù)據(jù)文件只能屬于一個(gè)表空間.
當(dāng)我們要查詢一個(gè)表的數(shù)據(jù)的時(shí)候,如果該表的數(shù)據(jù)沒(méi)有在內(nèi)存中,那么oracle就要讀取該表所在的數(shù)據(jù)文件,然后把數(shù)據(jù)存放的內(nèi)存中.
② 控制文件(control file):一個(gè)數(shù)據(jù)庫(kù)至少要有一個(gè)控制文件,控制文件中存放的數(shù)據(jù)庫(kù)的"物理結(jié)構(gòu)信息",正是因?yàn)樗娣诺氖菙?shù)據(jù)庫(kù)的物理結(jié)構(gòu)信息,所以他就顯得尤其的重要.這些物理結(jié)構(gòu)信息就包括:
A: 數(shù)據(jù)庫(kù)的名字.
B:數(shù)據(jù)文件和聯(lián)機(jī)日志文件的名字及位置.
C:創(chuàng)建數(shù)據(jù)庫(kù)時(shí)的時(shí)間戳.
為了更好的保護(hù)數(shù)據(jù)庫(kù),我們可以鏡像控制文件.每個(gè)控制文件中的內(nèi)容就是相同的.鏡像了控制文件,即使其中的一個(gè)控制文件出現(xiàn)了問(wèn)題,也不會(huì)影響到數(shù)據(jù)庫(kù)的損壞,數(shù)據(jù)的丟失. 在啟動(dòng)數(shù)據(jù)庫(kù)的時(shí)候,oracle就會(huì)根據(jù)控制文件中的數(shù)據(jù)文件和聯(lián)機(jī)日志文件的信息來(lái)打開(kāi)數(shù)據(jù)庫(kù).
③ 聯(lián)機(jī)日志文件(online redo log file): 一個(gè)數(shù)據(jù)庫(kù)可以有多個(gè)聯(lián)機(jī)日志文件,聯(lián)機(jī)日志文件包含了重做記錄(undo records).聯(lián)機(jī)日志文件記錄了數(shù)據(jù)庫(kù)的改變,例如當(dāng)一次意外導(dǎo)致對(duì)數(shù)據(jù)的改變沒(méi)有及時(shí)的寫(xiě)到數(shù)據(jù)文件中,那么oracle就會(huì)根據(jù)聯(lián)機(jī)日志文件中的信息獲得這些改變,然后把這些改變寫(xiě)到數(shù)據(jù)文件中.這也是聯(lián)機(jī)日志文件存在的意義.聯(lián)機(jī)日志文件中重做記錄的***功能就是用來(lái)做實(shí)例的恢復(fù).比如,一次系統(tǒng)的意外掉電,導(dǎo)致內(nèi)存中的數(shù)據(jù)沒(méi)有被寫(xiě)到數(shù)據(jù)文件中.那么oralce就會(huì)根據(jù)聯(lián)機(jī)日志文件中的重做記錄功能包數(shù)據(jù)庫(kù)恢復(fù)到失敗前的狀態(tài).
④ 歸檔日志文件(Archive log file):是聯(lián)機(jī)日志文件的副本,他記錄了對(duì)數(shù)據(jù)庫(kù)改變的歷史.
⑤ 參數(shù)文件(parameter file):通常情況下指的就是初始化參數(shù)文件(initialization parameter file).參數(shù)文件包括了初始化參數(shù)文件和服務(wù)器端參數(shù)文件(server parameter file).在數(shù)據(jù)庫(kù)啟動(dòng)的時(shí)候就會(huì)讀取參數(shù)文件,然后根據(jù)參數(shù)文件中的參數(shù)來(lái)分配SGA并啟動(dòng)一系列的后臺(tái)進(jìn)程.參數(shù)文件中存放的是數(shù)據(jù)庫(kù)和實(shí)例的參數(shù).
⑥ 警報(bào)文件(alert log file):就是警報(bào)日志文件,他記錄了數(shù)據(jù)庫(kù)的重大活動(dòng)和所發(fā)生的錯(cuò)誤.警報(bào)文件按照時(shí)間的先后來(lái)記錄所發(fā)生的重大活動(dòng)和錯(cuò)誤.警報(bào)文件的名字的格式是alertSID.log.警報(bào)文件的位置是由初始化參數(shù)background_dump_desc指定的.
⑦ 跟蹤文件(trace log file): 就是跟蹤日志文件,每個(gè)服務(wù)器進(jìn)程和后臺(tái)進(jìn)程都寫(xiě)跟蹤文件.例如當(dāng)后臺(tái)進(jìn)程發(fā)生了錯(cuò)誤的時(shí)候,oracle就會(huì)把錯(cuò)誤的信息寫(xiě)到跟蹤文件中.DBA就可以根據(jù)跟蹤文件的信息來(lái)查看進(jìn)程中所發(fā)生的錯(cuò)誤.跟蹤文件被寫(xiě)到了兩個(gè)目錄中.和服務(wù)器進(jìn)程有關(guān)的信息被寫(xiě)到了由初始化參數(shù)user_dump_desc指定的目錄中,和后臺(tái)進(jìn)程有關(guān)信息被寫(xiě)到了由初始化參數(shù)background_dump_desc指定的目錄中.伴隨著時(shí)間跟蹤文件就會(huì)被寫(xiě)滿,DBA可以手動(dòng)來(lái)刪除跟蹤文件,也可以限制跟蹤文件的大小.初始化參數(shù)MAX_DUMP_FILE_SIZE就可以限制跟蹤文件的大小.
⑧ 備份文件(backup file): 就是在數(shù)據(jù)庫(kù)發(fā)生介質(zhì)損壞的時(shí)候用來(lái)還原(restore)數(shù)據(jù)庫(kù)的,恢復(fù)(recover)數(shù)據(jù)的.
【編輯推薦】