rman恢复基础操作

《三思笔记》--读书笔记


通过rman执行数据库恢复可以分成三个部分解读:

(1),将数据库置于正确的状态:mount/open。一般整库恢复的话需要在mount状态操作,表空间或数据文件级的恢复也可以在open状态下操作。

(2),执行完全或不完全恢复。完全恢复就是应用所有数据库生成的重做日志,不完全恢复自然就是只应用部分重做日志,执行不完全恢复主要是通过执行restore/recover命令时,附加until子句来限制恢复到的时间点。

(3),打开数据库。如果恢复时执行的是不完全恢复,打开时必须指定resetlogs。


一、对数据库进行完全介质恢复

如果当前数据库只剩下控制文件和spfile,其他数据文件因为某些原因导致全部丢失,不过幸运的是之前创建过整库的备份,并且执行备份操作之后,所有的归档文件和重做日志文件都还在,这种情况下就可以将数据库恢复到崩溃前那一刻,这种恢复方式叫做完全介质恢复。

三个步骤:

(1),启动数据库到加载状态

startup mount;

(2),执行恢复操作(恢复分为2步,有先有后)

restore database;

recover database delete archivelogs skip tablespace temp;

执行recover命令时后面的delete archivelogs表示rman将在完成恢复后自动删除那些在恢复过程中产生的归档日志文件,他只删除那些由他产生的归档文件,至于执行restore/recover之前的归档不会动。

skip tablespace temp指定跳过表空间,如临时表空间

(3),打开数据库

alter database open;

上述操作是数据库在归档模式下进行的,如果是非归档模式的话,执行restore命令前,首先需要恢复之前备份的控制文件,并且在执行了restore和recover命令后,必须以open resetlogs方式打开数据库

rman备份的时候并不会备份临时表空间的数据文件,rman在执行整库恢复时,会自动创建临时表空间的数据文件

二、恢复表空间和数据文件

恢复表空间

在恢复之前,如果表空间未处于offline状态,需要使用alter tablespace ... offline置于脱机

sql 'alter tablespace cindy offline immediate ';

restore tablespace cindy;

recover tablespace cindy;

sql 'alter tablespace cindy online ';

如果有多个表空间,相互之间用逗号隔开,不过将表空间置为offline/online的时候,脚本不能合并

恢复数据文件

操作步骤同恢复表空间的命令,只是置于offline的命令不一样

alter database datafile cindy offline

如果由于磁盘损坏导致数据文件无法访问,那么恢复时数据文件可能无法再恢复到原路径,必须在执行restore命令之前,给数据文件指定新的路径,方式如下

run{

set newname for datafile 3 to 'f:\oracle\cindy.dbf';

restore datafile 3;

swich datafile 3;

recover datafile 3;

}


(三)恢复归档日志文件

恢复归档文件也是使用restore命令,如果只是为了在恢复数据文件后应用归档文件,那并不需要手动对归档文件进行恢复,rman会在recover的时候自动对适当的归档进行恢复

,可以精确指定恢复哪些备份的归档文件,例如,恢复归档序列号为20到30之间的归档文件

restore archivelog sequence between 20 and 30;

默认情况下,rman将归档文件恢复到初始化参数log_archive_dest_1的路径下

可以手动设置其他路径,同一个run块中允许同时出现多个set archivelog命令

run{

set archivelog destination to 'F:\ORACLE\BACKUP\ARCLOG1';

restore archivelog sequence between 35 and 40;

set archivelog destination to 'F:\ORACLE\BACKUP\ARCLOG2';

restore archivelog sequence between 41 and 50;

set archivelog destination to 'F:\ORACLE\BACKUP\ARCLOG3';

restore archivelog sequence between 51 and 60;

}

 

恢复控制文件和spfile初始化参数文件
1,从自动备份中恢复

由于没了控制文件,目标数据库只能启动到nomount状态,不过在启动数据库之前,必须首先通过set命令设置dbid

set dbid = 4252637343;

启动数据库到nomount状态

startup nomount;

从自动备份中恢复控制文件

恢复到默认路径下

restore controlfile from autobackup;

恢复到指定路径下

restore controlfile to 'f:\oracle\control01.ctl' from autobackup;

这条命令也可以在数据库open时执行,只要被恢复的路径不是当前数据库控制文件所在路径就行

2,从备份集中恢复

从10g开始,restore直接提供了from backup子句,这样就可以直接从指定备份片段中恢复控制文件(只要确保指定的备份集中包含控制文件),操作方式与之前的示例非常类似

在启动数据库之前需要先设置DBID

set dbid = 4252637343;

启动数据库到nomount状态

startup nomount;

指定restore命令时指定控制文件所在备份片段的详细路径

restore controlfile from 'f:\oracle\backup\c-4252637343-20090413-00';

这里也可以指定恢复的路径

恢复服务器端初始化参数文件

这个恢复和控制文件的恢复类似

在启动数据库之前需要先设置DBID

set dbid = 4252637343;

启动数据库到nomount状态

startup nomount;(sqlplus中无法启动到nomount,但是rman中可以)

restore spfile from autobackup;

或者指定路径

restore spfile to '/tmp/spfiletemp.ora' from autobackup;

或者从指定备份文件路径恢复

restore spfile to '/tmp/spfiletemp.ora' from ‘/u02/data/backup/c-4252637343-20090413-00'; ;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值