如何不使用rman工具恢复被rm删除的数据文件

朋友一时兴起使用了rm**,删除了oracle数据文件后找我帮忙,我在帮朋友恢复数据库时,遇到了当recover时,报错不能找到28739号归档日志,这样我就不能同步scn,更不能打开数据库了。这是归档日志不连续的典型案例,我最后告诉他要做好心理准备。事情还没有完,这个真实案例引发了我的思考,如果当时在朋友没有做rman拯救措施的情况下,可不可能不使用rman即可恢复数据文件呢!最后我找到了答案:)

案例

1.系统solaris SunOS TJLT-YDWG6 5.9 Generic_122300-25 sun4u sparc SUNW,Sun-Fire-V890

DB  OracleDatabase 10g Enterprise Edition Release 10.2.0.1.0 - 64bi

2.案情描述

现场工程师使用了rm -rf *.dbf命令把所有的数据文件全部删除了

现在有5月4日的备份

restore database until time "to_date('2012-05-04 12:00:00','yyyy-mm-dd hh24:mi:ss')";  进行恢复显示finish restore complete没有问题已经把文件 复制回来了

进行同步

RMAN> recover database until time "to_date('2012-05-04 11:00:00','yyyy-mm-dd hh24:mi:ss')";

Starting recover at 2012-07-26 14:02:42

using channel ORA_DISK_1

starting media recovery

unable to find archive log

archive log thread=1 sequence=28739  缺少28739号的归档日志,导致undotbs01.dbf文件不一致

Oracle Error:

ORA-01547: warning: RECOVER succeeded but OPEN RESETLOGS would get error below

ORA-01194: file 2 needs more recovery to be consistent

ORA-01110: data file 2: '/opt/oradata/kpidb/undotbs01.dbf'

RMAN-00571: ===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571: ===========================================================

RMAN-03002: failure of recover command at 07/26/2012 14:02:51

RMAN-06054: media recovery requesting unknown log: thread 1 seq 28739 lowscn 1513525474

Leonarding

2012.7.26

在我们工作中可能会经常发生这样类似的突发状况,在遇到此情况下首先要做的就是冷静,上面发生的问题到了我这里之后,我就发现数据库已经变成了mount状态,在使用文件句柄方式恢复数据文件已经为时已晚,所以我采用了常规的恢复方式,没想到啊没想到,归档日志还不全,立马我整个人都“斯巴达”了,最后告诉朋友做DBA是需要勇气的。

下面我用自己的测试库演示一下操作系统rm级别的删除数据文件后,数据库仍然处于open状态的时候使用文件句柄来恢复被rm删除的数据文件,并最终顺利打开数据库的实验!我是一个比较严谨的人,所以一上来我先做个了“压缩全库备份”做到有备无患

描述一下场景:

操作系统:Enterprise Linux Enterprise Linux AS release 4 (October Update 8)

数据库版本:Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod

一、备份重于一切

因此在演示之前我们先做一下备份

RMAN> show all;

RMAN配置参数区,如下都是默认值

RMAN configuration parameters are:

冗余配置保留政策:冗余数是1

CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default

开启增量备份:关

CONFIGURE BACKUP OPTIMIZATION OFF; # default

默认备份设备是磁盘

CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default

控制文件自动备份:关

CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default

控制文件自动备份目录和格式:%F 【备份设备:Disk】

CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default

备份的并行度:1,备份类型为备份集

CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default

数据文件采用复制方式备份

CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default

归档日志采用复制方式备份

CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default

最大值:无限制

CONFIGURE MAXSETSIZE TO UNLIMITED; # default

加密数据库:关

CONFIGURE ENCRYPTION FOR DATABASE OFF; # default

加密算法采用AES128

CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default

归档日志删除策略:空

时间: 2024-11-01 20:39:34

如何不使用rman工具恢复被rm删除的数据文件的相关文章

rman恢复案例——丢失所有的数据文件

恢复|数据 1.1. 丢失所有的数据文件大前提,控制文件和日志文件没有损坏.1.1.1.    模拟丢失所有的数据文件RMAN> shutdown abort;   Oracle 例程已关闭   RMAN> host;   Microsoft Windows XP [版本 5.1.2600] (C) 版权所有 1985-2001 Microsoft Corp.   C:\>del D:\oracle92\test1\*.dbf   C:\>exit 主机命令完成   RMAN>

数据恢复-如何恢复U盘中删除的数据

