linux中误删除oracle数据文件的恢复操作(转)

下面来模拟误删除users表空中的数据文件users01.dbf

[root@jingyong jingyong]# ls
control01.ctl example01_bak.dbf jy01.dbf redo02.log sysaux01.dbf system01.dbf undotbs01.dbf users01.dbf.bak
control02.ctl example01.dbf redo01.log redo03.log system_01.dbf temp01.dbf users01.dbf

删除users01.dbf
[root@jingyong jingyong]# rm -rf users01.dbf
SQL> create table testjy(id number(20));
ERROR at line 1:
ORA-01116: error in opening database file 4
ORA-01110: data file 4:
‘/u01/app/oracle/product/11.2.0/oradata/jingyong/users01.dbf’
ORA-27041: unable to open file
Linux Error: 2: No such file or directory
Additional information: 3

检查dbwr的进程PID
[root@jingyong ~]# ps -ef|grep dbw0|grep -v grep
oracle 2236 1 0 06:40 ? 00:00:01 ora_dbw0_jingyong

dbwr会打开所有数据文件的句柄。在proc目录中可以查到,目录名是进程PID,fd表示文件描述符
[root@jingyong ~]# cd /proc/2236/fd

[root@jingyong fd]# ls -l
total 0
lr-x—— 1 oracle oinstall 64 May 31 08:15 0 -> /dev/null
l-wx—— 1 oracle oinstall 64 May 31 08:15 1 -> /dev/null
l-wx—— 1 oracle oinstall 64 May 31 08:15 10 -> /u01/app/oracle/diag/rdbms/jingyong/jingyong/trace/jingyong_ora_2213.trc
l-wx—— 1 oracle oinstall 64 May 31 08:15 11 -> /u01/app/oracle/diag/rdbms/jingyong/jingyong/trace/jingyong_ora_2213.trm
lr-x—— 1 oracle oinstall 64 May 31 08:15 12 -> /u01/app/oracle/product/11.2.0/db/rdbms/mesg/oraus.msb
lr-x—— 1 oracle oinstall 64 May 31 08:15 13 -> /dev/zero
lr-x—— 1 oracle oinstall 64 May 31 08:15 14 -> /proc/2236/fd
lr-x—— 1 oracle oinstall 64 May 31 08:15 15 -> /dev/zero
lrwx—— 1 oracle oinstall 64 May 31 08:15 16 -> /u01/app/oracle/product/11.2.0/db/dbs/hc_jingyong.dat
lrwx—— 1 oracle oinstall 64 May 31 08:15 17 -> /u01/app/oracle/product/11.2.0/db/dbs/lkJINGYONG
lrwx—— 1 oracle oinstall 64 May 31 08:15 18 -> /u01/app/oracle/product/11.2.0/oradata/jingyong/control01.ctl
lrwx—— 1 oracle oinstall 64 May 31 08:15 19 -> /u01/app/oracle/product/11.2.0/oradata/jingyong/control02.ctl
l-wx—— 1 oracle oinstall 64 May 31 08:15 2 -> /dev/null
lrwx—— 1 oracle oinstall 64 May 31 08:15 20 -> /u01/app/oracle/product/11.2.0/oradata/jingyong/system01.dbf
lrwx—— 1 oracle oinstall 64 May 31 08:15 21 -> /u01/app/oracle/product/11.2.0/oradata/jingyong/sysaux01.dbf
lrwx—— 1 oracle oinstall 64 May 31 08:15 22 -> /u01/app/oracle/product/11.2.0/oradata/jingyong/undotbs01.dbf
lrwx—— 1 oracle oinstall 64 May 31 08:15 23 -> /u01/app/oracle/product/11.2.0/oradata/jingyong/users01.dbf (deleted)
lrwx—— 1 oracle oinstall 64 May 31 08:15 24 -> /u01/app/oracle/product/11.2.0/oradata/jingyong/example01.dbf
lrwx—— 1 oracle oinstall 64 May 31 08:15 25 -> /u01/app/oracle/product/11.2.0/oradata/jingyong/jy01.dbf
lrwx—— 1 oracle oinstall 64 May 31 08:15 26 -> /u01/app/oracle/product/11.2.0/oradata/jingyong/temp01.dbf
lr-x—— 1 oracle oinstall 64 May 31 08:15 27 -> /u01/app/oracle/product/11.2.0/db/rdbms/mesg/oraus.msb
l-wx—— 1 oracle oinstall 64 May 31 08:15 3 -> /u01/app/oracle/product/11.2.0/db/rdbms/log/jingyong_ora_2213.trc
lr-x—— 1 oracle oinstall 64 May 31 08:15 4 -> /dev/null
lr-x—— 1 oracle oinstall 64 May 31 08:15 5 -> /dev/null
lr-x—— 1 oracle oinstall 64 May 31 08:15 6 -> /dev/null
lrwx—— 1 oracle oinstall 64 May 31 08:15 7 -> /u01/app/oracle/product/11.2.0/db/dbs/hc_jingyong.dat

