一步一步学RMAN第九篇 实战rman恢复(1)丢失控制文件的恢复

原创 2007年09月18日 17:38:00

无数次我对自己说,可以了,足够了,你已经明白了,需要学习的东西还很多,赶紧冲着下个目标去吧。尤幸的是在下一刻,另一个声音在脑海中响起,再加把劲,真的搞明白了,亲手去做个测试吧。

前面说过的,在非恢复目录(catalog)模式下,rman的备份信息都将存储在目标数据库的控制文件中,所以一旦控制文件丢失,不仅目标数据库崩溃,而且rman备份信息也尽数丢失,这种情况下,如果您有控制文件备份,那还有救(没有备份的话,也并非完全没有希望,如果您对自己的oracle结构非常了解,可以通过写脚本的方式自已重建控制文件。看看oracle是不是考虑的很周全了,很多情况下你认为没救了的时候,也并非完全陷入绝境)。

本章将模拟归档模式下,控制文件丢失情况下的恢复,在本例中,我们仍然借助上节中建立的备份做恢复,大家应该还记的。

在应用备份恢复时,必须知道目标数据库的DBID,有多种方式可查,比如我们创建自动备份时,如果没有更改其命名方式,文件名中会包含DBID;或者查看之前的rman备份日志,其中登陆到rman之后会显示出目标数据库的DBID

SQL> select *from jss.tmp3;

COL

--------------------------------------------------

test4

test1

test2

test3

SQL> shutdown immediate;

数据库已经关闭。

已经卸载数据库。

ORACLE 例程已经关闭。

SQL>host del F:/OraHome1/oradata/jssweb/CONTROL*;

SQL> EXIT;

C:/Documents and Settings/Administrator>rman target /

恢复管理器: 版本9.2.0.1.0 - Production

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

连接到目标数据库: jssweb(未安装)

RMAN> set dbid 3391142503

#####由于目标数据库控制文件丢失,在此处必须指定dbid

正在执行命令: SET DBID

RMAN> restore controlfile from 'd:/backup/C-3391142503-20070718-04';

########如果打开了自动备份,通过restore controlfile from autobackup也可以

########不过需要注意,因为控制文件没有了,所以rman的配置信息也丢失了,你需要用 set controlfile autobackup format for device type disk to 'd:/backup/%F';命令重设一个自动备份的控制文件所在路径。

启动 restore 于 18-7月 -07

使用通道 ORA_DISK_1

通道 ORA_DISK_1: 正在恢复控制文件

通道 ORA_DISK_1: 恢复完成

正在复制控制文件

输出文件名=F:/ORAHOME1/ORADATA/JSSWEB/CONTROL01.CTL

输出文件名=F:/ORAHOME1/ORADATA/JSSWEB/CONTROL02.CTL

输出文件名=F:/ORAHOME1/ORADATA/JSSWEB/CONTROL03.CTL

完成 restore 于 18-7月 -07

RMAN> sql 'alter database mount';

#######控制文件已恢复,将目标数据库置为加载状态

正在使用目标数据库控制文件替代恢复目录

sql 语句: alter database mount

RMAN> restore database;

########修复数据库

启动 restore 于 18-7月 -07

分配的通道: ORA_DISK_1

通道 ORA_DISK_1: sid=12 devtype=DISK

通道 ORA_DISK_1: 正在开始恢复数据文件备份集

通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件

正将数据文件00001恢复到F:/ORAHOME1/ORADATA/JSSWEB/SYSTEM01.DBF

正将数据文件00002恢复到F:/ORAHOME1/ORADATA/JSSWEB/UNDOTBS01.DBF

正将数据文件00003恢复到F:/ORAHOME1/ORADATA/JSSWEB/DRSYS01.DBF

正将数据文件00004恢复到F:/ORAHOME1/ORADATA/JSSWEB/EXAMPLE01.DBF

正将数据文件00005恢复到F:/ORAHOME1/ORADATA/JSSWEB/INDX01.DBF

正将数据文件00006恢复到F:/ORAHOME1/ORADATA/JSSWEB/ODM01.DBF

正将数据文件00007恢复到F:/ORAHOME1/ORADATA/JSSWEB/TOOLS01.DBF

正将数据文件00008恢复到F:/ORAHOME1/ORADATA/JSSWEB/USERS01.DBF

正将数据文件00009恢复到F:/ORAHOME1/ORADATA/JSSWEB/XDB01.DBF

正将数据文件00010恢复到F:/ORAHOME1/ORADATA/JSSWEB/JWEB.ORA

通道 ORA_DISK_1: 已恢复备份段 1

段 handle=D:/BACKUP/1AIN4JU5_1_1 tag=TAG20070718T092837 params=NULL

通道 ORA_DISK_1: 恢复完成

完成 restore 于 18-7月 -07

RMAN> recover database;

########恢复数据库

启动 recover 于 18-7月 -07

使用通道 ORA_DISK_1

正在开始介质的恢复

存档日志线程 1 序列 7 已作为文件 F:/ORAHOME1/ORADATA/JSSWEB/REDOC02.LOG 存在于

盘上

存档日志线程 1 序列 8 已作为文件 F:/ORAHOME1/ORADATA/JSSWEB/REDOA01.LOG 存在于

盘上

存档日志线程 1 序列 9 已作为文件 F:/ORAHOME1/ORADATA/JSSWEB/REDOB02.LOG 存在于

盘上

通道 ORA_DISK_1: 正在启动到默认目标的存档日志恢复

