删除了 /oradata 下一些dbf文件,实例还在运行,怎么恢复?

在Linux系统上,当不小心删除了/oradata目录下的Oracle数据库dbf文件且实例仍在运行时,可以通过检查进程句柄并使用cp命令进行恢复。文章详细介绍了使用lsof命令找出被进程占用的文件句柄,然后通过复制proc目录下的句柄恢复文件的步骤,提供了一个简化筛选过程的脚本,强调实例运行中是关键前提。
摘要由CSDN通过智能技术生成

前言

linux系统上,如果不小心删除了oracle数据库的/oradata目录下一些dbf文件,实例还在运行的情况下,可以尝试cp命令进行恢复。

简要过程

由于实例还存在,对这些文件读写的ckpt、lgwr、dbw等进程的句柄还没释放,可以用root检查一下

lsof |grep deleted |grep oradata 

输出信息类似如下:
在这里插入图片描述
可能会有多个进程访问同一文件,所以会看到多条信息。

以sysaux01.dbf 为例,进入到/proc/<dbw进程号>/fd目录下,看到句柄号(蓝色箭头所指)
在这里插入图片描述
可以 cp /proc/进程号/fd/文件句柄号<蓝框> <红框中对应的文件名> 将数据文件恢复回来。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值