第九篇 实战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,建议立即对数据库进行一次完全备份。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值