前言
在达梦数据库中,TEMP 临时表空间是DB自己维护的,我们不用单独管理。 对于业务表空间的数据库,我们可以直接改变其存储路径,比如当磁盘空间不足时,将数据文件转移到其他磁盘目录中。
一、移动方法
操作方法有两种:
1.使用SQL,将表空间离线,rename 数据文件路径,在online 表空间。 该方法同Oracle 12c 之前的版本操作一致,但不需要物理移动数据文件。 Oracle 也是到12c 以后才支持在线移动数据文件。
2. 停库,移动数据文件,重建控制。
这里演示第一种方法,使用SQL语句来操作。
二、操作步骤
1.创建表空间
使用disql工具登录数据库:cd /home/dmdba/dmdbms/bin
./disql SYSDBA/SYSDBA@localhost:5236
查看当前表空间情况:
select tablespace_name, file_name, status from dba_data_files order by 1;
创建一个新的表空间:
create tablespace test datafile '/home/dmdba/dmdbms/data/DAMENG/test01.DBF' size 32, '/home/dmdba/dmdbms/data/DAMENG/test02.DBF' size 32;
然后再次查看表空间情况:
select tablespace_name, file_name, status from dba_data_files order by 1;
创建完成。
2.OFFLINE表空间并移动数据文件位置
首先offline新创建的表空间test
alter tablespace test offline;
然后将表空间文件移动到/home/dmdba/目录下:
alter tablespace test rename datafile '/home/dmdba/dmdbms/data/DAMENG/test01.DBF' to '/home/dmdba/test01.dbf';
alter tablespace test rename datafile '/home/dmdba/dmdbms/data/DAMENG/test02.DBF' to '/home/dmdba/test02.dbf';
然后online表空间test:
alter tablespace test online;
查看表空间状况:
select tablespace_name, file_name, status from dba_data_files order by 1;
移动成功。
三、注意事项
1.rename
注意这里的rename 即修改控制文件,也进行物理操作,不再需要单独在操作系统上移动数据文件:
ls -l /home/dmdba/dmdbms/data/DAMENG/test0*
ls -l /home/dmdba/test0*
2.其他表空间能否移动
这里除了TEMP、SYSTEM 、ROLL 三个系统表空间不能移动之外,其他表空间都可以移动:
alter tablespace SYSTEM offline;
alter tablespace roll offline;
alter tablespace temp offline;