oracle. 还原pfile,RMAN还原相关概念、spfile、controlfile恢复

1、还原(restore),是指访问先前生成的备份集,从中得到一个或多个对象,然后在磁盘上的某个位置还原这些对象。

恢复(recovery),是一个使数据库与给定时间点相一致以保证能够打开这个数据库的实际进程,该进程通常是通过应用重做(包括联机重做日志和归档重做日志)来完成的。

2、要打开一个Oracle数据库,要求这个数据库与给定的时间状态一致。

3、Oracle通过检查每个数据文件头中的当前SCN和控制文件中的当前SCN是否一致来确定数据库是否处于一致状态。

4、如果发现数据库是不一致的,Oracle就需要判断是否能够基于联机重做日志来恢复这个数据库,或者是否需要归档重做日志来完成恢复。如果能够使用联机重做日志来执行恢复操作,它就会执行灾难恢复(或者在RAC环境中执行实例恢复操作),如果不能,它就会停止启动进程,同时要求执行介质恢复操作。

5、使用RMAN(不使用FRA)从自动备份中恢复spfile

restore spfile from autobackup

默认情况下,Oracle会查找一个在过去10天内创建的控制文件备份集,如果没有找到在指定时间周期内创建的控制文件备份集,就会产生一个错误。

使用restore命令的maxseq和maxdays参数可以修改RMAN向后查找控制文件自动备份的时间周期。

恢复示例1

set oracle_sid=recover

rman target sys/robert

set DBID = 2359725638;

startup nomount;

restore spfile from autobackup;

shutdown immediate;

恢复示例2(指定路径)

set oracle_sid=recover

rman target sys/robert

set DBID = 2359725638;

startup nomount;

run

{

set controlfile autobackup format for device type disk to 'C:\oracle\backup\%F';

allocate channel c1 device type disk;

restore spfile from autobackup;

}

shutdown immediate;

恢复示例3(使用maxseq和maxdays)

set oracle_sid=recover

rman target sys/robert

set DBID = 2359725638;

startup nomount;

run

{

set controlfile autobackup format for device type disk to 'C:\oracle\backup\%F';

allocate channel c1 device type disk;

restore spfile from autobackup maxseq 200 maxdays 100;

}

shutdown immediate;

2、使用RMAN和FRA从自动备份中恢复spfile

使用FRA情况下不需要设置DBID,也不用分配信道

set oracle_sid=recover

rman target sys/robert

startup nomount;

restore spfile from autobackup;

shutdown immediate;

3、从特定备份集中恢复spfile

set oracle_sid=recover

rman target sys/robert

set DBID = 2359725638;

startup nomount;

run

{

allocate channel c1 device type disk;

restore spfile from 'd:\backup\recover\C-2359725638-20131118-00';

}

shutdown immediate;

4、使用恢复目录恢复spfile

set oracle_sid=recover

rman target sys/robert catalog

startup nomount;

restore spfile from autobackup;

shutdown immediate;

5、还原到pfile

restore spfile to pfile 'd:\backup\test.ora';

6、还原控制文件(和恢复spfile差别不大)

恢复示例1

set oracle_sid=recover

rman target sys/robert

set DBID = 2359725638;

startup nomount;

restore controlfile from autobackup;

shutdown immediate;

恢复示例2(恢复较早的控制文件备份,除了和恢复spfile一样使用maxseq和maxdays以外还可以用until time)

restore controlfile from autobackup until time "to_date('12/09/2005 13:00:00','MM/DD/YYYY HH24:MI:SS')";

可以使用list backup of controlfile;

7、恢复控制文件后打开数据库

恢复示例1(假设在noarchivelog模式下运行)

set oracle_sid=recover

rman target sys/robert

set DBID = 2359725638;

startup nomount;

restore database noredo;

alter database open resetlogs;

恢复示例2(archivelog模式下运行)

set oracle_sid=recover

rman target sys/robert

set DBID = 2359725638;

startup nomount;

restore database;

alter database open resetlogs;

8、使用catalog命令在控制文件中注册恢复相关文件

使用recovery area和db_recovery_file_dest关键字,使RMAN对整个FRA编写目录。

catalog recovery area;

如果没有使用FRA,则使用start with语法。

catalog start with 'c:\oracle\backups\testoem';

9、将备份还原到其他位置(set newname for datafile和switch命令)

startup nomount

restore controlfile from autobackup;

alter database mount;

run

{

set newname for datafile '' to '';

restore database;

recover database noredo;

switch datafile all;

alter database open resetlogs;

}

10、不管是否运行在archivelog模式下,spfile和controlfile的恢复操作都是相同的。

11、故障点恢复(完全恢复)需要联机重做日志是完整的,需要一个完整的controlfile。

12、联机表空间恢复

sql 'alter tablespace users offline';

restore tablespace users;

recover tablespace users ;

sql 'alter tablespace users online';

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

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值