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' 这种情况下应该怎么恢复被删除的数据文件啊?
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' 这种情况下应该怎么恢复被删除的数据文件啊?
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.