在RAC+ASM环境数据库中,偶尔会出现误将数据文件添加到本地而非ASM中,若数据文件添加在本地,可通过backup as copy在不停机(停库)的状态下将数据文件由本地移动到ASM中。
查看数据库中数据文件路径,找出为本地的,注意RAC时可能在节点1或节点2的本地目录
SQL> select * from v$dbfile where name not like '+DATA%';
125 /u01/app/oracle/product/11.2.0.4/dbhome_1/dbs/data5.DBF
BACKUP as copy方式将数据文件复制到ASM
RMAN> backup as copy datafile 125 format '+DATA/orcl/data5.DBF';
OFFLINE数据文件
SQL> alter database datafile 125 offline;
切换使用COPY
RMAN> switch datafile 125 to copy;
恢复及ONLINE数据文件
SQL> recover datafile 125;
SQL> alter database datafile 125 online;
检查最终状态
SQL> select file_id,file_name,tablespace_name,status,online_status from dba_data_files where file_id=125;