標籤:
資料表空間
資料表空間是Oracle資料結構中最大的邏輯結構
- 基本資料表空間
- 暫存資料表空間:排序、匯總過程中產生的臨時資料
- 大檔案資料表空間:儲存大型資料
- 非標準資料區塊資料表空間
- 撤銷資料表空間:儲存撤銷資料
基本資料表空間
建立一個名為TEMP0301的資料表空間
create tablespace temp0301datafile ‘F:\SQL\use0301.dbf‘ size 20mautoextend on next 10m maxsize unlimited;
create tablespace temp0302datafile ‘F:\SQL\use0302.dbf‘ size 10mautoextend on next 10m maxsize 100mextent management local uniform size 800k;
建立一個手動方式管理段的資料表空間
create smallfile tablespace temp0303datafile ‘F:\SQL\use0303.dbf‘ size 10mextent management local uniform size 256ksegment space management manual;
修改資料表空間
為資料表空間增加新的資料檔案
修改資料檔案大小
如果需要增大資料表空間,另一個方法就是增大資料表空間中已有資料檔案的大小。
通過查詢資料字典視圖DBA_FREE_SPACE,可以瞭解資料表空間的空閑分區情況。
select tablespace_name,file_id,block_id,bytes,blocksfrom dba_free_space;
alter database datafile ‘F:\SQL\use0101.dbf‘resize 100m;
修改資料檔案的自動擴充屬性
AUTOEXTEND
資料表空間的狀態屬性
通過設定資料表空間狀態們可以對資料的可用性進行限制
- 離線OFFLINE:不能訪問資料表空間中的資料,這個時候可以進行升級和維護
- 線上ONLINE:資料表空間中的相應資料才能被訪問
- 唯讀READ ONLY (屬於線上狀態)
- 讀寫READ WRITE(屬於線上狀態)
alter
alter tablespace temp0301 offline;alter tablespace temp0301 online;alter tablespace temp0301 read write;
移動資料檔案
在增加資料表空間時,如果資料檔案所在的磁碟沒有足夠的空間,這時可以移動資料檔案,將該檔案儲存體到另一個磁碟。
移動資料檔案操作步驟:
- 修改資料表空間為OFFLINE狀態
- 複製資料檔案到另一個磁碟
- 使用ALTER TABLESPACE RENAME語句修改資料檔案的名稱
- 將資料表空間狀態修改為ONLINE
EXAMPLE:將F盤use0101儲存到D盤
將F盤use0101.dbf複製到D盤
alter tablespace temp0301rename datafile ‘F:\SQL\use0101.dbf‘to ‘D:\OracleTest\use0101.dbf‘;
alter tablespace temp0301 online;
刪除資料表空間
DROP TABLESPACE
暫存資料表空間
暫存資料表空間主要用來為排序或者匯總等操作提供臨時的工作空間。
建立一個暫存資料表空間TEMP0304
create temporary tablespace temp0304tempfile ‘F:\SQL\temp0304.dbf‘ size 10mautoextend on next 10m maxsize 100mextent management local;
注意:
- 暫存資料表空間只能用於儲存臨時資料,不能夠儲存永久性資料
- 由於暫存資料表空間中的檔案為臨時檔案,所以資料字典DBA_DATA_FILES不再記錄有關臨時檔案的資訊。而臨時檔案被儲存在資料字典視圖V$TEMPFILE中。
暫存資料表空間的盤區管理方式都是UNIFORM,所以在建立暫存資料表空間時,不能使用AUTOALLOCATE關鍵字制定盤區的管理方式。
修改暫存資料表空間
修改暫存資料表空間主要有以下操作:
- 增加臨時檔案
- 修改臨時檔案的大小
- 修改臨時檔案的狀態
增加臨時檔案
alter tablespace temp0304add tempfile ‘F:\SQL\tempfile0306.dbf‘ size 10m;
修改臨時檔案大小
alter database tempfile‘F:\SQL\tempfile0306.dbf‘ resize 20m;
還可以修改狀態為OFFLINE或ONLINE
暫存資料表空間組
在Oracle 11g中,使用者可以建立暫存資料表空間組,一個暫存資料表空間組中可以包含一個或者多個暫存資料表空間。
建立暫存資料表空間組,需要使用GROUP關鍵字
create temporary tablespace tempgrouptempfile ‘f:\SQL\tempgroup0307.dbf‘ size 10mtablespace group group0301;
建立暫存資料表空間組後可以進行如下操作:
得到暫存資料表空間的資訊
select * from dba_tablespace_groups;
向暫存資料表空間組增加一個暫存資料表空間
create temporary tablespace groupspace2tempfile ‘F:\SQL\tempgroup0302.dbf‘ size 10mtablespace group group0301;
《Oracle完全學習手冊》 資料表空間&管理控制檔案與記錄檔&表 學習筆記