SQL>create undo tablespace undo01 datafile '/oracle/app/oracle/oradata/orcl/undo01.dbf' size 20m;
 SQL>alter system set undo_tablespace=undo01;
 SQL>insert into temp_users values('a',1',sysdate);
 SQL>!rm -rf undo01.dbf
 SQL>shutdown abort;
SQL> ALTER DATABASE OPEN;
ALTER DATABASE OPEN
*
ERROR at line 1:
ORA-01157: cannot identify/lock data file 6 - see DBWR trace file
ORA-01110: data file 6: '/oracle/app/oracle/oradata/orcl/undo01.dbf' 这种情况下应该怎么恢复被删除的数据文件啊?

解决方案 »

  1.   

    1. 修改init.ora
    undo_management=MANUAL
    undo_retention=10800
    undo_tablespace=undo01
    rollback_segments='SYSTEM'
    2. 启动数据库
       SQL> startup pfile = '你修改的那个init.ora';
    3. alter database '/oracle/app/oracle/oradata/orcl/undo01.dbf' offline;
    4. alter database datafile '/oracle/app/oracle/oradata/orcl/undo01.dbf' offline drop;
    5. alter database open;
    6. create spfile from pfile;
    7. drop tablespace undo01;
    8. create undo tablespace undotbs1 datafile '/oracle/app/oracle/oradata/orcl/undo01.dbf' size 200M autoextend on;
    9. alter system set undo_management=auto scope=spfile;
    10. shutdown immediate.
    11. startup force.
      

  2.   

    _allow_resetlogs_corruption = true