通道 ORA_DISK_1: 正在恢复存档日志

存档日志线程 =1 序列=5

通道 ORA_DISK_1: 已恢复备份段 1

段 handle=D:/BACKUP/1BIN4K16_1_1 tag=TAG20070718T093014 params=NULL

通道 ORA_DISK_1: 恢复完成

存档日志文件名 =F:/ORAHOME1/RDBMS/ARC00005.001 线程 =1 序列 =5

存档日志文件名 =F:/ORAHOME1/RDBMS/ARC00006.001 线程 =1 序列 =6

存档日志文件名 =F:/ORAHOME1/ORADATA/JSSWEB/REDOC02.LOG 线程 =1 序列 =7

存档日志文件名 =F:/ORAHOME1/ORADATA/JSSWEB/REDOA01.LOG 线程 =1 序列 =8

存档日志文件名 =F:/ORAHOME1/ORADATA/JSSWEB/REDOB02.LOG 线程 =1 序列 =9

完成介质的恢复

完成 recover 于 18-7月 -07

RMAN> sql 'alter database open resetlogs';

######由于使用备份的控制文件恢复,该文件内不包含目标数据库redologs和数据文件头部scn信息,所以必须通过resetlogs方式open。

sql 语句: alter database open resetlogs

RMAN> host;

Microsoft Windows [版本 5.2.3790]

(C) 版权所有 1985-2003 Microsoft Corp.

C:/Documents and Settings/Administrator>sqlplus jss/jss

SQL*Plus: Release 9.2.0.1.0 - Production on 星期三 7月 18 17:40:28 2007

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

连接到:

Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production

With the Partitioning, OLAP and Oracle Data Mining options

JServer Release 9.2.0.1.0 - Production

SQL> select *from tmp3;

COL

--------------------------------------------------

test4

test1

test2

test3

#######成功恢复,数据也没有丢失

SQL> exit

从Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production

With the Partitioning, OLAP and Oracle Data Mining options

JServer Release 9.2.0.1.0 - Production中断开

C:/Documents and Settings/Administrator>exit

主机命令完成

RMAN>

注意,恢复之后表忘了重建临时表空间。另外,由于resetlogs,建议立即对数据库进行一次完全备份。

 

相关文章推荐

ORACLE11g 没有控制文件如何通过rman备份恢复数据的详细实战过程

1、副总裁需要裸恢复的严峻现实集团总部的信息部负责人给我打电话说为了找一年前的记录,所以需要对一年前2015年5月1日的数据进行恢复。而2016年初因为进行迁移,所以有些文件可能丢失,手上只有rman...
  • mchdba
  • mchdba
  • 2016年10月18日 20:14
  • 1888

探索ORACLE之RMAN_07控制文件丢失恢复

探索ORACLE之RMAN_07控制文件丢失恢复 作者:吴伟龙   Name:Prodence Woo QQ:286507175  msn:hapy-wuweilong@hotmail.com ...

丢失全部控制文件后从RMAN备份集中恢复示例

丢失全部控制文件 后用RMAN恢复的大致步骤可以写为: startup nomount; restore controlfile from autobackup;或者指定的有控制文件 备份的备份集 a...

rman实验之归档模式有备份,正常关机丢失控制文件的恢复

在恢复控制文件之前,必须知道目标数据库的DBID。身为DBA的你,在接手数据库时,定要把数据库的DBID给备份出来!    1)备份控制文件RMAN> list backup of controlfi...

控制文件的备份与恢复(RMAN工具)

本篇说明控制文件在全部丢失的情况下,利用Rman工具自动备份的控制文件转储并回复数据库; 之前写过一篇关于手动“控制文件的备份与恢复” ,请查阅:http://blog.csdn.net/perfec...

RMAN学习8——控制文件恢复(nocatalog模式)

如果在nocatalog模式下,rman备份的一些信息是存储在控制文件当中。 如果丢失,不仅数据库打不开,rman的备份信息也丢失,这里需要恢复控制文件 1、做好备份,这里略过 2、关闭数据库,...

使用rman恢复控制文件

控制文件(controlfile)丢失恢复 基于控制文件的复合多路径性,它的丢失分为两种,一种是其中某个控制文件的损坏或丢失,另外一种是所有控制文件均丢失。基于第一种情况,只需把好的控制文件复制一份...
  • rlhua
  • rlhua
  • 2013年10月11日 23:06
  • 10087

rman基于备份的控制文件的不完全恢复

本文描述:通过备份的控制文件来进行数据库的不完全恢复(因为控制文件保存着整个数据库的结构信息,因此要恢复到过去的某个点,就要先恢复那个点所对应的控制文件,然后在进行数据库备份,若未表达清楚可留言后者私...

RMAN的备份与恢复(3)-控制文件恢复

具体步骤 1:shutdown immediate;2:startup nomount3:restore controlfile from 备份文件路径;4:alter database mount;...

RMAN实战14:用RMAN恢复ORACLE归档日志、控制文件、spfile及logminer的使用

归档日志 恢复所有备份的归档到默认位置 恢复指定范围内的归档日志 用命令块将归档日志恢复到非默认位置 控制文件的恢复 spfile 文件的恢复 logminer工具的使用 主要介绍了用RMAN将归...
  • x6_9x
  • x6_9x
  • 2015年12月23日 20:59
  • 811
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:一步一步学RMAN第九篇 实战rman恢复(1)丢失控制文件的恢复
举报原因:
原因补充:

(最多只允许输入30个字)