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