问题描述 如何恢复U盘中删除的数据 u盘的数据不小心删除了想要恢复数据有没有很好用的软件可以很快的恢复数据呀求各位大婶帮忙 解决方案 金山有个恢复,不过好像要会员 解决方案二: 网上有不少这样的软件比如Recuva 或者 FinalData 解决方案三: 360主程序可以选择加载一个叫误删恢复的小工具,那个工具可以恢复硬盘和u盘上的数据,而且免费.

恢复Hyper-V虚拟机丢失的数据文件过程

简介: 由于MD3200存储中虚拟机的数据文件丢失,导致整个Hyper-V服务瘫痪,虚拟机无法使用,故障环境为Windows Server 2012服务器,系统中部署了Hyper-V虚拟机环境,虚拟机的硬盘文件和配置文件放在朝阳区某托管中心托管的DELL MD3200存储中(注:硬盘600G4,4T1).MD3200存储是由4块600G硬盘组成的阵列,用作存储虚拟机的数据文件.单块4T硬盘用作虚拟机数据文件的备份. 故障: 由于MD3200存储中虚拟机的数据文件丢失,导致整个Hyper-V服务瘫

通过360安全卫士恢复电脑中误删除的数据文件方法

1.在360安全卫士找到功能大全区域,点击"更多"选项,在功能大全界面下,找到"文件恢复"图标.     2.打开"360文件恢复"功能,选择需要恢复文件所在的磁盘,接下来点击"开始扫描",等待磁盘扫描结束.     3.扫描结束后,360文件恢复功能会显示丢失文件的情况,大家可以根据丢失文件的类型,先通过文件类型查找,再通过文件名搜索方式看看能否找到对应的丢失文件及路径.     4.尝试使用360文件恢复功能恢复名为mga

Oracle RMAN完全恢复案例(二)部分数据文件丢失

案例2: --部分数据文件丢失,恢复数据文件(mount 或 open) 1)测试环境 07:30:40 SQL> create table test (id int) tablespace test; Table created. 07:30:52 SQL> conn /as sysdba Connected. 07:30:57 SQL> 07:30:57 SQL> insert into scott.test values (1); 1 row created. 07:31:0

linux中extundelete恢复已删除的数据文件

因为人员离职闹得不愉快,系统工程师离职后,由于公司未及时关闭其vpn,数据库服务器(Linux 6.5 Oracle 11.2.0.1)帐号未及时被修改,最后直接上去rm ORACLE_BASE给干掉,悲剧的是ORADATA目录也在里面,更加悲剧的是所有数据文件都在里面.也就是说数据库彻底被删除,而且没有任何备份.朋友咨询了我,让我给予支持.最后比较幸运,文件没有被覆盖,inode都还在,通过extundelete顺利恢复所有数据文件,控制文件,redo文件(extundelete恢复Linux

如何在win7系统中恢复回收站中删除掉的文件?

  咱们知道,一般来说,win7 64位旗舰版下载电脑中删除掉的文件.应用都是删除到回收站的,如果大家觉得不应该删除,那么很简单,直接进入到回收站,找到这个文件,然后右键点击,选择还原就可以了,但是对于那些已经从回收站清空掉的文件,咱们又该如何去恢复呢?也许很多用户之前都觉得win7旗舰版电脑回收站清空掉的文件应用是无法恢复的,那么下面,还是让小编带大家来了解一下吧! 1.首先,咱们同时按下win7旗舰版电脑键盘上的win+R快捷键打开电脑的运行窗口,在打开的运行窗口中,咱们输入regedit并

EXT4文件系统上ORACLE数据文件误删除的对应恢复方法

如果EXT4文件系统上的ORACLE数据文件被误删除了,那么一般可以考虑下面2种恢复方式: 使用testdisk工具从文件系统角度恢复数据文件 使用prmscan工具从oracle 数据块角度恢复数据文件 这里我们介绍使用testdisk的恢复ext4上数据文件的步骤: 删除users数据文件   [oracle@dbdao01 ~]$ df -h Filesystem            Size  Used Avail Use% Mounted on /dev/mapper/VolGrou

[20151025]linux下删除数据文件的恢复细节3

[20151025]linux下删除数据文件的恢复细节3.txt --以前曾经写过一篇关于 --链接:http://blog.itpub.net/267265/viewspace-763969/ --里面提到实际上这种方式对于生产系统不是很合适,而且生产系统情况非常复杂,不可能出现删除数据文件时没有事务产生. --这种方式仅仅适合no archivelog的模式(没有办法的选择),我当时还提到这种方式一定要快,因为我的测试执行 alter system --checkpoint;,数据库直接cr