ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 一步一步学RMAN第九篇 实战rman恢复(1)丢失控制文件的恢复

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

原创 Linux操作系统 作者:junsansi 时间:2007-07-19 00:00:00 0 删除 编辑

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

一步一步学RMAN第一篇 进入RMAN
http://junsansi.itpub.net/post/29894/307688

一步一步学RMAN第二篇 RMAN命令知多少
http://junsansi.itpub.net/post/29894/308749

一步一步学RMAN第三篇 RMAN备份演练初级篇
http://junsansi.itpub.net/post/29894/308751

一步一步学RMAN第四篇 RMAN备份演练进阶篇
http://junsansi.itpub.net/post/29894/308752

一步一步学RMAN第五篇 RMAN基础知识补充 一
http://junsansi.itpub.net/post/29894/308753

一步一步学RMAN第六篇 实战RMAN备份
http://junsansi.itpub.net/post/29894/308756

一步一步学RMAN第七篇 RMAN基础知识补充 二
http://junsansi.itpub.net/post/29894/309783

一步一步学RMAN第八篇 演练rman恢复
http://junsansi.itpub.net/post/29894/309785


前面说过的,在非恢复目录(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:OraHome1oradatajsswebCONTROL*;

SQL> EXIT;

C:Documents and SettingsAdministrator>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:ackupC-3391142503-20070718-04';
########如果打开了自动备份,通过restore controlfile from autobackup也可以
########不过需要注意,如果以前修改过AUTOBACKUP的格式和路径,那么在恢复之前需要进行重新设置指明自动备份所在路径。不然RMAN有可能会找不着自动备份的文件哟
启动 restore 于 18-7月 -07

使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在恢复控制文件
通道 ORA_DISK_1: 恢复完成
正在复制控制文件
输出文件名=F:ORAHOME1ORADATAJSSWEBCONTROL01.CTL
输出文件名=F:ORAHOME1ORADATAJSSWEBCONTROL02.CTL
输出文件名=F:ORAHOME1ORADATAJSSWEBCONTROL03.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:ORAHOME1ORADATAJSSWEBSYSTEM01.DBF
正将数据文件00002恢复到F:ORAHOME1ORADATAJSSWEBUNDOTBS01.DBF
正将数据文件00003恢复到F:ORAHOME1ORADATAJSSWEBDRSYS01.DBF
正将数据文件00004恢复到F:ORAHOME1ORADATAJSSWEBEXAMPLE01.DBF
正将数据文件00005恢复到F:ORAHOME1ORADATAJSSWEBINDX01.DBF
正将数据文件00006恢复到F:ORAHOME1ORADATAJSSWEBODM01.DBF
正将数据文件00007恢复到F:ORAHOME1ORADATAJSSWEBTOOLS01.DBF
正将数据文件00008恢复到F:ORAHOME1ORADATAJSSWEBUSERS01.DBF
正将数据文件00009恢复到F:ORAHOME1ORADATAJSSWEBXDB01.DBF
正将数据文件00010恢复到F:ORAHOME1ORADATAJSSWEBJWEB.ORA
通道 ORA_DISK_1: 已恢复备份段 1
段 handle=D:BACKUP1AIN4JU5_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:ORAHOME1ORADATAJSSWEBREDOC02.LOG 存在于
盘上
存档日志线程 1 序列 8 已作为文件 F:ORAHOME1ORADATAJSSWEBREDOA01.LOG 存在于
盘上
存档日志线程 1 序列 9 已作为文件 F:ORAHOME1ORADATAJSSWEBREDOB02.LOG 存在于
盘上
通道 ORA_DISK_1: 正在启动到默认目标的存档日志恢复
通道 ORA_DISK_1: 正在恢复存档日志
存档日志线程 =1 序列=5
通道 ORA_DISK_1: 已恢复备份段 1
段 handle=D:BACKUP1BIN4K16_1_1 tag=TAG20070718T093014 params=NULL
通道 ORA_DISK_1: 恢复完成
存档日志文件名 =F:ORAHOME1RDBMSARC00005.001 线程 =1 序列 =5
存档日志文件名 =F:ORAHOME1RDBMSARC00006.001 线程 =1 序列 =6
存档日志文件名 =F:ORAHOME1ORADATAJSSWEBREDOC02.LOG 线程 =1 序列 =7
存档日志文件名 =F:ORAHOME1ORADATAJSSWEBREDOA01.LOG 线程 =1 序列 =8
存档日志文件名 =F:ORAHOME1ORADATAJSSWEBREDOB02.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 SettingsAdministrator>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 SettingsAdministrator>exit
主机命令完成

RMAN>

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

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7607759/viewspace-22262/,如需转载,请注明出处,否则将追究法律责任。

下一篇: 发水啦~~~~
请登录后发表评论 登录
全部评论
暂无介绍

注册时间:2007-12-21

  • 博文量
    640
  • 访问量
    4125731