標籤:
一、Oracle資料表空間概述
資料表空間是Oracle資料庫中的一種邏輯結構。從邏輯層面上來說,資料表空間包含段,資料庫中的對象是以段的形式來組織的,諸如表段,索引段等;從物理層面上來說,資料表空間是由檔案構成的,資料庫中的資料實際上是儲存在檔案當中的。資料表空間不是Oracle資料庫中的特有概念,如在DB2中也有資料表空間這個概念。
二、本地管理的資料表空間
1、本地管理資料表空間中的擴充(extent)管理
使用extent management local子句顯示聲明建立本地管理的資料表空間,對於新的永久資料表空間來說,這是一個預設的選項(基於資料字典管理的資料表空間已經過時)。同時,還可以指定擴充管理的方式,使用autoallocate子句表明將由資料庫自動分配擴充,使用uniform子句表明將按照統一的大小分配擴充。
如果資料表空間內的對象對於擴充尺寸的要求是多種多樣的,那麼使用autoallocate選項是一個不錯的選擇。另外,由於autoallocate選項簡化了對空間的管理,勢必會造成一定的空間浪費。如果控制空間的分配和回收對你來說並不是那麼重要,那麼autoallocate也將是一個不錯的選擇。autoallocate帶來的收益絕對超過其造成的損失。uniform選項可以明確的指出每一次為空白間的申請分配多少擴充,如果資料表空間內的對象每次對空間的請求都是固定的,那麼這個選項將會是一個不錯的選擇。在實際使用過程中,應根據資料表空間內的對象的具體情況作出抉擇。
建立本地管理資料表空間的分區管理建立語句如下:
# 自動分配擴充create tablespace lmt_tbs datafile ‘/u02/oracle/data/lmt_tbs.dbf‘ size 50mextent management local autoallocate;# 統一分配擴充create tablespace uni_tbs datafile ‘/u02/oracle/data/uni_tbs.dbf‘ size 50mextent management local uniform size 128k;
2、本地管理資料表空間中的段(segment)管理
在本地管理的資料表空間中,Oracle使用兩種方法管理段空間:自動和手動。手動段空間管理使用一個被稱為”freelist“的隊列來管理段內的空間,由pctused和pctfree兩個參數用來控制空間的”入列“和”出列“,與之不同的是,自動段空間管理使用的是位元影像的管理方式,在自動段空間管理中,只需要設定pctfree參數。自動段空間管理是一種更為有效空間管理方式。對於新的基於本地管理的資料表空間來說自動段空間管理是預設的。
自動段空間管理的建立語句如下:
create tablespace lmt_tbs datafile ‘/u02/oracle/data/lmt_tbs.dbf‘ size 50mextent management local autoallocatesegment space management auto;
三、大檔案資料表空間
一個小檔案資料表空間最多能容納1024個資料檔案,在Oracle中可以建立大檔案資料表空間,這樣Oracle資料庫使用的資料表空間就可以由一個單一的大檔案構成,而不是若干個小資料檔案。
1、使用大檔案資料表空間的優勢
- 使用大檔案資料表空間可以顯著地增強Oracle資料庫的儲存能力。由於每個資料庫最多使用64K個資料檔案,因此使用大檔案資料表空間時資料庫中資料表空間的極限個數是使用小檔案資料表空間時的1024倍。
- 在超大型資料庫中使用大檔案資料表空間減少了資料檔案的數量,因此也簡化了對資料檔案的管理工作。由於資料檔案的減少,SGA中關於資料檔案的資訊,以及控制檔案(control file)的容量也得以減小。
- 由於資料檔案對使用者透明,由此簡化了資料庫管理工作。
2、使用大檔案資料表空間時需要考慮的問題
- 大檔案資料表空間應該和自動儲存管理或其他邏輯卷管理工具配合使用,這些工具應該能夠支援動態擴充邏輯卷,也能支援striping(資料跨磁碟分布)或RAID。
- 應該避免在不支援striping的系統上使用大檔案資料表空間,因為這將不利於並存執行及RMAN的並行備份
- 當資料表空間正在使用的磁碟組可能沒有足夠的空間,且擴充資料表空間的唯一辦法是向另一個磁碟組加入資料檔案時,應避免使用大檔案資料表空間。
- 不建議在不支援大檔案的平台上使用大檔案資料表空間,這會限制資料表空間(tablespace)的容量。參考相關的作業系統文檔瞭解其支援的最大檔案容量。
- 如果使用大檔案資料表空間替代傳統的資料表空間,資料庫開啟,checkpoints,以及 DBWR 進程的效能會得到提高,但是增大資料檔案容量可能會增加備份與恢複的時間。
3、建立大檔案資料表空間的語句
CREATE BIGFILE TABLESPACE bigtbs DATAFILE ‘/u02/oracle/data/bigtbs01.dbf‘ SIZE 1024GB;
Oracle資料表空間基礎(1)