建立表空間的語法以下:
sql
CREATE [SMALLFILE/BIGFILE] TABLESPACE tablespace_name DATAFILE '/path/filename' SIZE integer [k/m] REUSE [,'/path/filename' SIZE integer [k/m] REUSE] [AUTOEXTEND [OFF/ON] NEXT integer [k/m]] [MAXSIZE [UNLIMTED /integer [k/m]]] [MINIMUN EXTENT integer[k/m]] [default storage storage] [logging /nologging] [permanent/temporary] [extent management [DICTIONARY/LOCAL [AUTOALLOCATE|UNFORM SIZE integer[k/m]]]]
其中:
tablespace-name:要建立的表空間名字;
SMALLFILE/BIGFILE:表示建立的是小文件表空間仍是大文件表空間;
‘/path/filename’:數據文件路徑與名字;REUSE表示若該文件存在,則清除該文件再從新創建該文件,若該文件不存在,則創建該文件;
AUTOEXTEND OFF/ON:表示數據文件爲自動擴展或者非自動擴展,若是是自動擴展,則要設置NEXT的值;
MAXSIZE;表示當數據文件自動擴展時,容許數據文件擴展的最大長度字節數;
MINMUN EXTENT:指定最小的長度,默認由操做系統和數據庫決定;
DEFAULT STOREAGE storage:指定之後要建立的表、索引及簇的存儲參數值,這些參數將影響之後表等的存儲參數值;
ONLINE/OFFLINE:建立表空間時能夠指定爲在線或者離線;
[PERMANENT|TEMPORARY]:建立的表空間爲永久或臨時表空間,默認爲永久表空間;
LOGGING/NOLOGGING:該表空間內的表在數據加載操做時是否產生日誌,默認爲產生日誌(LOGGING);
DICTIONARY/LOCAL:數據字典管理表空間仍是本地化管理表空間,默認爲本地化管理表空間。Oracle不推薦使用字典管理的表空間。
若是採用本地化管理表空間,則會有如下兩個選項
AUTOALLOCATE:指表空間擴展時,每次擴展時盤區的大小的系統自動指定。
UNIFORM SIZE:指定表空間擴展時,盤區按照等同大小進行,默認爲1MB。
只有對於數據加載和部分DDL語句,Oracle的NOLOGGING選項才起做用,即:
SQL*LOAD的直接數據加載。
對於CREATE TABLE...AS SELECT, CREATE INDEX, ALTER INDEX...REBUILD,ALTER INDEX...REBULD PARTITION... ALTER INDEX...等,普通的DML依然會產生日誌,即雖然被設置爲NOLOGGING,但在進行通常的INSERT,UPDATE和DELETE操做是仍要將操做系統信息記錄到Redo Log Buffer中。數據庫
設置表空間爲只讀,須要知足下列條件spa
該表空間必須爲ONLINE;
該表空間不能包含任何回滾段;
在歸檔模式或數據發行中,不能設置表空間爲只讀。
示例:將FLIGHT表空間設置爲只讀
操作系統
alter tablespace flights read only
示例:將SALE表空間設置爲可讀寫方式,斌查詢表空間狀態
日誌
alter tablespace sale read write
DBA只能對通常的表空間改名,不能對SYSTEM和SYSAUX表空間進行改名,也不能對已經處於OFFLINE狀態的表空間進行改名。
對通常表空間改名的詳細過程
(1)查詢表空間和對應的數據文件。
code
clo tablespace_name for a16 col file_name for a60 select tablespace_name, file_name from dba_data_files
(2)查詢TAB1表空間下對存放的對象,對TAB1表空間進行改名。
對象
alter talespace old_name rename to new_name
(3)查詢表空間TAB1中的對象是否存在。
(4)存放在舊錶空間TAB2中的對象也自動改名爲新的表空間中。
設置默認臨時表空間
索引
alter database default temprory tablespace TEMP2
設置默認表空間
it
alter database default tablespace users; select property_value from database_properties where property_name='DEFAULT_PERMANENT_TABLESPACE'
DROP TABLESPACE命令語法:
table
DROP TABLESPACE tablespace_name [INCLUDING CONTENTS] [CASCADE CONSTRAINTS]
其中:tablespace_name:表示要刪除的表空間的名字;INCLUDING CONTENTS:表示在刪除表空間的同時刪除表空間中的數據。若是不指定INCLUDING CONTENTS參數,而該表空間又是非空時,則提示錯誤;CASCADE CONSTRAINTS:表示當前刪除表空間是也刪除相關的完整性限制。完整性限制包括主鍵及惟一索引等。若是完整性存在,而沒有CASCADE CONSTRAINTS參數。則Oracle會返回一個錯誤,而且不會刪除表空間。