已索引
既可以使用命令行进行管理,也可以使用管理器来管理。
相关视图
select * from dba_tablespaces;
select * from DBA_DATA_FILES;
select * from v$tablespace;
select * from v$datafile;
select * from DBA_FREE_SPACE; --数据文件剩余空间
默认表空间
DM 默认预定义 SYSTEM、ROLL、MAIN、HMAIN、TEMP 五个表空间。
SYSTEM:系统表空间,存放数据字典等信息(表、字段、视图等对象的定义、权限信息等)
ROLL:回滚表空间,存放回滚页,数据库中的 DML 操作对应都会生成 redo 和 undo,undo 信息放入 ROLL 表空间。
MAIN:用户默认表空间,当创建用户时,如果为指定用户的默认表空间,则 MAIN 为用户的默认表空间。
HMAIN:HUGE 表的默认表空间(HTS 表空间)。
TEMP:临时表空间,存放临时表数据等、当大量的数据排序或创建索引占用临时表空间。DM 中临时表空间由参数 TEMP_SIZE 指定。
临时表空间
DM 的临时表空间是库级别的,不能做到用户级别。
TEMP_SIZE:临时表空间初始大小。
TEM_PATH:临时表空间路径。
TEMP_SPACE_LIMIT:临时表空间的空间限制,0 表示不限制。
收缩 TEMP 表空间的方法:
1、 重启数据库,TEMP 表空间数据文件会重建。
2、 在线收缩临时表空间 SP_TRUNC_TS_FILE。正在使用的临时数据页不会被收缩。
UNDO 表空间
alter system set 'UNDO_RETENTION'= 300 both;
创建表空间
SQL> create tablespace nscfstbs datafile 'nscfs01.dbf' size 1024 autoextend on next 2 maxsize 30720 [CACHE=NORMAL|"KEEP"];
表空间可以使用的数据缓冲区有 NORMAL 和 KEEP。不指定默认就是 NORMAL。对应关系可以在 v$tablespace 视图中查到。
表空间数据文件大小不能给单位,单位是M。数据文件大小不能小于页大小的4096倍:page_size*4096/1024/1024。例如,如果页大小是 8K,最小值将不低于 32M,最大值为页大小的 2 的 31 次方-1(如果页大小是 8K,最大值为 16T-1)。
表空间离线
alter tablespace tbs offline; <--- 除 MAIN 和 HMAIN 外,所有预置的表空间都不能脱机
表空间重命名
alter tablespace tbs RENAME TO dmtbs;
删除表空间
drop tablespace nscfstbs; <--- 注意,与oracle不同的是,DM只能删除空的表空间
修改表空间数据文件
alter tablespace tbs add DATAFILE 'TBS02.DBF' size 128 AUTOEXTEND on NEXT 2 MAXSIZE 20480;
alter tablespace tbs DATAFILE 'TBS01.DBF' AUTOEXTEND on NEXT 2 MAXSIZE 20480;
alter tablespace tbs DATAFILE 'TBS01.DBF' AUTOEXTEND off;
alter tablespace tbs RESIZE DATAFILE 'TBS01.DBF' TO 128;
重命令/移动/迁移表空间数据文件:
alter tablespace tbs offline;
alter TABLESPACE tbs RENAME DATAFILE 'TBS01.DBF' TO '/dmdb/data/DM/TBS/TBS01.DBF';
alter TABLESPACE tbs RENAME DATAFILE 'TBS02.DBF' TO '/dmdb/data/DM/TBS/TBS02.DBF';
alter tablespace tbs online;