OS上误删dbf文件,未宕机情况下的应急恢复!宕机后则无法恢复!_dbfos-程序员宅基地

技术标签: oracle  故障  

模拟故障:

说明:本故障处理必须在删除数据文件短时间内进行操作,长时间的话数据库会检测到checkpoint或切换日志然后数据库宕机。然后就无法恢复了。

==================================

查看当前用户下所有表的行数统计

可以先

create view tbnameas select table_name tbname from user_tables;

然后创建过程:

DECLARE

  CURSOR c1is select tbname from tbname;

 V_TABLE_NAME tbname.tbname%TYPE;

  V_CNTnumber;

  V_SQLvarchar2(2000);

BEGIN

  FORV_TABLE_NAME in c1 loop

    V_SQL := 'selectcount(*) from ' || V_TABLE_NAME.tbname;

    execute immediateV_SQL into V_CNT;

    dbms_output.put_line( V_TABLE_NAME.tbname   || ',' ||   V_CNT);

  end loop;

end;

 

======================================

 

1、数据库运行过程中删除用户下的dbf

[root@dg1 qy_dg1]#ll 

total 4688944

-rw-r----- 1oracle dba   10043392 Feb  9 19:10 control01.ctl

-rw-r----- 1oracle dba   10493952 Feb  9 19:09 wxk02.DBF

-rw-r----- 1oracle dba   52436992 Feb  9 17:45 wxk03.dbf

-rw-r----- 1oracle dba   52436992 Feb  9 19:09 wxk.dbf

-rw-r----- 1oracle dba   52436992 Dec 26 09:40 wxk_temp.dbf

[root@dg1 qy_dg1]#rm -rf wxk.dbf 

 

2、查看dbw进程

[oracle@dg1 ~]$ ps-ef | grep dbw | grep -v grep

oracle    1912      1  0 11:49 ?        00:00:06ora_dbw0_dg1

 

3、在/proc/进程号/fd 下  ll 查看

[oracle@dg1 ~]$ cd/proc/1912/fd

[oracle@dg1 fd]$ll 

total 0

lr-x------ 1oracle dba 64 Feb  9 17:49 0 -> /dev/null

l-wx------ 1oracle dba 64 Feb  9 17:49 1 -> /dev/null

lrwx------ 1oracle dba 64 Feb  9 17:49 10 ->/oracle/app/oracle/product/11.2.0/dbhome_4/dbs/lkDG1

lr-x------ 1oracle dba 64 Feb  9 17:49 11 ->/oracle/app/oracle/product/11.2.0/dbhome_4/rdbms/mesg/oraus.msb

l-wx------ 1oracle dba 64 Feb  9 17:49 2 -> /dev/null

lrwx------ 1oracle dba 64 Feb  9 17:49 256 ->/oracle/app/oradata/qy_dg1/control01.ctl

lrwx------ 1oracle dba 64 Feb  9 17:49 257 ->/oracle/app/oradata/qy_dg1/control02.ctl

lrwx------ 1oracle dba 64 Feb  9 17:49 258 -> /oracle/app/oradata/qy_dg1/system01.dbf

lrwx------ 1oracle dba 64 Feb  9 17:49 259 ->/oracle/app/oradata/qy_dg1/sysaux01.dbf

lrwx------ 1oracle dba 64 Feb  9 17:49 260 ->/oracle/app/oradata/qy_dg1/undotbs01.dbf

lrwx------ 1oracle dba 64 Feb  9 17:49 261 -> /oracle/app/oradata/qy_dg1/users01.dbf

lrwx------ 1oracle dba 64 Feb  9 17:49 262 -> /oracle/app/oradata/qy_dg1/rman01.dbf

lrwx------ 1 oracledba 64 Feb  9 17:49 263 -> /oracle/app/oradata/qy_dg1/wxk.dbf (deleted)(这条会闪烁)

lrwx------ 1oracle dba 64 Feb  9 17:49 264 -> /oracle/app/oradata/qy_dg1/dsg.dbf

lrwx------ 1oracle dba 64 Feb  9 17:49 265 -> /oracle/app/oradata/qy_dg1/test01.dbf

lrwx------ 1oracle dba 64 Feb  9 17:49 266 -> /oracle/app/oradata/qy_dg1/wxk02.DBF

lrwx------ 1oracle dba 64 Feb  9 17:49 267 -> /oracle/app/oradata/qy_dg1/TAB_STS_BASIC.dbf

lrwx------ 1oracle dba 64 Feb  9 17:49 268 -> /oracle/app/oradata/qy_dg1/wxk03.dbf

lrwx------ 1oracle dba 64 Feb  9 17:49 269 -> /oracle/app/oradata/qy_dg1/SDE.DBF

lrwx------ 1oracle dba 64 Feb  9 17:49 270 -> /oracle/app/oradata/qy_dg1/temp01.dbf

lrwx------ 1oracle dba 64 Feb  9 17:49 271 ->/oracle/app/oradata/qy_dg1/wxk_temp.dbf

lrwx------ 1oracle dba 64 Feb  9 17:49 272 ->/oracle/app/oradata/qy_dg1/dsg_temp.dbf

