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