注意其中”/u01/app/oracle/product/11.2.0/oradata/jingyong/users01.dbf (deleted)”字样,表示该文件已经被删除,
直接cp该句柄文件名回原位置
[root@jingyong fd]# cp 23 /u01/app/oracle/product/11.2.0/oradata/jingyong/users01.dbf

数据文件users01.dbf恢复回来了,因为了用的是root用户操作的要修改一下权限
[root@jingyong jingyong]# ls -lrt
total 2564428
-rw-r—– 1 root root 723525632 May 16 13:33 system_01.dbf
-rw-r—– 1 root root 104865792 May 22 15:46 example01_bak.dbf
-rw-r—– 1 oracle oinstall 52429312 May 31 06:40 redo02.log
-rw-r—– 1 oracle oinstall 52429312 May 31 06:40 redo01.log
-rw-r—– 1 oracle oinstall 1056768 May 31 06:40 jy01.dbf
-rw-r—– 1 oracle oinstall 104865792 May 31 06:40 example01.dbf
-rw-r—– 1 root root 24911872 May 31 08:16 users01.dbf.bak
-rw-r—– 1 oracle oinstall 31465472 May 31 08:20 temp01.dbf
-rw-r—– 1 oracle oinstall 608182272 May 31 08:21 sysaux01.dbf
-rw-r—– 1 oracle oinstall 104865792 May 31 08:22 undotbs01.dbf
-rw-r—– 1 oracle oinstall 723525632 May 31 08:22 system01.dbf
-rw-r—– 1 oracle oinstall 52429312 May 31 08:22 redo03.log
-rw-r—– 1 root root 24911872 May 31 08:23 users01.dbf
-rw-r—– 1 oracle oinstall 10076160 May 31 08:23 control02.ctl
-rw-r—– 1 oracle oinstall 10076160 May 31 08:23 control01.ctl

[root@jingyong jingyong]# chown oracle:oinstall users01.dbf
[root@jingyong jingyong]# chmod 777 users01.dbf
[root@jingyong jingyong]# ls -lrt
total 2564428
-rw-r—– 1 root root 723525632 May 16 13:33 system_01.dbf
-rw-r—– 1 root root 104865792 May 22 15:46 example01_bak.dbf
-rw-r—– 1 oracle oinstall 52429312 May 31 06:40 redo02.log
-rw-r—– 1 oracle oinstall 52429312 May 31 06:40 redo01.log
-rw-r—– 1 oracle oinstall 1056768 May 31 06:40 jy01.dbf
-rw-r—– 1 oracle oinstall 104865792 May 31 06:40 example01.dbf
-rw-r—– 1 root root 24911872 May 31 08:16 users01.dbf.bak
-rw-r—– 1 oracle oinstall 31465472 May 31 08:20 temp01.dbf
-rw-r—– 1 oracle oinstall 723525632 May 31 08:22 system01.dbf
-rwxrwxrwx 1 oracle oinstall 24911872 May 31 08:23 users01.dbf
-rw-r—– 1 oracle oinstall 104865792 May 31 08:23 undotbs01.dbf
-rw-r—– 1 oracle oinstall 608182272 May 31 08:23 sysaux01.dbf
-rw-r—– 1 oracle oinstall 52429312 May 31 08:23 redo03.log
-rw-r—– 1 oracle oinstall 10076160 May 31 08:23 control02.ctl
-rw-r—– 1 oracle oinstall 10076160 May 31 08:23 control01.ctl

