文档章节

RMAN学习过程之八,实战rman恢复之丢失控制文件的恢复

JAVA枪手
 JAVA枪手
发布于 2017/09/06 13:09
字数 1440
阅读 12
收藏 0

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

本文转载自:http://www.5ienet.com/note/html/rman/rman-lost-controlfile-solution.shtml

共有 人打赏支持
JAVA枪手
粉丝 7
博文 95
码字总数 15221
作品 0
东城
高级程序员
Oracle备份和恢复(RMAN篇)

前言:欢迎加QQ交流1445696451微博地址http://blog.51cto.com/13434336 ~ ~ ~ ~ ~ ~ ~分割 ~ ~ ~ ~ ~ ~ 数据库备份与恢复是数据库管理员必须掌握的。没有任何系统能免遭硬盘物理损坏、粗心用...

张晨chat
06/03
0
0
catalog恢复目录介绍和配置

2.1、nocatalog介绍 nocatalog方式 就是用control file作为catalog,每一次备份都要往控制文件里面写好多备份信息,控制文件里面会有越来越多的备份信息。因此,当使用rman nocatalog方式备份...

PengChonggui
06/28
0
0
RMAN简明教程之五——RMAN还原和恢复

一、常规还原与恢复 RMAN 的整个恢复过程可以分为还原(restore)与恢复(recover) ,他们在含义上是有很大差别的,一个是指物理意义的文件的还原与拷贝,一个是指数据库一致性的恢复,所以...

晨曦之光
2012/03/09
0
0
Oracle9i rman备份恢复总结

Recovery Manager(RMAN)是一种用于备份(backup)、还原(restore)和恢复(recover)数据库的Oracle 工.RMAN只能用于ORACLE8或更高的版本中。它能够备份整个数据库或数据库部件,如表空间、数据...

♂.Cent
2010/12/08
0
0
rman report list crosscheck delete -rman常用命令

一、REPORT 1、报告目标数据库的物理结构 RMAN>REPORT SCHEMA 2、报告需要备份的数据文件 在执行备份之前,常常需要取得需要备份的数据文件信息,通过执行REPORT NEED BACKUP命令,可以列出需...

zhailibao
2014/02/28
0
0

没有更多内容

加载失败,请刷新页面

加载更多

用户体验要素——以用户为设计中心

一、用户体验是什么 产品会与外界发生联系,人们如何去使用产品,人们使用产品无非解决两种问题,一,提高效率;二娱乐。而用户体验兼顾着功能和界面两个方面,为的是“提高人们的工作效率”...

铸剑为犁413
39分钟前
0
0
学习设计模式——代理模式

1. 认识代理模式 1. 定义:为其他对象提供一种代理以控制对这个对象的访问。 2. 组织结构: Proxy:代理对象,要实现与目标代理对象的相同的接口,这样就可以使用代理来代替具体的目标对象,...

江左煤郎
今天
1
0
java JDK动态代理

本篇随笔是对java动态代理中的JDK代理方式的具体实现。 首先需要定义一个接口,为其定义了两个方法:   public interface UserService { public void add(); public void delete(); } 然后需...

编程SHA
今天
2
0
轻松理解Dubbo分布式服务框架

Dubbo是什么? Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需要用的...

别打我会飞
今天
2
0
TypeScript基础入门之JSX(一)

转发 TypeScript基础入门之JSX(一) 介绍 JSX是一种可嵌入的类似XML的语法。 它旨在转换为有效的JavaScript,尽管该转换的语义是特定于实现的。 JSX在React框架中越来越受欢迎,但此后也看到了...

durban
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部