数据库文件被误删的恢复

一、通过文件文件描述符(file descriptor)进行恢复(rm删除数据文件没备份)

 场景:  误操作删除数据文件tp10.dbf

    rm -rf /u01/app/oracle/oradata/bxdb/tp10.dbf 

   select ts#,file#,name,bytes,status from v$datafile;

   ps -ef |grep dbw |grep -v grep

   cd /proc/12308/fd

1、方法一 :在线恢复 

 cp /proc/13979/fd/264  /u01/app/oracle/oradata/ocp/newtp12.dbf
  alter database datafile 7 offline;
  alter database rename file '/u01/app/oracle/oradata/oca/tp12.dbf' to '/u01/app/oracle/oradata/ocp/newtp12.dbf';
  recover datafile 7;
  alter database datafile online;


2、方法二:离线恢复
   cp /proc/13979/fd/264  /u01/app/oracle/oradata/ocp/newtp12.dbf
    shutdown immediate;
 shutdown abort;
    startup 
    recover database;
 alter database open;


二、获得文件号

 1、方法一:bbed获得文件号

   set filename '/proc/13979/fd/264'
   set blocksize 8192
   set filename '/proc/13979/fd/264'
   p kcvfh      --在bbed中看位置
   p kcvfh.kcvfhrfn   --显示相对文件号信息(print)
   exit


2、方法二:通过od命令得文件号信息
    9i文件号的偏移量是280,再加上数据文件头上一个操作系统块8192,od跳过8472即可获得文件号
    od -j 8472  -t x1 262|head -1    --十六进制输出
    od -j 8472  -t d2 262|head -1  --十进制输出


    10g/11g文件号的偏移量是368,再加上数据文件头上一个操作系统块8192,od跳过8560即可获得文件号
    od -j 8560  -t x1 264|head -1   --十六进制输出
    od -j 8560  -t d2 264|head -1  --十进制输出





**********本博客所有内容均为原创,如有转载请注明作者和出处!!!**********
Name:    guoyJoe

QQ:        252803295

Email:    [email protected]

Blog:      http://blog.csdn.net/guoyJoe

ITPUB:   http://www.itpub.net/space-uid-28460966.html

OCM:     http://education.oracle.com/education/otn/YGuo.HTM
 _____________________________________________________________
加群验证问题:哪些SGA结构是必需的,哪些是可选的?否则拒绝申请!!!

答案在:http://blog.csdn.net/guoyjoe/article/details/8624392

Oracle@Paradise  总群:127149411

Oracle@Paradise No.1群:177089463(已满)

Oracle@Paradise No.2群:121341761

Oracle@Paradise No.3群:140856036



你可能感兴趣的:(删除数据,描述符,在线恢复)