本文为模拟测试,主要步骤如下:
1.对测试数据库进行rman全备(nocatalog 模式)
2.删除oradataorcl目录下所有文件
3.使用rman进行恢复。
详细步骤如下:
1.对测试数据库进行rman全备
C:Documents and SettingsxGss2000>rman nocatalog target /
恢复管理器: Release 10.2.0.1.0 - Production on 星期日 8月 14 00:06:16 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到目标数据库: ORCL (DBID=1286878859)
使用目标数据库控制文件替代恢复目录
RMAN> backup database;
启动 backup 于 14-8月 -11
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=158 devtype=DISK
通道 ORA_DISK_1: 启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
输入数据文件 fno=00001 name=D:ORACLEPRODUCT10.2.0ORADATAORCLSYSTEM01.DBF
输入数据文件 fno=00003 name=D:ORACLEPRODUCT10.2.0ORADATAORCLSYSAUX01.DBF
输入数据文件 fno=00005 name=D:ORACLEPRODUCT10.2.0ORADATAORCLEXAMPLE01.DBF
输入数据文件 fno=00002 name=D:ORACLEPRODUCT10.2.0ORADATAORCLUNDOTBS01.DBF
输入数据文件 fno=00004 name=D:ORACLEPRODUCT10.2.0ORADATAORCLUSERS01.DBF
通道 ORA_DISK_1: 正在启动段 1 于 14-8月 -11
通道 ORA_DISK_1: 已完成段 1 于 14-8月 -11
段句柄=D:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREAORCLBACKUPSET2011_08_14O1_MF_NNNDF_TAG20110814T000703_74F898TO_.BKP 标记=TAG20110814T000703 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:01:35
通道 ORA_DISK_1: 启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
备份集中包括当前控制文件
在备份集中包含当前的 SPFILE
通道 ORA_DISK_1: 正在启动段 1 于 14-8月 -11
通道 ORA_DISK_1: 已完成段 1 于 14-8月 -11
段句柄=D:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREAORCLBACKUPSET2011_08_14O1_MF_NCSNF_TAG20110814T000703_74F8DB55_.BKP 标记=TAG20110814T000703 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:03
完成 backup 于 14-8月 -11
2.删除oradataorcl目录下所有文件
删除前 需要停止oracle,否则删除不掉文件。
C:Documents and SettingsxGss2000>sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on 星期六 8月 13 23:27:24 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
现在 删除 orcl目录下所有文件。
3.使用rman进行恢复。
由于control文件丢失,只能将数据库启动到nomount状态
SQL> startup nomount;
ORACLE 例程已经启动。
Total System Global Area 171966464 bytes
Fixed Size 1247924 bytes
Variable Size 79693132 bytes
Database Buffers 88080384 bytes
Redo Buffers 2945024 bytes
现在,需用从rman的备份中恢复control文件。
C:Documents and SettingsxGss2000> rman target /
恢复管理器: Release 10.2.0.1.0 - Production on 星期日 8月 14 00:13:47 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到目标数据库: orcl (未装载)
RMAN> restore controlfile from 'D:oracleproduct10.2.0flash_recovery_areaORCLBACKUPSET2011_08_14O1_MF_NNNDF_TAG20110814T000703_74F898TO_.BKP';
启动 restore 于 14-8月 -11
使用目标数据库控制文件替代恢复目录
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=156 devtype=DISK
通道 ORA_DISK_1: 正在复原控制文件
MAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: restore 命令 (在 08/14/2011 00:13:55 上) 失败
ORA-19697: 在备份集中找不到备用控制文件
RMAN> restore controlfile from 'D:oracleproduct10.2.0flash_recovery_areaORCLBACKUPSET2011_08_14O1_MF_NCSNF_TAG20110814T000703_74F8DB55_.BKP';
启动 restore 于 14-8月 -11
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在复原控制文件
通道 ORA_DISK_1: 恢复完成, 用时: 00:00:05
输出文件名=D:ORACLEPRODUCT10.2.0ORADATAORCLCONTROL01.CTL
输出文件名=D:ORACLEPRODUCT10.2.0ORADATAORCLCONTROL02.CTL
输出文件名=D:ORACLEPRODUCT10.2.0ORADATAORCLCONTROL03.CTL
完成 restore 于 14-8月 -11
由于control文件已经恢复,我们现在可以将数据库启动到mount状态 进行下一步的恢复了。
RMAN> alter database mount;
数据库已装载
释放的通道: ORA_DISK_1
恢复数据库,命令很简单。
RMAN> restore database;
启动 restore 于 14-8月 -11
启动 implicit crosscheck backup 于 14-8月 -11
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=155 devtype=DISK
已交叉检验的 3 对象
完成 implicit crosscheck backup 于 14-8月 -11
启动 implicit crosscheck copy 于 14-8月 -11
使用通道 ORA_DISK_1
完成 implicit crosscheck copy 于 14-8月 -11
搜索恢复区域中的所有文件
正在编制文件目录...
目录编制完毕
已列入目录的文件的列表
=======================
文件名: D:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREAORCLBACKUPSET2011_08_14O1_MF_NCSNF_TAG20110814T000703_74F8DB55_.BKP
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件
正将数据文件00001恢复到D:ORACLEPRODUCT10.2.0ORADATAORCLSYSTEM01.DBF
正将数据文件00002恢复到D:ORACLEPRODUCT10.2.0ORADATAORCLUNDOTBS01.DBF
正将数据文件00003恢复到D:ORACLEPRODUCT10.2.0ORADATAORCLSYSAUX01.DBF
正将数据文件00004恢复到D:ORACLEPRODUCT10.2.0ORADATAORCLUSERS01.DBF
正将数据文件00005恢复到D:ORACLEPRODUCT10.2.0ORADATAORCLEXAMPLE01.DBF
通道 ORA_DISK_1: 正在读取备份段 D:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREAORCLBACKUPSET2011_08_14O1_MF_NNNDF_TAG20110814T000703_74F898TO_.BKP
通道 ORA_DISK_1: 已恢复备份段 1
段句柄 = D:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREAORCLBACKUPSET2011_08_14O1_MF_NNNDF_TAG20110814T000703_74F898TO_.BKP 标记 = TAG20110814T000703
通道 ORA_DISK_1: 恢复完成, 用时: 00:01:05
完成 restore 于 14-8月 -11
recover database;
RMAN> recover database;
启动 recover 于 14-8月 -11
使用通道 ORA_DISK_1
正在开始介质的恢复
无法找到存档日志
存档日志线程 =1 序列=1
MAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: recover 命令 (在 08/14/2011 00:20:41 上) 失败
RMAN-06054: 介质恢复正请求未知的日志: 线程 1 seq 1 lowscn 581729
由于log丢失,只能通过restlogs 模式打开数据库了
RMAN> alter database open resetlogs;
数据库已打开
自此,数据库恢复完毕