RMAN备份恢复之控制文件的恢复(三)

控制文件对于数据库来说至关重要,在数据库的恢复过程中,首先需要恢复初始化参数文件,然后就是控制文件的恢复。

RMAN采用CATALOG方式还是NOCATALOG方式,以及是否启用了AUTOBACKUP,决定了控制文件的恢复方法。

RMAN备份恢复之控制文件的恢复(一):http://yangtingkun.itpub.net/post/468/305766

RMAN备份恢复之控制文件的恢复(二):http://yangtingkun.itpub.net/post/468/312822

这篇文章介绍NOCATALOG方式下且没有自动备份的情况下,利用普通备份来恢复控制文件。


如果没有控制文件的自动备份,那么恢复控制文件就要麻烦得多。不过如果可以确定控制文件的确切备份集,那么控制文件也是可以恢复的。

如果无法确定控制文件所在地备份集的话,可以根据备份集的生成时间,从后向前依次尝试。

SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> host move f:oracleoradata est1control01.ctl f:oracleoradata est1control01.bak

SQL> host move f:oracleoradata est1control02.ctl f:oracleoradata est1control02.bak

SQL> host move f:oracleoradata est1control03.ctl f:oracleoradata est1control03.bak

关闭数据库并删除控制文件后,下面尝试通过RMAN恢复控制文件:

F:>rman target /@test1

恢复管理器: 版本9.2.0.4.0 - Production

Copyright (c) 1995, 2002, Oracle Corporation. All rights reserved.

已连接到目标数据库 (未启动)

RMAN> startup nomount

Oracle 例程已启动

系统全局区域总计 110173900 字节

Fixed Size 454348 字节
Variable Size 83886080 字节
Database Buffers 25165824 字节
Redo Buffers 667648 字节

RMAN> restore controlfile from 'F:oracleackupUIO2TN0_1_1';

启动 restore 于 29-7月 -07

正在使用目标数据库控制文件替代恢复目录
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=11 devtype=DISK
通道 ORA_DISK_1: 正在恢复控制文件
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of restore command at 07/29/2007 22:36:13
ORA-19615: 有些文件在备份集中未找到
ORA-19613: 在备份集中未找到数据文件 0

RMAN> restore controlfile from 'F:oracleackupTINM3UD_1_1';

启动 restore 于 29-7月 -07

使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在恢复控制文件
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of restore command at 07/29/2007 22:36:30
ORA-19626: 备份集类型为archived log - 无法在此对话中处理

RMAN> restore controlfile from 'F:oracleoracle920databaseSINJCDC_1_1';

启动 restore 于 29-7月 -07

使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在恢复控制文件
通道 ORA_DISK_1: 恢复完成
正在复制控制文件
输出文件名=F:ORACLEORADATATEST1CONTROL01.CTL
输出文件名=F:ORACLEORADATATEST1CONTROL02.CTL
输出文件名=F:ORACLEORADATATEST1CONTROL03.CTL
完成 restore 于 29-7月 -07

找到正确的备份集并恢复控制文件后,就可以尝试恢复数据库并打开了。

RMAN> alter database mount;

数据库已加载

RMAN> recover database;

启动 recover 于 29-7月 -07
使用通道 ORA_DISK_1

正在开始介质的恢复

存档日志线程 1 序列 2 已作为文件 F:ORACLEORADATATEST1REDO01.LOG 存在于磁盘上

存档日志线程 1 序列 3 已作为文件 F:ORACLEORADATATEST1REDO02.LOG 存在于磁盘上

存档日志线程 1 序列 4 已作为文件 F:ORACLEORADATATEST1REDO03.LOG 存在于磁盘上

无法找到存档日志
存档日志线程 =1 序列=0
Oracle 错误:
ORA-01547: 警告: RECOVER 成功但 OPEN RESETLOGS 将出现如下错误
ORA-01152: 文件 1 没有从完备的旧备份中恢复
ORA-01110: 数据文件 1: 'F:ORACLEORADATATEST1SYSTEM01.DBF'

RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of recover command at 07/29/2007 22:40:20
RMAN-06054: media recovery requesting unknown log: thread 1 scn 58954797

RMAN> catalog archivelog 'F:oracleoradata est1ARCHIVELOGARC00001.001';

已编目的存档日志
存档日志文件名 =F:ORACLEORADATATEST1ARCHIVELOGARC00001.001 记录 ID=42 时间
戳 =629246535

RMAN> recover database;

启动 recover 于 29-7月 -07
使用通道 ORA_DISK_1

正在开始介质的恢复

存档日志线程 1 序列 1 已作为文件 F:ORACLEORADATATEST1ARCHIVELOGARC00001.001
存在于磁盘上
存档日志线程 1 序列 2 已作为文件 F:ORACLEORADATATEST1REDO01.LOG 存在于磁盘上

存档日志线程 1 序列 3 已作为文件 F:ORACLEORADATATEST1REDO02.LOG 存在于磁盘上

存档日志线程 1 序列 4 已作为文件 F:ORACLEORADATATEST1REDO03.LOG 存在于磁盘上

存档日志文件名 =F:ORACLEORADATATEST1ARCHIVELOGARC00001.001 线程 =1 序列 =0
存档日志文件名 =F:ORACLEORADATATEST1REDO01.LOG 线程 =1 序列 =2
存档日志文件名 =F:ORACLEORADATATEST1REDO02.LOG 线程 =1 序列 =3
存档日志文件名 =F:ORACLEORADATATEST1REDO03.LOG 线程 =1 序列 =4
完成介质的恢复
完成 recover 于 29-7月 -07

RMAN> alter database open resetlogs;

数据库已打开

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

转载于:http://blog.itpub.net/4227/viewspace-69368/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值