---------- ---------- --- ---------------- 1 5 NO CURRENT 2 3 YES ACTIVE 3 4 NO ACTIVE
SQL> shutdown abort-->>这里是正常shutdown,所以会做检查点,当前的数据文件不需要恢复状态 数据库已经关闭。 已经卸载数据库。 ORACLE 例程已经关闭。
~~~~~~~~~~~~~~~~~~~~~~~~ 模拟删除UNDOTBS01.DBF 这时其他文件都是一致性的, 只需要UNDOTBS01.DBF恢复 ~~~~~~~~~~~~~~~~~~~~~~~~ 删除UNDOTBS01.DBF 还原一个UNDOTBS01.DBF的备份
SQL> startup ORACLE 例程已经启动。
Total System Global Area 101784276 bytes Fixed Size 453332 bytes Variable Size 75497472 bytes Database Buffers 25165824 bytes Redo Buffers 667648 bytes 数据库装载完毕。 ORA-01113: 文件 2 需要介质恢复 ORA-01110: 数据文件 2: 'C:\ORACLE\ORADATA\TESTDB\UNDOTBS01.DBF'
SQL> recover database ; 完成介质恢复。
SQL> alter database open;
数据库已更改。
SQL> select count(*),status from arch group by status;
COUNT(*) ST ---------- -- 98656 ok ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 8i如果有活动的事务,那么恢复回滚表空间时, 在前滚后后滚时要读自己回滚段里的数据, 而自己的数据文件已经损坏了,所以就不允许的, 所以在mount前将初始化参数 rollback_segments=(system) _corrupted_rollback_segments=(rbs0,rbs1,rbs2……) 而9I,测试中回撤表空间数据文件恢复跟常规表空间恢复一样 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
################################ # [9.4].shutdown abort(或者使用了别的老的数据文件), # 回滚数据文件丢失,没有备份,回滚段恢复 , # 数据库有活动事务 ################################ SQL> create table arch (status varchar(2)) tablespace users;
表已创建。
SQL> alter system switch logfile;
系统已更改。
SQL> insert into arch select 'ok' from dba_objects;
已创建6166行。
SQL> commit;
提交完成。
SQL> insert into arch select * from arch;
已创建6166行。
SQL> /
已创建12332行。
SQL> /
已创建24664行。
SQL> /
已创建49328行。
SQL> commit;
提交完成。
SQL> alter system switch logfile;
系统已更改。
SQL> insert into arch select 'no' from dba_objects;
已创建6166行。
SQL> shutdown abort
上一篇:怎样将冷备份移植到另一台Solaris机器上
下一篇:rman备份,未用catalog,控制文件丢失的解决(2)
|