lr-x------ 1oracle dba 64 Feb  9 17:49 3 -> /dev/null

lr-x------ 1oracle dba 64 Feb  9 17:49 4 -> /dev/null

lr-x------ 1oracle dba 64 Feb  9 17:49 5 -> /dev/null

lr-x------ 1oracle dba 64 Feb  9 17:49 6 ->/oracle/app/oracle/product/11.2.0/dbhome_4/rdbms/mesg/oraus.msb

lr-x------ 1oracle dba 64 Feb  9 17:49 7 -> /proc/1912/fd

lr-x------ 1oracle dba 64 Feb  9 17:49 8 -> /dev/zero

lrwx------ 1oracle dba 64 Feb  9 17:49 9 ->/oracle/app/oracle/product/11.2.0/dbhome_4/dbs/hc_dg1.dat

 

4、拷贝这个文件出来到数据库文件路径下

[oracle@dg1 fd]$cp 263 /oracle/app/oradata/qy_dg1/newwxk.dbf

 

5、在数据库上查看数据库文件

SQL> selectname,file#,status from v$datafile;

NAME                                                 FILE# STATUS

------------------------------------------------------------ -------

/oracle/app/oradata/qy_dg1/system01.dbf                    1 SYSTEM

/oracle/app/oradata/qy_dg1/sysaux01.dbf                    2 ONLINE

/oracle/app/oradata/qy_dg1/undotbs01.dbf                   3 ONLINE

/oracle/app/oradata/qy_dg1/users01.dbf                     4ONLINE

/oracle/app/oradata/qy_dg1/rman01.dbf                      5ONLINE

/oracle/app/oradata/qy_dg1/wxk.dbf                        6 ONLINE

/oracle/app/oradata/qy_dg1/dsg.dbf                        7 ONLINE

/oracle/app/oradata/qy_dg1/test01.dbf                      8ONLINE

/oracle/app/oradata/qy_dg1/wxk02.DBF                      9 ONLINE

/oracle/app/oradata/qy_dg1/TAB_STS_BASIC.dbf              10 ONLINE

/oracle/app/oradata/qy_dg1/wxk03.dbf                      11ONLINE

/oracle/app/oradata/qy_dg1/SDE.DBF                       12 ONLINE

12 rows selected.

 

在这一步中,可以用最上面的存储过程查看缺了哪些表,但是缺少的表在数据库中暂时正常工作。

 

6、进行表空间文件处理

SQL> alterdatabase datafile 6 offline;          #6号文件offline

 

Database altered.

 

SQL> alterdatabase rename file '/oracle/app/oradata/qy_dg1/wxk.dbf' to'/oracle/app/oradata/qy_dg1/newwxk.dbf';       #对原表空间文件进行重命名

 

Database altered.

 

SQL> recoverdatafile 6;                         #介质恢复6号文件

Media recoverycomplete.

SQL> alterdatabase datafile 6 online;      #6号文件online

 

Database altered.

在线恢复完成

 

离线恢复差不多,都要先在数据库未停之前将  /proc/进程/fd 文件拷贝出来,一旦数据库关闭后,就没了。

因为dbw 进程没了,/proc/里面的文件也没了。


ps:http://www.bbsmax.com/A/GBJrZB2WJ0/  也可以参考这篇文档

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/ggwxk1990/article/details/77427513

智能推荐

ICMP 协议_qt实现icmp协议-程序员宅基地

文章浏览阅读547次。首先,向目的服务器上执行ping命令,主机会构建一个 ICMP 回显请求消息数据包(类型是8,代码是0),在这个回显请求数据包中,除了类型和代码字段,还被追加了标识符和序号字段。所以在 IP 数据包中如果协议类型字段的值是 1 的话,就表示 IP 数据是 ICMP 报文。当10.0.0.1送到 回显请求数据包后,10.0.0.3就会向发送方10.0.0.1发送回显应答(类型是0,代码是0),这个 ICMP 回显应答数据包在 IP 层来看,与被送来的回显请求数据包基本上一样。ICMP协议的类型分为两大类,_qt实现icmp协议

为什么谷歌浏览器翻译网页没反应?一分钟解决:谷歌浏览器无法翻译此网页问题_谷歌浏览器内置翻译器不能翻译-程序员宅基地

文章浏览阅读660次,点赞4次,收藏4次。谷歌浏览器对于一些小伙伴来说,是非常有帮助的一款浏览器,大家喜欢使用该浏览器进行内容的搜索,有些时候需要访问有些英文网页,那么就需要将英文网页进行翻译成中文,但是打开翻译之后,发现提示无法翻译此网页的情况,那么应该怎么解决呢?下面一起来看看吧!_谷歌浏览器内置翻译器不能翻译

初识C语言(二)-程序员宅基地

文章浏览阅读138次。初识C语言

Linux系统基础命令与帮助使用_linux的长用命令是直接与机架cpu-程序员宅基地

