在线迁移表空间数据文件
由于数据库磁盘规划,需要将现有数据库表空间数据文件迁移到另外的磁盘上去
这里选择的是在线迁移:
首先查询所有表空间数据文件:
select file_name,tablespace_name,online_status from dba_data_files;
先将迁移的表空间下线:
alter tablespace MPAY offline;
迁移数据文件:
host mv /database/TS1_01.dbf /mnt/data/TS1_01.dbf;
host mv /database/TS1_02.dbf /mnt/data/TS1_02.dbf;
host mv /database/TS1_03.dbf /mnt/data/TS1_03.dbf;
host mv /database/TS1_04.dbf /mnt/data/TS1_04.dbf;
host mv /database/TS1_05.dbf /mnt/data/TS1_05.dbf;
host mv /database/TS1_06.dbf /mnt/data/TS1_06.dbf;
修改数据库配置:
alter database rename file '/database/TS1_01.dbf' to '/mnt/data/TS1_01.dbf';
alter database rename file '/database/TS1_02.dbf' to '/mnt/data/TS1_02.dbf';
alter database rename file '/database/TS1_03.dbf' to '/mnt/data/TS1_03.dbf';
alter database rename file '/database/TS1_04.dbf' to '/mnt/data/TS1_04.dbf';
alter database rename file '/database/TS1_05.dbf' to '/mnt/data/TS1_05.dbf';
alter database rename file '/database/TS1_06.dbf' to '/mnt/data/TS1_06.dbf';
将表空间重新上线:
alter tablespace MPAY online;
注意:这样迁移后原磁盘空间的数据文件已不在,但是占用的空间并不会释放,因为ORACLE的进程还在运行,数据文件还在占用。
可以用下面的命令查询确认:
lsof |grep deleted
需要抽时间重启下数据库即可在硬盘释放该空间