在oracle中,允许把一个数据文件从一个物理位置移动到另外一个物理位置。
查询数据文件当前的位置

SQL> set linesize 200
SQL> col FILE_NAME format a60
SQL> select file_name,tablespace_name from  dba_data_files;

FILE_NAME						     TABLESPACE_NAME
------------------------------------------------------------ ------------------------------
/u01/app/oraData/orcl/users01.dbf			     USERS
/u01/app/oraData/orcl/undotbs01.dbf			     UNDOTBS1
/u01/app/oraData/orcl/sysaux01.dbf			     SYSAUX
/u01/app/oraData/orcl/system01.dbf			     SYSTEM
/u01/app/oraData/orcl/hbk_data.dbf			     HBK_DATA
/u01/app/oraData/orcl/CMS69_DATA.dbf			     CMS69_DATA

6 rows selected.

可以知道,HBK_DATA表空间存放的数据文件位置为/u01/app/oraData/orcl/hbk_data.dbf
把该数据文件离线

SQL> alter tablespace HBK_DATA offline normal;

Tablespace altered.

然后通过操作系统命令,把hbk_data.dbf文件移动到/u01/app/oraData/bak/目录下

SQL> ho mkdir /u01/app/oraData/bak
SQL> ho mv /u01/app/oraData/orcl/hbk_data.dbf /u01/app/oraData/bak/
SQL> ho ls /u01/app/oraData/bak
hbk_data.dbf

修改控制文件,把数据文件hbk_data.dbf改成/u01/app/oraData/bak

SQL> alter tablespace HBK_DATA rename datafile '/u01/app/oraData/orcl/hbk_data.dbf' to '/u01/app/oraData/bak/hbk_data.dbf';

Tablespace altered.

然后把该数据文件在线

SQL> alter tablespace HBK_DATA online;

Tablespace altered.

执行查询,可以看到数据文件已经移动成功。
oracle移动数据文件_数据库