完全恢复

创建一个临时的spfile文件

在$ORACLE_HOME/dbs下执行
$echo db_name=ora > initora.ora

启动实例到nomount状态
RMAN> startup nomount;

指定dbid

RMAN> set dbid=1302124456;

回复spfile文件
RMAN> restore spfile to '/tmp/spfileora.ora' from autobackup;
创建initora.ora文件

SQL> create pfile from spfile='/tmp/spfileora.ora';

重新启动数据库到nomount状态

RMAN> shutdown immediate;

RMAN> startup nomount;

指定dbid

RMAN> set dbid=1302124456;

回复控制文件
RMAN> restore controlfile to '/tmp/control01.ctl' from autobackup;

如果不清楚dbid可以指定备份片文件

RMAN>restore controlfile  from ''/u01/app/oracle/product/102/dbs/c-1302124456-20090426-00';

改变数据库到mount状态

RMAN>alter database mount;

回复数据库

RMAN> restore database;

 

 


所有日志文件完整以noresetlogs方式打开数据库
dump控制文件

SQL> alter database backup controlfile to trace;

找出dump的控制文件

SELECT    d.VALUE
       || '/'
       || LOWER (RTRIM (i.INSTANCE, CHR (0)))
       || '_ora_'
       || p.spid
       || '.trc' trace_file_name
  FROM (SELECT p.spid
          FROM v$mystat m, v$session s, v$process p
         WHERE m.statistic# = 1 AND s.SID = m.SID AND p.addr = s.paddr) p,
       (SELECT t.INSTANCE
          FROM v$thread t, v$parameter v
         WHERE v.NAME = 'thread'
           AND (v.VALUE = 0 OR t.thread# = TO_NUMBER (v.VALUE))) i,
       (SELECT VALUE
          FROM v$parameter
         WHERE NAME = 'user_dump_dest') d
/

重新启动数据库到nomount状态

 RMAN> shutdown immediate;
  
    RMAN> startup nomount;

重建控制文件

SQL>
CREATE CONTROLFILE REUSE DATABASE "ORA" NORESETLOGS  ARCHIVELOG
    MAXLOGFILES 16
    MAXLOGMEMBERS 3
    MAXDATAFILES 100
    MAXINSTANCES 8
    MAXLOGHISTORY 292
LOGFILE
  GROUP 1 '+DISKGROUP1/ora/onlinelog/group_1.261.683896043'  SIZE 50M,
  GROUP 2 '+DISKGROUP1/ora/onlinelog/group_2.262.683896043'  SIZE 50M,
  GROUP 3 '+DISKGROUP1/ora/onlinelog/group_3.263.683896045'  SIZE 50M
-- STANDBY LOGFILE
DATAFILE
  '+DISKGROUP1/ora/datafile/system.256.683895993',
  '+DISKGROUP1/ora/datafile/undotbs1.258.683895993',
  '+DISKGROUP1/ora/datafile/sysaux.257.683895993',
  '+DISKGROUP1/ora/datafile/users.259.683895993'
CHARACTER SET ZHS16GBK
;
恢复数据库

SQL> recover database;

以noresetlogs方式打开数据库

SQL> alter database open;

 


最近备份以来有日志文件丢失以resetlogs方式打开数据库

恢复数据库

RMAN> recover database;

以resetlogs方式打开数据库
RMAN> alter database open  resetlogs;

 


 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/20844861/viewspace-591878/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/20844861/viewspace-591878/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值