控制文件对于数据库来说至关重要,在数据库的恢复过程中,首先需要恢复初始化参数文件,然后就是控制文件的恢复。
RMAN采用CATALOG方式还是NOCATALOG方式,以及是否启用了AUTOBACKUP,决定了控制文件的恢复方法。
这篇文章介绍CATALOG方式下控制文件的恢复。
对于CATALOG方式,所有的备份信息在CATALOG库中都存在,因此丢失控制文件不会造成备份集的丢失。这种情况下恢复过程也最简单,直接RESTORE CONTROLFILE就可以了。
F:>rman target /@test1 catalog cat/cat@test2
恢复管理器: 版本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;
启动 restore 于 08-7月 -07
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=11 devtype=DISK
通道 ORA_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_DISK_1: 正在恢复控制文件
输出文件名=F:ORACLEORADATATEST1CONTROL01.CTL
通道 ORA_DISK_1: 已恢复备份段 1
段 handle=F:ORACLEBACKUPPIL9BQM_1_1 tag=TAG20070626T220822 params=NULL
通道 ORA_DISK_1: 恢复完成
正在复制控制文件
输出文件名=F:ORACLEORADATATEST1CONTROL01.CTL
输出文件名=F:ORACLEORADATATEST1CONTROL02.CTL
输出文件名=F:ORACLEORADATATEST1CONTROL03.CTL
完成 restore 于 08-7月 -07
RMAN> alter database mount;
数据库已加载
RMAN> recover database;
启动 recover 于 08-7月 -07
使用通道 ORA_DISK_1
正在开始介质的恢复
存档日志线程 1 序列 333 已作为文件 F:ORACLEORADATATEST1ARCHIVELOGARC00333.0
01 存在于磁盘上
存档日志线程 1 序列 334 已作为文件 F:ORACLEORADATATEST1REDO01.LOG 存在于磁盘上
存档日志线程 1 序列 335 已作为文件 F:ORACLEORADATATEST1REDO02.LOG 存在于磁盘上
存档日志线程 1 序列 336 已作为文件 F:ORACLEORADATATEST1REDO03.LOG 存在于磁盘上
IXDBA.NET社区论坛
存档日志文件名 =F:ORACLEORADATATEST1ARCHIVELOGARC00333.001 线程 =1 序列 =333
存档日志文件名 =F:ORACLEORADATATEST1REDO01.LOG 线程 =1 序列 =334
存档日志文件名 =F:ORACLEORADATATEST1REDO02.LOG 线程 =1 序列 =335
存档日志文件名 =F:ORACLEORADATATEST1REDO03.LOG 线程 =1 序列 =336
完成介质的恢复
完成 recover 于 08-7月 -07
RMAN> alter database open resetlogs;
数据库已打开
在恢复目录中注册的数据库的新实体化
正在启动全部恢复目录的 resync
完成全部 resync
RMAN> sql "alter tablespace temp add tempfile ''f:oracleoradata est1 emp01.dbf'' size 40m reuse";
sql 语句: alter tablespace temp add tempfile ''f:oracleoradata est1 emp01.dbf'' size 40m reuse
对于控制文件恢复的情况,数据库需要以RESETLOGS方式打开,打开后应该马上添加TEMPFILE,10g中Oracle会自动完成TEMPFILE的添加。