问题描述:

rac扩展表空间时,漏了+号,会默认创建在$ORACLE_HOME/dbs下面
例如alter tablespace USER add datafile ‘data’ size 30g;
这会导致当远端节点,需要写入数据时,会报无法找到数据文件的错误

解决办法:

第一种情况:

数据文件无数据,直接删除(不推荐)
确认数据文件里是否有数据

  1. select t.file_name,t1.owner,t1.segment_name,t1.segment_type,t1.tablespace_name from dba_data_files t,dba_extents t1 where t.file_id=t1.file_id and file_name='/u01/app/oracle/product/11.2.0/db_1/dbs/data'

然后删除

  1. alter tablespace test drop datafile '/u01/app/oracle/product/11.2.0/db_1/dbs/data';

最后物理删除rm

第二种情况:

迁移数据文件到asm

  1. SQL> select file_id,file_name from dba_data_files where file_name not like '+DATA%';
  2. FILE_ID FILE_NAME
  3. ---------- --------------------------------------------------------------------------------
  4. 6 +FRA/xiamen/datafile/test1215.260.999093473
  5. 8 /u01/app/oracle/product/11.2.0/db_1/dbs/data
  6. SQL> alter database datafile 8 offline;
  7. Database altered.
  8. RMAN> copy datafile 8 to '+data';
  9. Starting backup at 01-FEB-19
  10. using channel ORA_DISK_1
  11. channel ORA_DISK_1: starting datafile copy
  12. input datafile file number=00008 name=/u01/app/oracle/product/11.2.0/db_1/dbs/data
  13. output file name=+DATA/xiamen/datafile/test1215.289.999096869 tag=TAG20190201T145428 RECID=6 STAMP=999096869
  14. channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:03
  15. Finished backup at 01-FEB-19
  16. RMAN> switch datafile 8 to copy;
  17. datafile 8 switched to datafile copy "+DATA/xiamen/datafile/test1215.289.999096869"
  18. RMAN> recover datafile 8;
  19. Starting recover at 01-FEB-19
  20. using channel ORA_DISK_1
  21. starting media recovery
  22. media recovery complete, elapsed time: 00:00:01
  23. Finished recover at 01-FEB-19
  24. RMAN> sql 'alter database datafile 8 online';
  25. sql statement: alter database datafile 8 online

最后删除原有的dbs下面的数据文件