文章浏览阅读79次。2019年1月2-6号 对应章节老王亲讲:1、马哥教育教学总监-老王亲讲Linux基础入门2、教学总监老王亲讲-Linux基础命令与Linux帮助使用服务器类型:刀片、塔式、机架式常见服务器CPU:xeon 至强机柜1u=44.45mm存储网络类型:DAS直接连接存储、NAS网络连接存储、SAN存储区域网络ABI:与OS之间的接口 API:与库之间的接口Linux版本:deb..._linux的长用命令是直接与机架cpu

从原理到实践:音视频编码与解码技术解析_音视频编解码-程序员宅基地

文章浏览阅读1.7k次,点赞2次,收藏9次。本项目的目标是深入探索音视频编码与解码技术的原理与实践,通过实现一个音视频编码与解码系统,加深对该领域的理解,并掌握相关的软件开发和硬件设计技术。可以使用适当的视频输入设备进行视频数据的采集,并对采集到的视频数据进行预处理,例如图像增强、分辨率调整等。硬件平台的选择将直接影响系统的性能和资源消耗。在实验3中,我们使用了不同的视频编码算法对采集到的视频数据进行编码,并计算了编码后的码流大小和图像质量指标。在实验1中,我们使用了不同的音频编码算法对采集到的音频数据进行编码,并计算了编码后的码流大小和音质指标。_音视频编解码

orcle plsql 列类型 BLOB与CLOB的互转,RAW_blob转clob-程序员宅基地

文章浏览阅读3.5k次。2011年记 目的:遇到这种情况,mysql to oracle时 text类型转到oracle自动变为BLOB,但这些字段只需要CLOB.所以打算把BLOB转为CLOB。(在sqlplu或plsql中完成) 解决办法例:表gw_gift 字段description BLOB1、增加字段description1 CLOB2、把BLOB列数据写入CLOBupdate gw_gift p set p...._blob转clob

随便推点

cipher java 长度不变_RSA加解密的java实现(及中途的各种异常情况分析)-程序员宅基地

文章浏览阅读1.2k次。RSA加密算法是一种非对称的加密算法,主要包括以下知识点:1、密钥对的获取:主要涉及到两个参数:秘钥格式、秘钥长度(1)常见秘钥格式:PKCS8(java适用)、PKCS1(其他),如果不是java平台生成的秘钥,有可能报以下错误:java.security.InvalidKeyException: invalid key format //秘钥格式不合法(2)秘钥长度:1024、2048(越长越..._javax.crypto.badpaddingexception: message is larger than modulus

电源模块自动测试系统| 电源冷热冲击测试方法是什么?-程序员宅基地

文章浏览阅读139次。电源冷热冲击测试是指将被测品在极端热、冷环境间反复转移,模拟被测品在剧烈环境变化下的变化情况,用来评估电源的耐热性和耐寒性,进而评估电气设备的性能和稳定性。

web页面调用海康摄像头_js调用海康摄像头视频-程序员宅基地

文章浏览阅读4.5k次,点赞2次,收藏4次。<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <script src="./jquery-1.12.4.min.js._js调用海康摄像头视频

深圳大学本科毕业论文答辩PPT模板_深圳大学答辩ppt模板-程序员宅基地

文章浏览阅读701次。模板介绍精美PPT模板设计,深圳大学本科毕业论文答辩PPT模板。一套高校PPT幻灯片模板,内含灰色,红色多种配色,精美风格设计,动态播放效果,精美实用。一份设计精美的PPT模板,可以让你在汇报演讲时脱颖而出。希望下面这份精美的PPT模板能给你带来帮助,温馨提示:本资源使用PPT或PPTX等格式,请安装并使用Office或WPS软件打开。模板信息模板编号:P95164用途:高校PPT。模板格式:pptx格式(可随意下载编辑)页数:27页大小:10MB比例:16:9编辑软件:wp_深圳大学答辩ppt模板

为类创建自定义调试信息,让你的调试更加方便快捷-程序员宅基地

文章浏览阅读206次。我们在应用程序中使用类一组类,你想在调试器中快速查看类中的值。默认情况下调试器不会展示自定义类的信息。此时我们可以向类添加一个DebuggerDisplay的特性。此时调试器就会你想要显示的信息。如下 [DebuggerDisplay("User Full Name={Id} {Name} {Age}")] public class User {..._怎么在sys的class目录生成调试信息

小米路由器r3gv2/r4a Lean的OpenWrt固件_openwrt-ramips-mt7621-xiaomi_r4a-squashfs-sysupgra-程序员宅基地

文章浏览阅读2.3w次,点赞4次,收藏16次。小米路由器r3gv2这是一款运营商定制的小米千兆路由器,是r3g(128M+256M+USB)的阉割版,闪存16M,内存128M,处理器是MediaTek MT7621,这个配置勉强可以玩一玩,闲鱼上也有很多,性价比比较高。进入路由器终端自己刷固件的话,首先就是要打开路由器的ssh或者telnet,小米早年的路由器官方都有开启ssh的教程,而这款就需要自己想办法了。Root shell exploit for several Xiaomi routers: 4A Gigabit, 4A 100M,_openwrt-ramips-mt7621-xiaomi_r4a-squashfs-sysupgrade