节点2,查看数据文件状态,信息SQL> set lines 200SQL> col file_name for a50SQL> col tablespace_name for a10SQL> select file_name,file_id,ONLINE_STATUS,tablespace_name from dba_data_files;ERROR:ORA-01157: cannot identify/lock data file 11 - see DBWR trace fileORA-01110: data file 11: "/oracle/app/oracle/product/11.2.0/dbs/firsoul01.dbf "
将本地数据文件OFFLINE,或可以将整个表空间OFFLINESQL> alter database datafile 11 offline;Database altered.
通过ASMCMD CP命令拷贝数据文件ASMCMD> cp /oracle/app/oracle/product/11.2.0/dbs/firsoul01.dbf .copying /oracle/app/oracle/product/11.2.0/dbs/firsoul01.dbf -> +data/racdb/datafile/firsoul01.dbfASMCMD> ls -lrtWARNING:option "r" is deprecated for "ls"please use "reverse"Type Redund Striped Time Sys Name N firsoul01.dbf => +DATA/ASM/DATAFILE/firsoul01.dbf.260.882071123DATAFILE UNPROT COARSE JUN 11 09:00:00 Y SYSAUX.288.859438589DATAFILE UNPROT COARSE JUN 11 09:00:00 Y SYSTEM.293.859438573DATAFILE UNPROT COARSE JUN 11 09:00:00 Y TEST1.261.859451689DATAFILE UNPROT COARSE JUN 11 09:00:00 Y UNDOTBS1.287.859438601DATAFILE UNPROT COARSE JUN 11 09:00:00 Y UNDOTBS2.285.859438615DATAFILE UNPROT COARSE JUN 11 09:00:00 Y USERS.278.859438619
rename数据文件,并查看信息SQL> alter database rename file "/oracle/app/oracle/product/11.2.0/dbs/firsoul01.dbf" to "+data/racdb/datafile/firsoul01.dbf"; Database altered. SQL> select file_name,file_id,ONLINE_STATUS,tablespace_name from dba_data_files 2 ;FILE_NAME FILE_ID ONLINE_ TABLESPACE_NAME------------------------------------------------------- ---------- ------- ------------------------------+DATA/racdb/datafile/system.293.859438573 1 SYSTEM SYSTEM+DATA/racdb/datafile/sysaux.288.859438589 2 ONLINE SYSAUX……………………+DATA/racdb/datafile/firsoul01.dbf 11 RECOVER FIRSOUL 我们可以看到,数据文件已移植到ASM中,但需要recover。SQL> alter database datafile 11 online;alter database datafile 11 online*ERROR at line 1:ORA-01113: file 11 needs media recoveryORA-01110: data file 11: "+DATA/racdb/datafile/firsoul01.dbf"
recover数据文件,再次将数据文件onlineSQL> recover datafile 11;Media recovery complete.SQL> alter database datafile 11 online;Database altered.SQL> set lines 150SQL> col file_name for a55SQL> select file_name,file_id,ONLINE_STATUS,tablespace_name from dba_data_files;FILE_NAME FILE_ID ONLINE_ TABLESPACE_NAME------------------------------------------------------- ---------- ------- ------------------------------+DATA/racdb/datafile/system.293.859438573 1 SYSTEM SYSTEM+DATA/racdb/datafile/sysaux.288.859438589 2 ONLINE SYSAUX………… +DATA/racdb/datafile/firsoul01.dbf 11 ONLINE FIRSOUL