建立表空间的语法以下:
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会返回一个错误,而且不会删除表空间。