读书人

一步一步学RMAN第九篇 实战rman回复(1

发布时间: 2012-08-15 16:57:17 作者: rapoo

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

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

前面说过的,在非恢复目录(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,建议立即对数据库进行一次完全备份。

读书人网 >其他数据库

热点推荐