因為人員離職鬧得不愉快,系統工程師離職後,由於公司未及時關閉其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]# |
再次提醒各位:Database Backup重於一切,防天災的同時還要防人災,也希望圈子裡面以後不要聽到類似故障.
原文來自:http://www.xifenfei.com/5640.html