使用rman恢复控制文件

没有使用catalog的情况:
控制文件自动备份将控制文件和spfile放在一个文件里进行备份,默认位置为?/dbs(windows在?/database)。
这个位置可以使用如下语句进行更改:
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO 'd:\oracle\rman\ctl_%F.ctl';
恢复默认值:
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK CLEAR;
在进行控制文件或spfile恢复的时候需要注意,因为备份信息和rman的配置信息都存放在控制文件里,所以在控制文件丢失的情况下,
连接rman后,rman会从它的一个默认位置寻找控制文件和spfile的备份,如果存在的话就可以进行恢复,否则报错。恢复时使用
如下语句:
restore controlfile from autobackup;
restore spfile from autobackup;
如果备份文件没有放在默认位置,需要指定备份文件的位置,恢复时要加上from子句
restore controlfile from 'D:\oracle\product\10.2.0\db_1\database\C-1904898126-20061123-04';
restore spfile from 'D:\oracle\product\10.2.0\db_1\database\C-1904898126-20061123-04';
另外,数据库如果是以spfile启动的话,即使不小心被删了,也是不可以将它恢复到默认位置的,要使用to子句恢复到其他位置。
restore spfile to 'd:\oracle\rman\spfiletest.ora' from autobackup;
然后再copy到默认位置下进行恢复。

下面是个完整的恢复过程,删除所有的控制文件和数据文件以及spfile
D:\>rman target /
恢复管理器: Release 10.2.0.1.0 - Production on 星期四 11月 23 11:06:21 2006
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
连接到目标数据库: test (未装载)

RMAN> set dbid 1904898126
正在执行命令: SET DBID

RMAN> restore spfile from autobackup;
启动 restore 于 23-11月-06
使用目标数据库控制文件替代恢复目录
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=324 devtype=DISK
恢复区域目标: D:\oracle\product\10.2.0\flash_recovery_area
用于搜索的数据库名 (或数据库的唯一名称): TEST
通道 ORA_DISK_1: 在恢复区域中未找到自动备份
通道 ORA_DISK_1: 寻找以下日期的自动备份: 20061123
通道 ORA_DISK_1: 已找到的自动备份: c-1904898126-20061123-04
通道 ORA_DISK_1: 从自动备份复原 SPFILE 已完成
完成 restore 于 23-11月-06

RMAN> restore controlfile from autobackup;
启动 restore 于 23-11月-06
使用通道 ORA_DISK_1
恢复区域目标: D:\oracle\product\10.2.0\flash_recovery_area
用于搜索的数据库名 (或数据库的唯一名称): TEST
通道 ORA_DISK_1: 在恢复区域中未找到自动备份
通道 ORA_DISK_1: 寻找以下日期的自动备份: 20061123
通道 ORA_DISK_1: 已找到的自动备份: c-1904898126-20061123-04
通道 ORA_DISK_1: 从自动备份复原控制文件已完成
输出文件名=D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\CONTROL01.CTL
输出文件名=D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\CONTROL02.CTL
输出文件名=D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\CONTROL03.CTL
完成 restore 于 23-11月-06

RMAN> alter database mount;
数据库已装载
释放的通道: ORA_DISK_1

RMAN> restore database;
启动 restore 于 23-11月-06
启动 implicit crosscheck backup 于 23-11月-06
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=321 devtype=DISK
已交叉检验的 21 对象
完成 implicit crosscheck backup 于 23-11月-06
启动 implicit crosscheck copy 于 23-11月-06
使用通道 ORA_DISK_1
完成 implicit crosscheck copy 于 23-11月-06
搜索恢复区域中的所有文件
正在编制文件目录...
没有为文件编制目录
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件
正将数据文件00001恢复到D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\SYSTEM01.DBF
正将数据文件00002恢复到D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\UNDOTBS01.DBF
正将数据文件00003恢复到D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\SYSAUX01.DBF
正将数据文件00004恢复到D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\USERS01.DBF
正将数据文件00005恢复到D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\TEST01.DBF
通道 ORA_DISK_1: 正在读取备份段 D:\ORACLE\RMAN\FULL_22I340JH_1_1.DBF
通道 ORA_DISK_1: 已恢复备份段 1
段句柄 = D:\ORACLE\RMAN\FULL_22I340JH_1_1.DBF 标记 = TAG20061123T103321
通道 ORA_DISK_1: 恢复完成, 用时: 00:01:06
完成 restore 于 23-11月-06

RMAN> run{
2> set until time="to_date('2006-11-23 10:35:00','yyyy-mm-dd hh24:mi:ss')";
3> recover database;
4> }
正在执行命令: SET until clause
启动 recover 于 23-11月-06
使用通道 ORA_DISK_1
正在开始介质的恢复
存档日志线程 1 序列 2 已作为文件 D:\ORACLE\ARCHIVE\ARC00002_0607256829.001 存在于磁盘上
存档日志文件名 =D:\ORACLE\ARCHIVE\ARC00002_0607256829.001 线程 =1 序列 =2
存档日志文件名 =D:\ORACLE\ARCHIVE\ARC00003_0607256829.001 线程 =1 序列 =3
介质恢复完成, 用时: 00:00:03
完成 recover 于 23-11月-06

RMAN> alter database open resetlogs;
数据库已打开
参考:
http://www.itpub.net/viewthread.php?tid=673323&extra=&page=1

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

转载于:http://blog.itpub.net/22664653/viewspace-668730/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值