文档章节

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

JAVA枪手
 JAVA枪手
发布于 2017/09/06 13:09
字数 1440
阅读 12
收藏 0
点赞 0
评论 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,建议立即对数据库进行一次完全备份。

© 著作权归作者所有

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

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

张晨chat ⋅ 06/03 ⋅ 0

Oracle 11g R2 Rman、数据泵、闪回备份与恢复

Oracle 11g R2 Rman备份 备份与恢复的定义及分类 备份的定义及分类: 从物理与逻辑的角度来分类: 从物理与逻辑的,备份可以分为物理备份和逻辑备份。 物理备份:对数据库操作系统的物理文件...

Love小敏 ⋅ 06/14 ⋅ 0

ORACLE不完全恢复的几种情况

ORACLE不完全恢复的几种情况 1、介绍 RMAN不完全恢复的三个标准模式:基于time、基于scn和基于sequence,与手工不完全恢复相比原理类似,语法稍有不同: 2、不完全恢复的几种情况 ### 1)不完...

持续高温 ⋅ 04/22 ⋅ 0

通过RMAN创建dataguard(原创)

环境介绍:数据库版本10G,两个节点分别是rednum1(192.168.212.128)和rednum2(192.168.212.130) 主库主机名称是rednum1,从库主机名称是rednum2 配置步骤如下: 1、在主库和从库配置tnsnames如...

denti ⋅ 06/04 ⋅ 0

RMAN 中delete exipired 和 delete obsolete 的区别

elete expired If you run CROSSCHECK, and if RMAN cannot locate the files, then it updates their records in the RMAN repository to EXPIRED status. You can then use the DELETE EXP......

1321385590 ⋅ 04/19 ⋅ 0

举一反三:跨平台版本迁移之 XTTS 方案操作指南

跨平台跨版本迁移方案对比 针对跨平台跨版本的迁移,主要有以下三种方式:数据泵、GoldenGate / DSG、XTTS,针对停机时间、复杂度、实施准备时间,做了以下列表比对: 客户的需求都是最短停机...

技术小能手 ⋅ 04/23 ⋅ 0

ORA-01578和ORA-26040--NOLOGGING操作引起的坏块-错误解释和解决方案

(一)NOLOGGING操作引起的坏块(ORA-01578和ORA-26040)简介 如果只是错误ORA-01578,而没有伴随ORA-26040,那么这个坏块是由其它的原因引起的坏块,可以尝试使用RMAN的BMR(Block Media R...

lhrbest ⋅ 04/16 ⋅ 0

将过期或未注册到控制文件 RMAN 激活或注册到控制文件

RMAN备份集显示已过期 重新注册 CATALOG BACKUPPIECE '/backup/oraclebk/archivelog/archivelog.20180516.dft30rbg11.rman'; RMAN显示备份集为可用状态 注:CATALOG BACKUPPIECE 命令还可以往......

1321385590 ⋅ 05/18 ⋅ 0

shell判断oracle主备数据库备份脚本

1. 脚本如下 说明:按照客户要求,在主备数据库上同时部署脚本,自动判断是否是主库,如果是主库则进行备份,备库不需要备份,记录日志为备份库即可,以下脚本仅供参考,可以进一步优化。 脚...

roidba ⋅ 05/24 ⋅ 0

非常规方法,轻松应对Oracle数据库危急异常

相信很多ORACLE DBA在职业生涯中或多或少都遇到过这样的情况:数据文件被误删了,存储坏了无法识别数据文件,最糟糕的是,竟然rman备份也是坏的…… 遇到问题凌乱慌张是没用的,而贸然动手也...

唐小丹、周凯 ⋅ 2016/04/08 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

笔试题之Java基础部分【简】【一】

基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语法,集合的语法,io 的语法,虚拟机方面的语法,其他 1.length、length()和size() length针对...

anlve ⋅ 19分钟前 ⋅ 1

table eg

user_id user_name full_name 1 zhangsan 张三 2 lisi 李四 `` ™ [========] 2018-06-18 09:42:06 星期一½ gdsgagagagdsgasgagadsgdasgagsa...

qwfys ⋅ 44分钟前 ⋅ 0

一个有趣的Java问题

先来看看源码: public class TestDemo { public static void main(String[] args) { Integer a = 10; Integer b = 20; swap(a, b); System.out......

linxyz ⋅ 48分钟前 ⋅ 0

十五周二次课

十五周二次课 17.1mysql主从介绍 17.2准备工作 17.3配置主 17.4配置从 17.5测试主从同步 17.1mysql主从介绍 MySQL主从介绍 MySQL主从又叫做Replication、AB复制。简单讲就是A和B两台机器做主...

河图再现 ⋅ 今天 ⋅ 0

docker安装snmp rrdtool环境

以Ubuntu16:04作为基础版本 docker pull ubuntu:16.04 启动一个容器 docker run -d -i -t --name flow_mete ubuntu:16.04 bash 进入容器 docker exec -it flow_mete bash cd ~ 安装基本软件 ......

messud4312 ⋅ 今天 ⋅ 0

OSChina 周一乱弹 —— 快别开心了,你还没有女友呢。

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @莱布妮子 :分享吴彤的单曲《好春光》 《好春光》- 吴彤 手机党少年们想听歌,请使劲儿戳(这里) @clouddyy :小萝莉街上乱跑,误把我认错成...

小小编辑 ⋅ 今天 ⋅ 8

Java 开发者不容错过的 12 种高效工具

Java 开发者常常都会想办法如何更快地编写 Java 代码,让编程变得更加轻松。目前,市面上涌现出越来越多的高效编程工具。所以,以下总结了一系列工具列表,其中包含了大多数开发人员已经使用...

jason_kiss ⋅ 昨天 ⋅ 0

Linux下php访问远程ms sqlserver

1、安装freetds(略,安装在/opt/local/freetds 下) 2、cd /path/to/php-5.6.36/ 进入PHP源码目录 3、cd ext/mssql进入MSSQL模块源码目录 4、/opt/php/bin/phpize生成编译配置文件 5、 . ./...

wangxuwei ⋅ 昨天 ⋅ 0

如何成为技术专家

文章来源于 -- 时间的朋友 拥有良好的心态。首先要有空杯心态,用欣赏的眼光发现并学习别人的长处,包括但不限于工具的使用,工作方法,解决问题以及规划未来的能力等。向别人学习的同时要注...

长安一梦 ⋅ 昨天 ⋅ 0

Linux vmstat命令实战详解

vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况。这个命令是我查看Linux/Unix最喜爱的命令...

刘祖鹏 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部