xGss2000 发表于 2011-12-22 08:54

[原创]只有rman全备,丢失conrol,redo,数据文件的恢复

本文为模拟测试,主要步骤如下:<br><br><b>1.对测试数据库进行rman全备(nocatalog 模式)<br>2.删除oradata\orcl目录下所有文件<br>3.使用rman进行恢复。<br></b><br>详细步骤如下:<br><br><b>1.对测试数据库进行rman全备</b><br><div><div id="codeText" class="codeText"><ol style="margin:0 1px 0 0;padding:5px 0;" start="1" class="dp-css"><li>C:\Documents and Settings\xGss2000&gt;rman nocatalog target /</li><li>
</li><li>
恢复管理器: Release 10.2.0.1.0 - Production on 星期日 8月 14 00:06:16 2011</li><li>
</li><li>
Copyright (c) 1982, 2005, Oracle.All rights reserved.</li><li>
</li><li>
连接到目标数据库: ORCL (DBID=1286878859)</li><li>
使用目标数据库控制文件替代恢复目录</li><li>
</li><li>
RMAN&gt; backup database;</li><li>
</li><li>
启动 backup 于 14-8月 -11</li><li>
分配的通道: ORA_DISK_1</li><li>
通道 ORA_DISK_1: sid=158 devtype=DISK</li><li>
通道 ORA_DISK_1: 启动全部数据文件备份集</li><li>
通道 ORA_DISK_1: 正在指定备份集中的数据文件</li><li>
输入数据文件 fno=00001 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF</li><li>
输入数据文件 fno=00003 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF</li><li>
输入数据文件 fno=00005 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\EXAMPLE01.DBF</li><li>
输入数据文件 fno=00002 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF</li><li>
输入数据文件 fno=00004 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF</li><li>
通道 ORA_DISK_1: 正在启动段 1 于 14-8月 -11</li><li>
通道 ORA_DISK_1: 已完成段 1 于 14-8月 -11</li><li>
段句柄=D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2011_08_14\O1_MF_NNNDF_TAG20110814T000703_74F898TO_.BKP 标记=TAG20110814T000703 注释=NONE</li><li>
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:01:35</li><li>
通道 ORA_DISK_1: 启动全部数据文件备份集</li><li>
通道 ORA_DISK_1: 正在指定备份集中的数据文件</li><li>
备份集中包括当前控制文件</li><li>
在备份集中包含当前的 SPFILE</li><li>
通道 ORA_DISK_1: 正在启动段 1 于 14-8月 -11</li><li>
通道 ORA_DISK_1: 已完成段 1 于 14-8月 -11</li><li>
段句柄=D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2011_08_14\O1_MF_NCSNF_TAG20110814T000703_74F8DB55_.BKP 标记=TAG20110814T000703 注释=NONE</li><li>
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:03</li><li>
完成 backup 于 14-8月 -11</li></ol></div></div><div><div><br></div></div><b>2.删除oradata\orcl目录下所有文件</b><br><br>删除前 需要停止oracle,否则删除不掉文件。<br><br><div><div id="codeText" class="codeText"><ol style="margin:0 1px 0 0;padding:5px 0;" start="1" class="dp-css"><li>C:\Documents and Settings\xGss2000&gt;sqlplus / as sysdba</li><li>
</li><li>
SQL*Plus: Release 10.2.0.1.0 - Production on 星期六 8月 13 23:27:24 2011</li><li>
</li><li>
Copyright (c) 1982, 2005, Oracle.All rights reserved.</li><li>
</li><li>
</li><li>
连接到: </li><li>
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production</li><li>
With the Partitioning, OLAP and Data Mining options</li><li>
</li><li>
SQL&gt; shutdown immediate;</li><li>
数据库已经关闭。</li><li>
已经卸载数据库。</li><li>
ORACLE 例程已经关闭。</li></ol></div></div><div><div><br>现在 删除 orcl目录下所有文件。<br><br></div></div><b>3.使用rman进行恢复。</b><br><br><font class="Apple-style-span" color="#F00000">由于control文件丢失,只能将数据库启动到nomount状态</font><br><br><div><div id="codeText" class="codeText"><ol style="margin:0 1px 0 0;padding:5px 0;" start="1" class="dp-css"><li>SQL&gt; startup nomount;</li><li>
ORACLE 例程已经启动。</li><li>
</li><li>
Total System Global Area171966464 bytes</li><li>
Fixed Size                  1247924 bytes</li><li>
Variable Size            79693132 bytes</li><li>
Database Buffers         88080384 bytes</li><li>
Redo Buffers                2945024 bytes</li></ol></div></div><div><br><font class="Apple-style-span" color="#F00000">现在,需用从rman的备份中恢复control文件。</font><br><br><div><div id="codeText" class="codeText"><ol style="margin:0 1px 0 0;padding:5px 0;" start="1" class="dp-css"><li>C:\Documents and Settings\xGss2000&gt; rman target /</li><li>
</li><li>
恢复管理器: Release 10.2.0.1.0 - Production on 星期日 8月 14 00:13:47 2011</li><li>
</li><li>
Copyright (c) 1982, 2005, Oracle.All rights reserved.</li><li>
</li><li>
连接到目标数据库: orcl (未装载)</li><li>
</li><li>
RMAN&gt; restore controlfile from 'D:\oracle\product\10.2.0\flash_recovery_area\ORCL\BACKUPSET\2011_08_14\O1_MF_NNNDF_TAG20110814T000703_74F898TO_.BKP';</li><li>
</li><li>
启动 restore 于 14-8月 -11</li><li>
使用目标数据库控制文件替代恢复目录</li><li>
分配的通道: ORA_DISK_1</li><li>
通道 ORA_DISK_1: sid=156 devtype=DISK</li><li>
</li><li>
通道 ORA_DISK_1: 正在复原控制文件</li><li>
MAN-00571: ===========================================================</li><li>
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============</li><li>
RMAN-00571: ===========================================================</li><li>
RMAN-03002: restore 命令 (在 08/14/2011 00:13:55 上) 失败</li><li>
ORA-19697: 在备份集中找不到备用控制文件</li><li>
</li><li>
RMAN&gt; restore controlfile from 'D:\oracle\product\10.2.0\flash_recovery_area\ORCL\BACKUPSET\2011_08_14\O1_MF_NCSNF_TAG20110814T000703_74F8DB55_.BKP';</li><li>
</li><li>
启动 restore 于 14-8月 -11</li><li>
使用通道 ORA_DISK_1</li><li>
</li><li>
通道 ORA_DISK_1: 正在复原控制文件</li><li>
通道 ORA_DISK_1: 恢复完成, 用时: 00:00:05</li><li>
输出文件名=D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\CONTROL01.CTL</li><li>
输出文件名=D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\CONTROL02.CTL</li><li>
输出文件名=D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\CONTROL03.CTL</li><li>
完成 restore 于 14-8月 -11</li></ol></div></div><div><br><font class="Apple-style-span" color="#F00000">由于control文件已经恢复,我们现在可以将数据库启动到mount状态 进行下一步的恢复了。</font><br><br><div><div id="codeText" class="codeText"><ol style="margin:0 1px 0 0;padding:5px 0;" start="1" class="dp-css"><li>RMAN&gt; alter database mount;</li><li>
</li><li>
数据库已装载</li><li>
释放的通道: ORA_DISK_1</li><li>
</li><li>
恢复数据库,命令很简单。</li><li>
</li><li>
RMAN&gt; restore database;</li><li>
</li><li>
启动 restore 于 14-8月 -11</li><li>
启动 implicit crosscheck backup 于 14-8月 -11</li><li>
分配的通道: ORA_DISK_1</li><li>
通道 ORA_DISK_1: sid=155 devtype=DISK</li><li>
已交叉检验的 3 对象</li><li>
完成 implicit crosscheck backup 于 14-8月 -11</li><li>
</li><li>
启动 implicit crosscheck copy 于 14-8月 -11</li><li>
使用通道 ORA_DISK_1</li><li>
完成 implicit crosscheck copy 于 14-8月 -11</li><li>
</li><li>
搜索恢复区域中的所有文件</li><li>
正在编制文件目录...</li><li>
目录编制完毕</li><li>
</li><li>
已列入目录的文件的列表</li><li>
=======================</li><li>
文件名: D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2011_08_14\O1_MF_NCSNF_TAG20110814T000703_74F8DB55_.BKP</li><li>
</li><li>
使用通道 ORA_DISK_1</li><li>
</li><li>
通道 ORA_DISK_1: 正在开始恢复数据文件备份集</li><li>
通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件</li><li>
正将数据文件00001恢复到D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF</li><li>
正将数据文件00002恢复到D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF</li><li>
正将数据文件00003恢复到D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF</li><li>
正将数据文件00004恢复到D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF</li><li>
正将数据文件00005恢复到D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\EXAMPLE01.DBF</li><li>
通道 ORA_DISK_1: 正在读取备份段 D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2011_08_14\O1_MF_NNNDF_TAG20110814T000703_74F898TO_.BKP</li><li>
通道 ORA_DISK_1: 已恢复备份段 1</li><li>
段句柄 = D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2011_08_14\O1_MF_NNNDF_TAG20110814T000703_74F898TO_.BKP 标记 = TAG20110814T000703</li><li>
通道 ORA_DISK_1: 恢复完成, 用时: 00:01:05</li><li>
完成 restore 于 14-8月 -11</li><li>
</li><li>
recover database;</li><li>
</li><li>
RMAN&gt; recover database;</li><li>
</li><li>
启动 recover 于 14-8月 -11</li><li>
使用通道 ORA_DISK_1</li><li>
</li><li>
正在开始介质的恢复</li><li>
</li><li>
无法找到存档日志</li><li>
存档日志线程 =1 序列=1</li><li>
MAN-00571: ===========================================================</li><li>
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============</li><li>
RMAN-00571: ===========================================================</li><li>
RMAN-03002: recover 命令 (在 08/14/2011 00:20:41 上) 失败</li><li>
RMAN-06054: 介质恢复正请求未知的日志: 线程 1 seq 1 lowscn 581729</li></ol></div></div><div><div><div><br><font class="Apple-style-span" color="#F00000">由于log丢失,只能通过restlogs 模式打开数据库了</font><br><br><div><div id="codeText" class="codeText"><ol style="margin:0 1px 0 0;padding:5px 0;" start="1" class="dp-css"><li>RMAN&gt; alter database open resetlogs;</li><li>
</li><li>
数据库已打开</li></ol></div></div><div><br>自此,数据库恢复完毕</div></div></div></div></div></div>
页: [1]
查看完整版本: [原创]只有rman全备,丢失conrol,redo,数据文件的恢复