常用相关视图:
v$tablespace;
v$datafile;
dba_data_files;
dba_tablespaces;
dba_free_space;
DM数据库的数据文件最小值 = 4096 × 页大小
(如:页大小为8192字节,则数据文件最小值为32M;若页大小为16384字节,则数据文件最小值为64M。)
# su - dmdba
$ disql sysdba/dameng123
新建表空间TBS:(默认单位M,初始大小128M,自动扩展,步长4M,最大10G)
create tablespace TBS datafile '/dm/data/DAMENG/TBS01.dbf' size 128 autoextend on next 4 maxsize 10240;
为现有表空间增加数据文件:
alter tablespace TBS add datafile '/dm/data/DAMENG/TBS02.dbf' size 10240 autoextend off;
修改数据文件大小:
alter tablespace TBS resize datafile 'TBS02.dbf' to 256;
修改文件扩展属性:
alter tablespace TBS datafile 'TBS01.dbf' autoextend off;
alter tablespace TBS datafile 'TBS01.dbf' autoextend on next 4 maxsize 10240;
用户表空间可以脱机迁移到其他路径,而SYSTEM、ROLL 和 TEMP 表空间不允许脱机。普通表空间可以在脱机状态下修改数据文件路径和文件名(当表空间有未提交事务时,不能脱机),修改数据文件路径时需保证修改后的数据文件路径存在。
alter tablespace TBS offline;
alter tablespace TBS rename datafile 'TBS01.dbf' to '/dm8/data/DAMENG/TBS/TBS01.dbf';
alter tablespace TBS rename datafile 'TBS02.dbf' to '/dm8/data/DAMENG/TBS/TBS02.dbf';
alter tablespace TBS online;
脱机和联机操作也可以在达梦管理工具 manager 中操作(需要注意的是“缓存”如果修改为keep,则对应表空间数据会常驻内存)。
表空间联机状态下支持重命名表空间,脱机状态下不支持重命名表空间。用户自定义表空间可以重命名。
SYSTEM、ROLL、TEMP、MAIN和HMAIN表空间不支持重命名操作。
rename tablespace TBS to TBSTEST;
对于不再使用的表空间,可以选择删除(已经使用的表空间不能删除)。删除表空间之前,需清除表空间中的表和数据,否则会删除失败。
SYSTEM、ROLL、TEMP、MAIN和HMAIN表空间不允许删除。
drop tablespace TBS;
小结:
(1)表空间和数据文件的管理只能在数据库启动状态下操作;
(2)在规划表空间时,需要规划数据文件的存放位置,业务表空间的数据文件建议单独规划磁盘,避免IO的争用;
(3)修改表空间数据文件大小时,其大小必须大于自身大小;
(4)当表空间有未提交事务时,表空间不能修改为OFFLINE状态;
(5)SYSTEM、 ROLL和TEMP表空间不允许脱机、重命名和删除操作;
(6)MAIN表空间和HMAIN表空间可以脱机,但不允许重命名和删除;
(7)当表空间中有数据时,表空间不能直接删除。
(8)更换存储,修改普通表空间数据文件路径时,表空间必须处于OFFLINE状态,修改成功后再将表空间修改为ONLINE状态。