进行数据文件恢复
[oracle@jingyong ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on Fri May 31 08:24:35 2013

Copyright (c) 1982, 2009, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 – Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> alter database datafile 4 offline;

Database altered.

SQL> recover datafile 4;
Media recovery complete.
SQL> alter database datafile 4 online;

Database altered.

恢复的原理是,在Linux操作系统中,如果文件从操作系统级别被rm掉,之前打开该文件的进程仍然持有相应的文件句柄,所指向的文件仍然可以读写,并且该文件的文件描述符可以从/proc目录中获得。但是要注意的是,此时如果关闭数据库,则此句柄会消失.

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/24104518/viewspace-763838/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/24104518/viewspace-763838/

oracle删除哪些内容可以减少USERS01.DBF数据文件的大小 立即下载

相关推荐

从零到一:Zephyr RTOS 在 STM32F4 上的移植与实战(含设备树配置详解)

本文详细介绍了如何从零开始将Zephyr RTOS移植到STM32F4开发板,涵盖开发环境搭建、硬件抽象层分析、设备树配置及系统裁剪等关键步骤。通过实战案例,帮助开发者掌握Zephyr RTOS在嵌入式设备中的应用,提升物联网边缘计算设备的开发效率。

weixin_26976635的博客 591

Oracle笔记-USRS01.DBF文件过大,解决办法

在客户那边跑了1年多的程序没有出现问题,在公司弄了个开发环境,隔个几个星期就出一次问题。发现是公司这边缺乏运维人员造成的,说明都是靠开发自己干。一个字累。 这次,家里面测试环境突然间异常了,程序还在运行,但反应相当迟钝。最后查了下,搭建Oracle的那台机器只有几百MB的空间了。发现一个USERS01.DBF的文件巨大,差不多30多GB了。 因为是家里面的测试环境,这里可以乱搞下。 alter database datafile 'C:\contnet\oradata\ORCL\USE.

IT1995的博客 3303

用deepseek部署全自动的机器人--bytebot

Bytebot是一款开源AI桌面代理,提供完整的虚拟桌面环境,支持跨应用任务处理、文件管理、文档处理等复杂工作流。其技术架构包含核心控制、LLM代理、UI等组件,支持Docker和Kubernetes部署。本文演示了基于CloudStudio的部署流程,包括环境配置、Docker部署及DeepSeek API集成,实现多模型调用功能。

Kin 2481

oracle的USER01.DBF剪切走造成的错误以及解决办法

Oracle数据库里的USER01.DBF文件由于内存太大暂时剪切走了,在粘贴回来时发现在登录时报异常了。异常及解决办法如下,在命令行里登录。 报的异常为:ERROR: ORA-01033: ORACLE initialization or shutdown in progress 进程 ID: 0 会话 ID: 0 序列号: 0 解决办法是在命令行输入: 1

java爱好者a的专栏 1902

Win11如何更改用户文件夹名(完整流程- 已验证可行)

把C盘所有文件备份,如果不想备份,则选择创建一个C盘的系统还原点(能在后续把C盘玩崩之后恢复原状)

Y_Aryan的博客 5万+

华为昇腾NPU环境搭建:torch-npu安装避坑指南(附常见错误解决方案)

本文详细解析了在华为昇腾NPU环境中安装torch-npu适配包的全流程与核心要点。从基础环境准备、严格的版本匹配策略,到针对‘RuntimeError: NPU error’、‘ImportError: libxxx.so’等高频错误的深度解析与解决方案,提供了一份实用的避坑指南,旨在帮助开发者高效搭建稳定的PyTorch开发环境。

weixin_29094979的博客 411

oracle dbf 超大,oracle users01.dbf越来越大解决-Oracle

oracle users01.dbf越来越大解决oracle删除数据后,表空间不释放,dbf文件越来越大,可以使用:SQL> ALTER DATABASE DATAFILE ‘C:\oracle\product\10.2.0\oradata\orcl\USERS01.DBF’ RESIZE 1G;来缩小表空间,如果报错:“ORA-03297: 文件包含在请求的 RESIZE 值以外使用的数据...

weixin_39989862的博客 1869

NSIS教程(8): 基于第三方界面库的安装包界面

前面的几篇文章介绍了NSIS的传统界面的安装包和现代界面的安装包的制作方法,也提到了NSIS支持自定义页面(即使用page custom)的特性,自定义页面需要用户自己创建对话框、控件、添加控件响应等等,虽然NSIS提供了nsDialogs.nsh来支持这些功能,但使用起来还是不太方便(需要专门了解这个插件诸多用法),而且不够灵活,所以本文介绍一种终极的自定义界面的安装包解决方案,即完全使用第三方

while(1) { smile(); } 9万+

【转载】linux中误删除oracle数据文件的恢复操作

转自:http://space.itpub.net/?uid-26015009-action-viewspace-itemid-763506 下面来模拟误删除users表空中的数据文件users01.dbf [root@jingyong jingyong]# ls control01.ctl example01_bak.dbf jy01.dbf redo02.log...

apple01010105的博客 105

Figma做原型设计一篇教会你,全栈软件开发必备技能,前后端岗位锐减找工作的底牌

本文介绍了使用Figma进行前端应用原型设计的方法与优势。Figma作为主流设计工具,能够满足大多数应用系统的原型设计需求,强调系统设计应保持简洁合理。文章详细说明了Figma的基本操作流程,包括创建Frame页面、组件使用、交互设置等核心功能,并指出命名规范的重要性。同时对比了Axure、墨刀等其他设计工具的特点,建议根据具体需求选择合适的平台。最后强调原型设计主要关注交互功能展示,业务逻辑应通过需求文档表述。整体而言,Figma凭借其简洁高效的特点,已成为原型设计的优选工具。

有问题或资源连接有缺失的可以私信公众号新潮看世界获取 462

YOLO26改进策略【卷积层】| SPD-Conv 针对小目标和低分辨率图像的检测任务

SPD-Conv是一种新的 CNN 构建模块,用于替代传统 CNN 架构中使用的步长卷积(strided convolution)和池化(pooling)层,它由空间到深度(Space-to-depth,SPD)层和非步长卷积(non - strided convolution)层组成。

Limiiiing的博客 359

误删除oracle目录,恢复被误删除的oracle数据文件(一)

在生产环境,总会发生数据库的数据文件被误删除的事情,如SA不懂得数据库,数据库的在线日志为redo01.log,还是cp备份后删除的,让人哭笑不得,数据文件命名为无dbf后缀等,都容易被误删除在操作系统层面被误rm的,如果及时发现,还是可以挽救的,下面举例说明下:1、查询数据库版本和是否归档模式SQL> select * from v$version;BANNER--------------...

weixin_30527151的博客 604

保研考研机试攻略:python笔记(4)

保研考研机试攻略:python笔记(4)二分法+最大公约数+最小公倍数+素数判断+幂次方mod方法+匹配问题+哈希算法+哈夫曼编码+二叉树

qq_63349644的博客 1097

误删 oracle 数据文件的恢复

虽然一再小心,但是还是发生人为误删除数据库文件.简单步骤,或许关键时刻可以帮大忙.

yangzhawen 2844

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

linux下恢复误删除oracle的数据文件

场景描述:操作系统级别的删除数据文件(/oracle/oradata/ora10g/system1.dbf),而且数据库没有崩溃,仍然处于open状态。 原理:在Linux操作系统中,如果文件从操作系统级别被删除掉,之前打开该文件的进程仍然持有相应的文件句柄,所指向的文件仍然可以读写,并且该文件的文件描述符可以从/proc目录中获得。如果关闭数据库,则句柄就会丢失。 恢复步骤如...

oradbm的博客 578

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

oracle物理文件删除如何恢复,Linux下Oracle 数据文件被物理误删除的恢复

39insert into student values(200216303,‘王伟‘,‘男‘,33,‘IS‘);删除测试数据文件[root@icsdb02 icsdb]# rm -rf /oracle_data/icsdb/icsdb01.dbfSQL> ho rm /oracle_data/icsdb/icsdb01.dbf --删除用户数据文件;在查看数据文件已经不在了[root@...

weixin_42303568的博客 301

使用linux文件句柄恢复误删除的Oracle数据文件

测试环境:OEL+Oracle 11.2.0.1 首先查看当前的数据文件及数据文件状态: SQL> select file_id,tablespace_name,file_name,status from dba_data_files; FILE_ID TABLESPACE FILE_NAME...

dgn7151的博客 102

oracle 11误删除数据文件,oracle11g 数据文件误删恢复(无备份)

OS:Oracle Linux Server release 5.7DB:Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production首先创建yoon数据库SQL> create tablespace yoon datafile ‘/u01/oracle/oradata/yoon/yoon01.dbf...

weixin_31299075的博客 385

oracle的dba角色被删除_如何恢复,恢复被误删除的oracle数据文件(一)

在生产环境,总会发生数据库的数据文件被误删除的事情,如SA不懂得数据库,数据库的在线日志为redo01.log,还是cp备份后删除的,让人哭笑不得,数据文件命名为无在生产环境,总会发生数据库的数据文件被误删除的事情,如SA不懂得数据库,数据库的在线日志为redo01.log,还是cp备份后删除的,让人哭笑不得,数据文件命名为无dbf后缀等,都容易被误删除在操作系统层面被误rm的,如果及时发现,还是...

weixin_35245810的博客 518

linux oracle删除恢复数据恢复,Linux下Oracle误删除数据文件恢复操作

检查数据文件的位置如下:SQL> select name from v$datafile;NAME--------------------------------------------------------------------------------/u01/app/Oracle/oradata/marven/system01.dbf/u01/app/oracle/oradata/m...

weixin_35674932的博客 251

误删除数据文件,数据库还没有关闭

系统环境 RHEL5u4,Oracle11GR2 故障现象 数据文件被误删除 具体情况 接到反馈说,数据文件data20120512.dbf被误删除,需要恢复 数据库提示 ERROR at line 1: ORA-01116: error in opening database file 16 ORA-01110: data file 16: ‘/u01/app/oracle/

zhangweibh的专栏 879

linux 恢复家目录文件夹,Linux下误删除/home目录的恢复方法

通常安装Oracle数据库是按照官方文档的建议来创建和管理的数据库,这样也便于进行进行数据库的管理。今天早上,一朋友就出现这个问题,在客户那里,使用rm –rf ./home命令误删除了整个/home目录,当时他整个人都快要崩了,不知道该如何去恢复,没有任何思路。居然犯这么低级的错误:rm -rf这样的命令也敢用;哎,都是苦逼的DBA,这样的错误谁会没有犯过呢?所以,作为一名DBA,在执行任何的命...

weixin_42466868的博客 3010
上一篇: Oracle查询表空间使用情况(经典篇)
下一篇: Oracle分区索引--本地索引和全局索引比较(转)
cu10025
博客等级 码龄10年 1粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值