Linux环境下利用句柄恢复Oracle误删除的数据文件

时间:2022-09-02 08:00:27

在误删除Oracle的数据文件后,如果未关闭数据库,文件句柄还没有释放,且被删除的数据文件占用的磁盘块未被复写,则可以利用句柄的方式来恢复数据文件。下面模拟恢复过程。

(一)环境

OS版本:redhat 6.6

Linux环境下利用句柄恢复Oracle误删除的数据文件

数据库版本:Oracle 11.2.0.1

Linux环境下利用句柄恢复Oracle误删除的数据文件

(二)恢复操作

首先,模拟误删除数据库的数据文件。这里删除表空间TBS04下面的数据文件tbs04.bdf:

Linux环境下利用句柄恢复Oracle误删除的数据文件

这个时候绝对不能关闭数据库,一旦关闭数据库,则无法恢复。

删除后查看DBWN进程,进程号为3032

Linux环境下利用句柄恢复Oracle误删除的数据文件

进入这个进程的目录,可以看到我们删除的文件

Linux环境下利用句柄恢复Oracle误删除的数据文件

只需要将删除的文件复制回去即可

Linux环境下利用句柄恢复Oracle误删除的数据文件

经过确认,文件已经恢复到指定目录

Linux环境下利用句柄恢复Oracle误删除的数据文件

此时,重启数据库,发现数据文件不一致,需要执行数据文件恢复

Linux环境下利用句柄恢复Oracle误删除的数据文件

先将13号文件离线

Linux环境下利用句柄恢复Oracle误删除的数据文件

对其进行恢复操作,通过归档日志进行恢复

Linux环境下利用句柄恢复Oracle误删除的数据文件

将13号文件联机上线

Linux环境下利用句柄恢复Oracle误删除的数据文件

改变数据库到open状态

Linux环境下利用句柄恢复Oracle误删除的数据文件

完成恢复。

需要注意的是:

1.数据文件被删除后,数据库一定不能被关闭,否则句柄释放了,就无法使用这种方法进行恢复;

2.也可用lgwr进程来做数据文件、在线重做日志文件。

Linux环境下利用句柄恢复Oracle误删除的数据文件的更多相关文章

  1. Linux平台下利用系统接口函数按照行读写文件

    要求:支持大文件(1M)一次性读入 源代码如下: #include<stdio.h> #include<fcntl.h> #include<stdlib.h> #i ...

  2. Linux 环境下 MySQ导入和导出MySQL的sql文件

    将服务器上的文件导入或导出还需要使用工具传输到本机中,推荐使用winscp,与xshell搭配使用 1 导入数据库 两种方法 .首先建空数据库 mysql>create database abc ...

  3. linux环境下redis安装(redis伪集群搭建)

    redis在linux环境下搭建 1.创建目录 [root@192 local]# mkdir /usr/local/redis 2.下载redis,并解压 [root@192 local]# wge ...

  4. 全世界最详细的图形化VMware中linux环境下oracle安装(二)【weber出品必属精品】

    <ORACLE 10.2.05版本的升级补丁安装> 首先我们解压 $ unzip p8202632_10205_LINUX.zip 解压后我们会发现多出了个文件夹,他是:Disk1,进入D ...

  5. 全世界最详细的图形化VMware中linux环境下oracle安装(一)【weber出品必属精品】

    安装流程:前期准备工作--->安装ORACLE软件--->安装升级补丁--->安装odbc创建数据库--->安装监听器--->安装EM <前期准备工作> 安装 ...

  6. LINUX环境下SVN安装与配置(利用钩子同步开发环境与测试环境)

    安装采用YUM一键安装: 1.环境Centos 6.6 2.安装svnyum -y install subversion 3.配置 建立版本库目录mkdir /www/svndata svnserve ...

  7. Linux环境下Oracle安装参数设置

    前面讲了虚拟机的设置和OracleLinux的安装,接下来我们来说下Oracle安装前的准备工作.1.系统信息查看系统信息查看首先服务器ip:192.168.8.120服务器系统:Oracle Lin ...

  8. DBA 应该要注意Linux 环境下的一些操作

    DBA 对OS的依赖.一丁点儿也不亚于DB.对于Oracle DBA.尤为突出     DB和OS的感情也与日俱增.耦合度高的让人一度以为这两要劳燕双飞了 例如.Oracle里面. 而且.故障诊断以及 ...

  9. Linux环境下的network IO

    同步IO和异步IO,阻塞IO和非阻塞IO分别是什么,到底有什么区别?不同的人在不同的上下文下给出的答案是不同的.所以先限定一下本文的上下文. 本文讨论的背景是Linux环境下的network IO. ...

随机推荐

  1. hdu 5437 优先队列&plus;模拟 &ast;&ast;

    比赛的时候虽然考虑到没门的情况,但是写了几组都能过,就没想了,23333,差一行代码就能A,遗憾~~ #include<cstdio> #include<iostream> # ...

  2. AndroidStudio调试APP

    AndroidStudio调试APP 电脑用数据线连上手机 开启手机的开发者模式 注:通常连续狂点手机的版本号即可显示出开发者选项,然后进入菜单,勾选开发者选项.USB调试. 给程序加断点 单击调试按 ...

  3. java对象转JSON JS取JSON数据

    JsonConfig config = new JsonConfig(); config.setJsonPropertyFilter(new PropertyFilter() { @Override ...

  4. python中将两个list合并为字典

    两个list合并为字典的代码如下: def Run(): list2 = [1, 2, 3, 4, 5 ]; list3 = ["a", "b", " ...

  5. 专用管理连接(DAC)和单用户模式

    数据库运维人员,在维护数据库时,有时会遇到一些特殊的情况,例如,SQL Server实例无法访问,此时需要用到管理员在紧急情况下专用的连接:有时,在做一些系统级别的配置修改时,当前数据库不能被其他用户 ...

  6. Linux常见命令集锦

    这是平常用到的命令在这里做一下总结: 一.python 类1.pip(已安装)pip用来安装来自PyPI(https://www.python.org/)的python所有的依赖包,并且可以选择安装任 ...

  7. 深入学习JS执行--单线程的JS

    一.介绍 随着js不断学习,你可能会慢慢的好奇,用了这么久的js,却不知道这js在浏览器怎么被执行的,很尴尬.所以,我查阅很多资料来总结JS的执行过程,也分享出来,和大家一起学习. 本篇主要讲单线程的 ...

  8. 检索COM类工厂中CLSID为&lbrace;10020100-E260-11CF-AE68-00AA004A34D5&rcub;的组件时失败,原因是出现以下错误&colon;80040154

    {"检索 COM 类工厂中 CLSID 为 {10020100-E260-11CF-AE68-00AA004A34D5} 的组件时失败,原因是出现以下错误: 80040154."} ...

  9. openshift pod对外访问网络解析

    openshift封装了k8s,在网络上结合ovs实现了多租户隔离,对外提供服务时报文需要经过ovs的tun0接口.下面就如何通过tun0访问pod(172.30.0.0/16)进行解析(下图来自理解 ...

  10. VTK计算网格模型上的最短路径

    Dijkstra algorithm to compute the graph geodesic.Takes as input a polygonal mesh and performs a sing ...