一、使用CREATE TABLESPACE 语句创建表空间
查看系统默认表空间的位置语句:select t1.name,t2.name from v$tablespace t1,v$datafile t2 where t1.ts# = t2.ts#;
1.创建本地表空间
(1) 创建本地管理表空间orcltb1,数据文件为C:\Users\admin\Documents\ORACLE\DATAFILE\mytb01.dbf,大小为50M,指定本地管理表空间,由表空间自动分配区间,语句如下:
create tablespace orcltb1 datafile 'C:\Users\admin\Documents\ORACLE\DATAFILE\mytb01.dbf' size 50m extent management local autoallocate;
tablespace ORCLTB1 已创建。
datafile:用于指定表空间的数据文件。
size:用于指定数据文件的大小。
autoallocate:指定表空间由系统管理,最小区间为64Kb,与autoallocate对应的是uniform,使用它可以指定最小的区间大小。
(2) 创建本地管理表空间orcltb21,数据文件为C:\Users\admin\Documents\ORACLE\DATAFILE\mytb02.dbf,大小为30M,指定本地管理表空间,指定其最小区间为128kb语句如下:
create tablespace orcltb2 datafile 'C:\Users\admin\Documents\ORACLE\DATAFILE\mytb02.dbf' size 30m extent management local uniform size 128k;
tablespace ORCLTB2 已创建。
2.创建大文件表空间
大文件表空间由唯一的,非常巨大的数据文件组成,普通的小文件表空间可以包含多个数据文件,但大文件表空间只能包含一个数据文件。
(1) 创建本地管理表空间bigtb,数据文件为C:\Users\admin\Documents\ORACLE\DATAFILE\bigtb.dbf,大小为10GB,指定本地管理表空间,指定其最小区间为128kb语句如下:
create bigfile tablespace bigtb datafile 'C:\Users\admin\Documents\ORACLE\DATAFILE\bigtb.dbf' size 10G;
bigfile TABLESPACE 已创建。
3.创建临时表空间
(1)创建本地管理表空间temptb,数据文件为C:\Users\admin\Documents\ORACLE\DATAFILE\temptb.dbf,大小为20m,指定本地管理表空间,指定其最小区间为16m语句如下:
create temporary tablespace temptb Tempfile 'C:\Users\admin\Documents\ORACLE\DATAFILE\temptb.dbf' size 20m reuse extent management local uniform size 16m;
temporary TABLESPACE 已创建。
注意: a、 create tablespace中使用关键词tempfile 而不是datafile了。
b、使用tempfile子句可以指定临时文件的绝对路径和文件名。
c、 使用reuse关键字可以重用。
d、在创建临时表空间是,不允许使用autoallocate关键词,因此表空间的区间大小有uniform size指定。
4.创建撤销表空间
(1) 创建撤销表空间undotb1,数据文件为C:\Users\admin\Documents\ORACLE\DATAFILE\undotb1.dbf,大小为20m,指定本地管理表空间,指定其最小区间为16m语句如下:
create undo tablespace undotb1 datafile 'C:\Users\admin\Documents\ORACLE\DATAFILE\undotb1.dbf' size 2m reuse;。
undo TABLESPACE 已创建。
在创建数据库时,系统会创建一个撤销表空间,用户也可以显示地创建撤销表空间。当数据库实例启动时,数据库会选择使用第一个可用的撤销表空间。但是如果没有可用的撤销表空间,则系统将撤销记录保存在SYSTEM表空间中,同时记录一条警告日志,说明系统在没有撤销表空间情况下运行。
二、设置和修改表空间属性
1.重命名表空间
在alter tablespace语句中使用rename to子句重命名表空间
alter tablesapce 原表空间名 rename to 新表空间名
(1)将本地表空间orcltb1重命名为orcltbone
alter tablespace orcltb1 rename to orcltbone;
tablespace ORCLTB1已变更。
2.向本地表空间中增加数据文件
在alter tablespace语句中使用add datafile子句,可以在本地管理表空间中增加数据文件.
alter tablespace 表空间名 add datafile 增加的数据库文件 size 数据文件大小;
(1)向表空间orclone中增加一个数据文件'C:\Users\admin\Documents\ORACLE\DATAFILE\orcltbtwo.dbf',初始大小 为10m:
alter tablespace orcltbone add datafile 'C:\Users\admin\Documents\ORACLE\DATAFILE\undotbtwo.dbf' size 10m;
tablespace ORCLTBONE已变更。
(2)修改大文件表空间bigtb的数据文件大小为4GB
alter tablespace bigtb resize 4G;
tablespace BIGTB已变更。
三、表空间的状态
1.查看表空间的状态
select tablespace_name,status,contents from dba_tablespaces;
2.设置表空间的状态
表空间的状态可以分为联机和脱机两种。
在以下情况下,可以将表空间设置为脱机状态:
a:数据库的一部分设置为不可访问,而其他部分可以访问。
b:执行脱机表空间备份。
c:在升级或维护应用程序时,将应用程序及其使用的表空间设置为不可访问。
d:重命名或重新分配表空间。
注意:系统(SYSTEM)表空间、还原(UNDO)表空间、临时表(TEMPORARY)空间不可设置为脱机状态
将表空间设置为脱机状态: alter tablespace 表空间名 offline;
(1)将表空间orcltbone设置为脱机状态
alter tablespace orcltbone offline;
(2)将表空间orcltbone设置为联机状态
alter tablespace orcltbone online;
将表空间设置为只读状态:,主要目的是为了避免对数据库中大量静态数据进行备份和恢复操作,还可以保护历史数据不被修改。
(3)将表空间orcltbone设置为只读状态。
alter tablespace orcltbone read only;
(4)将表空间orcltbone设置为可读写状态
alter tablespace orcltbone read write;
四、删除表空间
1、删除表空间
drop tablespace 表空间名 ;