描述:
数据库关闭状态,需要恢复System datafiles,Undo segment datafiles,Whole database
在这里,我们给scott用户创建一个表,然后破坏undo,恢复后,看看表中的数据还在不在
1) SQL> conn sys/oracle as sysdba
SQL> startup
2) SQL> create table scott.com100(n1 number);
SQL> insert into scott.com100 values(1);
SQL> commit;
SQL> alter system switch logfile;
SQL> insert into scott.com100 values(2);
SQL> shutdown abort
3) 此时,把undo破坏
在‘服务‘中,将OracleServiceORA停止
删除(OS)undo文件(UNDO01.DBF)
4) 在‘服务‘中,将OracleServiceORA启动
SQL> shutdown immediate
5) conn / as sysdba
startup
ORACLE 例程已经启动。
Total System Global Area 135338868 bytes
Fixed Size 453492 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
数据库装载完毕。
ORA-01157: 无法标识/锁定数据文件 10 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 10: 'D:\ORACLE\ORADATA\ORA\UNDO01.DBF'
(查看警告日志:
Errors in file D:\oracle\admin\ora\bdump\oraDBW0.TRC:
ORA-01157: cannot identify/lock data file 10 - see DBWR trace file
ORA-01110: data file 10: 'D:\ORACLE\ORADATA\ORA\UNDO01.DBF'
ORA-27041: unable to open file
OSD-04002: 无法打开文件
O/S-Error: (OS 2) 系统找不到指定的文件。)
6) 恢复:
SQL> SHUTDOWN ABORT
将备份的undo01.dbf copy回去
SQL> STARTUP MOUNT
SQL> recover database(或者recover datafile 9//或者recover'D:\ORACLE\ORADATA\ORA\UNDO01.DBF')
SQL> alter database open;
SQL> select * from scott.com1;(UNDO表空间用来处理事务,比如由用户发起的SQL查询等等操作均需要通过UNDO表空间起作用)
N1
----------
1
阅读(2013) | 评论(0) | 转发(0) |