一些基本概念:
一个表空间在某一时刻只能属于一个数据库;
除了 SYSTEM 表空间或者有活动回退段的表空间,其它表空间可以脱机;
表空间可以在可读写和只读状态之间切换;
一个数据文件只能属于一个表空间;
段无法跨越表空间,但是段可以跨越属于同一表空间的多个数据文件;
一个区可能不跨越数据文件;必须存在于一个数据文件内;
对应Oracle来说,表空间主要分为系统表空间(system)和其他非系统表空间,或者说分为重要表空间和不重要表空间;有人就要说了,我在XXX表空间存放在我的业务数据呢,怎么能这么分呢?但是oracle就是这么分,因为只要保证system表空间的存在,数据库就可以运行。
一些命令:
创建表空间
create tablespace mytb1 datafile '/u01/oradata/mytb01.dfb' SIZE 10M AUTOEXTEND ON NEXT 5M MAXSIZE 1024M;
create tablespace mytb1 datafile '/u01/oradata/mytb01.dfb' SIZE 10M AUTOEXTEND ON NEXT 5M MAXSIZE UNLIMITED;
create tablespace mytb1 datafile '/u01/oracle/9i/oradata/gt9i/mytb01.dbf' size 10m autoextend off,'/u01/oracle/9i/oradata/gt9i/mytb02.dbf' size 10m autoextend off;
CREATE TEMPORARY TABLESPACE mytbtmp1 TEMPFILE '/u01/oradata/mytbtmp1.dfb' SIZE 10M AUTOEXTEND ON NEXT 5M MAXSIZE 10240M;
CREATE undo TABLESPACE mytbtmp1 TEMPFILE '/u01/oradata/mytbtmp1.dfb' SIZE 10M AUTOEXTEND ON NEXT 5M MAXSIZE 10240M;
关于临时表空间
无法设置只读
无法rename
始终是nologging
不会备份
不会恢复
使表空间脱机
alter tablespace mytb1 offline;--注意有4个选项,默认normal,TEMPORARY|IMMEDIATE|FOR RECOVER
使表空间联机
alter tablespace mytb1 online;
使表空间只读
alter tablespace mytb1 read only;
使表空间读写
alter tablespace mytb1 read write;
增加数据文件
alter tablespace mytb1 add datafile '/u01/oracle/9i/oradata/gt9i/mytb01.dbf' size 10m;
调整数据文件大小
alter tablespace mytb1 datafile '/u01/oracle/9i/oradata/gt9i/mytb01.dbf' resize 10m;
移动数据文件
alter tablespace mytb1 rename datafile '/u01/oracle/9i/oradata/gt9i/mytb01.dbf' to '/u01/oracle/9i/oradata/gt9i/mytb02.dbf';
数据库层面移动数据文件
alter database rename file '/u01/oracle/9i/oradata/gt9i/mytb01.dbf' to '/u01/oracle/9i/oradata/gt9i/mytb02.dbf';
删除表空间
drop tablespace mytb1 including contents and datafiles;
DROP TABLESPACE mytb1 INCLUDING CONTENTS CASCADE CONSTRAINTS;
-The End-
更多Oracle相关信息见 专题页面