11g 不像12c 以后可以在线直接迁移
First make the datafile offline
SQL> select file_name,tablespace_name,online_status from dba_data_files where tablespace_name='NCIMP';
FILE_NAME
--------------------------------------------------------------------------------
TABLESPACE_NAME ONLINE_
------------------------------ -------
/oradata/erpdb/dbfile/ncimp_data01.dbf
NCIMP ONLINE
SQL> alter database datafile '/oradata/erpdb/dbfile/ncimp_data01.dbf' offline;
Database altered.
SQL> select file_name,tablespace_name,online_status from dba_data_files where tablespace_name='NCIMP';
FILE_NAME
--------------------------------------------------------------------------------
TABLESPACE_NAME ONLINE_
------------------------------ -------
/oradata/erpdb/dbfile/ncimp_data01.dbf
NCIMP RECOVER
move the datafile as os level
SQL> !mv /oradata/erpdb/dbfile/ncimp_data01.dbf /ora_ssd/dbfile/ncimp_data01.dbf
SQL> alter database rename file '/oradata/erpdb/dbfile/ncimp_data01.dbf' to '/ora_ssd/dbfile/ncimp_data01.dbf';
Database altered.
Rename the datafile at database level.
SQL> alter database rename file '/oradata/erpdb/dbfile/ncimp_data01.dbf' to '/ora_ssd/dbfile/ncimp_data01.dbf';
Database altered.
recover the particular datafile
SQL> alter database datafile '/ora_ssd/dbfile/ncimp_data01.dbf' online;
alter database datafile '/ora_ssd/dbfile/ncimp_data01.dbf' online
*
ERROR at line 1:
ORA-01113: file 11 needs media recovery
ORA-01110: data file 11: '/ora_ssd/dbfile/ncimp_data01.dbf'
SQL> recover datafile 11;
Media recovery complete.
make the datafile online;
SQL> alter database datafile '/ora_ssd/dbfile/ncimp_data01.dbf' online;
Database altered.
SQL> select file_name,tablespace_name,online_status from dba_data_files where tablespace_name='NCIMP';
FILE_NAME
--------------------------------------------------------------------------------
TABLESPACE_NAME ONLINE_
------------------------------ -------
/ora_ssd/dbfile/ncimp_data01.dbf
NCIMP ONLINE