IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    rm -rf delete datafile recovery

    惜分飞发表于 2014-11-18 11:39:27
    love 0

    因为人员离职闹得不愉快,系统工程师离职后,由于公司未及时关闭其vpn,数据库服务器(Linux 6.5 Oracle 11.2.0.1)帐号未及时被修改,最后直接上去rm ORACLE_BASE给干掉,悲剧的是ORADATA目录也在里面,更加悲剧的是所有数据文件都在里面.也就是说数据库彻底被删除,而且没有任何备份.朋友咨询了我,让我给予支持.最后比较幸运,文件没有被覆盖,inode都还在,通过extundelete顺利恢复所有数据文件,控制文件,redo文件(extundelete恢复Linux被删除文件),数据库顺利打开,实现0丢失,算是一次完美的恢复

    [root@DB1 tmp]# tar xvf extundelete-0.2.4.tar 
    extundelete-0.2.4/
    extundelete-0.2.4/acinclude.m4
    extundelete-0.2.4/missing
    extundelete-0.2.4/autogen.sh
    extundelete-0.2.4/aclocal.m4
    extundelete-0.2.4/configure
    extundelete-0.2.4/LICENSE
    extundelete-0.2.4/README
    extundelete-0.2.4/install-sh
    extundelete-0.2.4/config.h.in
    extundelete-0.2.4/src/
    extundelete-0.2.4/src/extundelete.cc
    extundelete-0.2.4/src/block.h
    extundelete-0.2.4/src/kernel-jbd.h
    extundelete-0.2.4/src/insertionops.cc
    extundelete-0.2.4/src/block.c
    extundelete-0.2.4/src/cli.cc
    extundelete-0.2.4/src/extundelete-priv.h
    extundelete-0.2.4/src/extundelete.h
    extundelete-0.2.4/src/jfs_compat.h
    extundelete-0.2.4/src/Makefile.in
    extundelete-0.2.4/src/Makefile.am
    extundelete-0.2.4/configure.ac
    extundelete-0.2.4/depcomp
    extundelete-0.2.4/Makefile.in
    extundelete-0.2.4/Makefile.am
    [root@DB1 tmp]# cd extundelete-0.2.4
    [root@DB1 extundelete-0.2.4]# ./configure 
    Configuring extundelete 0.2.4
    Writing generated files to disk
    [root@DB1 extundelete-0.2.4]# make && make install
    make -s all-recursive
    Making all in src
    Making install in src
      /usr/bin/install -c extundelete '/usr/local/bin'
    [root@DB1 extundelete-0.2.4]# df -h
    Filesystem      Size  Used Avail Use% Mounted on
    /dev/sda3       244G   11G  221G   5% /
    tmpfs            16G   72K   16G   1% /dev/shm
    /dev/sda1       190M   62M  119M  35% /boot
    /dev/sdb1       2.0T   71M  1.9T   1% /home
    [root@DB1 extundelete-0.2.4]# umount /dev/sdb1
    umount: /home: device is busy.
            (In some cases useful info about processes that use
             the device is found by lsof(8) or fuser(1))
    [root@DB1 extundelete-0.2.4]# fuser -m -u /home
    /home:                3914c(oracle)  8372c(oracle)
    [root@DB1 extundelete-0.2.4]# kill -9 3914
    [root@DB1 extundelete-0.2.4]# fuser -m -u /home
    /home:                8372c(oracle)
    [root@DB1 extundelete-0.2.4]# kill -9 8372
    [root@DB1 extundelete-0.2.4]# fuser -m -u /home
    [root@DB1 extundelete-0.2.4]# umount /dev/sdb1
    [root@DB1 extundelete-0.2.4]# df -h
    Filesystem      Size  Used Avail Use% Mounted on
    /dev/sda3       244G   11G  221G   5% /
    tmpfs            16G   72K   16G   1% /dev/shm
    /dev/sda1       190M   62M  119M  35% /boot
    [root@DB1 extundelete-0.2.4]# extundelete /dev/sdb1 --restore-all
    NOTICE: Extended attributes are not restored.
    Loading filesystem metadata ... 16384 groups loaded.
    Loading journal descriptors ... 26542 descriptors loaded.
    Searching for recoverable inodes in directory / ... 
    18896 recoverable inodes found.
    Looking through the directory structure for deleted files ... 
    2 recoverable inodes still lost.
    Unable to restore inode 43778050 (file.43778050): Space has been reallocated.
    [root@DB1 extundelete-0.2.4]# ls
    acinclude.m4  autogen.sh  config.h.in  config.status  configure.ac  install-sh  Makefile     Makefile.in 
    aclocal.m4    config.h    config.log   configure      depcomp       LICENSE     Makefile.am  missing    
    [root@DB1 extundelete-0.2.4]# cd RECOVERED_FILES/
    [root@DB1 RECOVERED_FILES]# ls
    app  file.43778051  oracle  oraInventory
    [root@DB1 RECOVERED_FILES]# cd app
    [root@DB1 app]# ls
    admin  cfgtoollogs  diag  oracle  oradata  orcl  ORCL
    [root@DB1 app]# cd oradata
    [root@DB1 oradata]# ls
    orcl
    [root@DB1 oradata]# cd orcl
    [root@DB1 orcl]# ls
    control01.ctl  redo01.log  redo02.log  redo03.log  sysaux01.dbf  system01.dbf  undotbs01.dbf  users01.dbf
    [root@DB1 orcl]# ls -ltr
    total 2908776
    -rw-r--r--. 1 root root  734011392 Nov 18 02:06 system01.dbf
    -rw-r--r--. 1 root root 1069555712 Nov 18 02:06 sysaux01.dbf
    -rw-r--r--. 1 root root  120594432 Nov 18 02:06 undotbs01.dbf
    -rw-r--r--. 1 root root  887365632 Nov 18 02:06 users01.dbf
    -rw-r--r--. 1 root root    9748480 Nov 18 02:06 control01.ctl
    -rw-r--r--. 1 root root   52429312 Nov 18 02:06 redo01.log
    -rw-r--r--. 1 root root   52429312 Nov 18 02:06 redo02.log
    -rw-r--r--. 1 root root   52429312 Nov 18 02:06 redo03.log
    [root@DB1 orcl]# 
    

    再次提醒各位:数据库备份重于一切,防天灾的同时还要防人灾,也希望圈子里面以后不要听到类似故障.

    • extundelete恢复Linux被删除文件
    • Heartbeat安装及简单配置
    • gzexe加密shell脚本
    • 安装ORACLE db /tmp空间不足解决办法
    • linux常用命令
    • DRBD安装配置说明
    • OLR相关维护
    • 使用PXE刷XD


沪ICP备19023445号-2号
友情链接