Oracle数据库的数据文件的位置和信息都被记录在控制文件中,rm或cp命令是不会也不可能更改控制文件记录的,这时必须通过alter操作去更改刷新数据库控制文件中数据文件的相关信息,以此确保数据库能够正常运行:
方法1:
1.将表空间脱机

alter tablespace mars_base_data offline;

2.复制数据文件到新的目录

cp /data/app/oracle/oradata/test.dbf /data2/app/oracle/oradata/test.dbf

3.rename修改表空间

alter tablespace test rename datafile '/data/app/oracle/oradata/test.dbf' to '/data2/app/oracle/oradata/test.dbf'

4.将表空间联机

alter tablespace test online;

5.检查数据文件

select name from v$datafile;
或者
select file_name, tablespace_name from dba_data_files where tablespace_name='test';

方法2:
1.关闭数据库

shutdown immediate;

2.复制数据文件到新的位置

cp /data/app/oracle/oradata/test.dbf /data2/app/oracle/oradata/test.dbf

3.启动数据库到mount状态

startup mount;  

4.修改数据文件位置

alter database rename file '/data/app/oracle/oradata/test.dbf' to '/data2/app/oracle/oradata/test.dbf'

5.打开数据库

alter database open;

检查数据文件

select name from v$datafile;
或者
select file_name, tablespace_name from dba_data_files where tablespace_name='test'; 
带符号 * 的表示必填项