1. 程式人生 > 資料庫 >Oracle資料庫自帶表空間的詳細說明

Oracle資料庫自帶表空間的詳細說明

需求:

需要整理現場使用者建立的表空間以及其儲存資料,進行規範化管理。在整理使用者現場建立的表空間時,需要排除掉非使用者建立的表空間,所有首先需要那些表空間是使用者建立的,那些是Oracle自帶的。

本機測試建立一個新庫,發現自帶表空間如下:

下面對每一個表空間進行簡單說明(部分內容引自網路):

1、SYSAUX表空間

SYSAUX表空間在Oracle Database 10g中引入,作為SYSTEM表空間的輔助表空間.以前一些使用獨立表空間或系統表空間的資料庫元件現在在SYSAUX表空間中建立.SYSAUX 表空間存放一些其他的 metadata 元件,如 OEM,Streams 等會預設存放在 SYSAUX 表空間裡。通過分離這些元件和功能,SYSTEM表空間的負荷得以減輕.反覆建立一些相關物件及元件引起SYSTEM表空間的碎片問題得以避免。

2、SYSTEM表空間

SYSTEM表空間是Oracle建立資料庫時候自動建立的,每個Oracle資料庫都會有SYSTEM表空間,而且SYSTEM表空間總是要保持在聯機模式下,因為其包含了資料庫執行所要求的基本資訊,如:資料字典、聯機求助機制、所有回退段、臨時段和自舉段、所有的使用者資料庫實體、其它ORACLE軟體產品要求的表等等。

3、TEMP表空間

臨時表空間用來管理資料庫排序操作以及用於儲存臨時表、中間排序結果等臨時物件,當ORACLE裡需要用到SORT的時候,並且當PGA中sort_area_size大小不夠時,將會把資料放入臨時表空間裡進行排序。像資料庫中一些操作: CREATE INDEX、 ANALYZE、SELECT DISTINCT、ORDER BY、GROUP BY、 UNION ALL、 INTERSECT、MINUS、SORT-MERGE JOINS、HASH JOIN等都可能會用到臨時表空間。當操作完成後,系統會自動清理臨時表空間中的臨時物件,自動釋放臨時段。這裡的釋放只是標記為空閒、可以重用,其實實質佔用的磁碟空間並沒有真正釋放。這也是臨時表空間有時會不斷增大的原因。臨時表空間儲存大規模排序操作(小規模排序操作會直接在RAM裡完成,大規模排序才需要磁碟排序Disk Sort)和雜湊操作的中間結果.它跟永久表空間不同的地方在於它由臨時資料檔案(temporary files)組成的,而不是永久資料檔案(datafiles)。臨時表空間不會儲存永久型別的物件,所以它不會也不需要備份。另外,對臨時資料檔案的操作不產生redo日誌,不過會生成undo日誌。

4、UNDO表空間

UNDO表空間是Oracle特有的概念。undo表空間中會自動分配undo段,這些undo段用來儲存事務中的DML語句的undo資訊,也就是來儲存資料在被修改之前的值。在rollback,例項恢復(前滾),一致性讀CR塊的構造時會使用到undo資訊。由於undo的引入,從而Oracle的select語句實現一致性讀時,不需要任何鎖。undo表空間和其它表空間有很多類似的地方:undo資料塊也會被讀到buffer cache快取起來,修改時也會產生redo log,資料也會寫回到undo表空間的磁碟上。所以崩潰後,undo塊的buffer cache也會恢復過來。

5、USERS表空間

建立使用者必須為其指定表空間,如果沒有顯性指定預設表空間,則指定為users表空間,此使用者所有資訊都會放入到users表空間中。

總結

以上所述是小編給大家介紹的Oracle資料庫自帶表空間的詳細說明,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回覆大家的。在此也非常感謝大家對我們網站的支援!