Oracle 不同故障的恢复方案(二)

2014-11-24 18:25:59 · 作者: · 浏览: 1
artup mount;


SQL>restore database until time "to_date('2010-12-29 23:19:00','YYYY-MM-DD HH24:MI:SS')";


SQL>recover database until time "to_date('2010-12-29 23:19:00','YYYY-MM-DD HH24:MI:SS')";


SQL>alter database open resetlogs;




6.2 基于 SCN:


SQL>startup mount;


SQL>restore database until scn 10000;


SQL>recover database until scn 10000;


SQL>alter database open resetlogs;



6.3 基于日志序列


SQL>startup mount;


SQL>restore database until SEQUENCE 100 thread 1; //100是日志序列


SQL>recover database until SEQUENCE 100 thread 1;


SQL>alter database open resetlogs;



日志序列查看命令:


SQL>select sequence from v$log;


resetlogs就会把sequence 置为1




7. catalog下完全恢复


SQL>startup nomount;


SQL>restore controlfile from autobackup;


SQL>alter database mount;


SQL>restore database;


SQL>recover database;


SQL>alter database open resetlogs;



示例:


oracle ora10g> rm *;


oracle ora10g> ls;


oracle ora10g> //数据文件,控制文件全部删除



oracle ora10g> rman target /; //因为controlfile 丢失,不能够连接到rman


oracle ora10g> sqlplus /nolog;


oracle ora10g> connect / as sysdba;


oracle ora10g> shutdown abort;


oracle ora10g> rman target /



rman> startup nomount;


rman> restore controlfile from autabackup;


rman> alter database mount;


rman> restore database;


rman> recover database; //online redolog 不存在



SQL>recover database until cancel; //redo log丢失,数据库在缺省的方式下,是不容许进行recover操作的,那么如何在这种情况下操作呢


SQL>create pfile from spfile;



vi /u01/product/10.20/dbs/initora10g.ora,在这个文件的最后一行添加


*.allow_resetlogs_corruption='TRUE'; //容许resetlog corruption



SQL>shutdown immediate;


SQL>startup pfile='/u01/product/10.20/dbs/initora10g.ora' mount;


SQL>alter database open resetlogs;