linux平台通过lsof命令恢复被误删的oracle数据文件

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/killvoon/article/details/82493334

背景:测试环境suse12操作系统,开发人员误删了/home/oracle下面的数据文件

            oracle状态看起来一切正常,但数据文件已经被rm掉。

恢复方法:通过lsof命令找到被删除的数据文件,拷贝出来,重启数据库,一切顺利。若是不顺利,那就另说了(手动滑稽)

1、数据文件被删除,通过查找dbwr进程
wdapp-uat:~ # ps -ef|grep dbw
oracle    3317     1  0 Jul26 ?        00:01:04 ora_dbw0_ols

wdapp-uat:~ # lsof -p 3317
COMMAND    PID   USER   FD   TYPE DEVICE   SIZE/OFF    NODE NAME
ora_dbw0_ 3317 oracle  cwd    DIR  254,0       4096 1311824 /u01/app/oracle/product/12.2.0/db_1/dbs
ora_dbw0_ 3317 oracle  rtd    DIR  254,0       4096       2 /
ora_dbw0_ 3317 oracle  txt    REG  254,0  407952312 1599450 /u01/app/oracle/product/12.2.0/db_1/bin/oracle
ora_dbw0_ 3317 oracle  259uW  REG  254,0 5451030528 1979159 /home/oracle/data/OLS_DATA.dbf (deleted)
ora_dbw0_ 3317 oracle  260uW  REG  254,0 1625300992 2101248 /u01/app/oracle/oradata/OLS/datafile/o1_mf_sysaux_fkzf0zjv_.dbf
ora_dbw0_ 3317 oracle  261u   REG  254,0 1226842112 2101251 /u01/app/oracle/oradata/OLS/datafile/o1_mf_undotbs1_fkzf1rn4_.dbf
ora_dbw0_ 3317 oracle  262uW  REG  254,0  536879104 1979158 /home/oracle/data/OLS_IDX.dbf (deleted)

可以看到,有两个数据文件被标注为deleted
2、查看两个被删除文件的信息,拷贝该文件到相应目录下面

wdapp-uat:~ # ls -alh /proc/3317/fd/259
lrwx------ 1 oracle oinstall 64 Aug  2 10:00 /proc/3317/fd/259 -> /home/oracle/data/OLS_DATA.dbf (deleted)

wdapp-uat:~ # ls -alh /proc/3317/fd/262
lrwx------ 1 oracle oinstall 64 Aug  2 10:00 /proc/3317/fd/262 -> /home/oracle/data/OLS_IDX.dbf (deleted)
3、cp /proc/3317/fd/259 /home/oracle/data
   cp /proc/3317/fd/262 /home/oracle/data

   chown -R oracle:oinstall /home/oracle/

4、su - oracle
   cd /home/oracle/data
   mv 259 OLS_DATA.dbf
   mv 262 OLS_IDX.dbf
5、重启数据库
oracle@wdapp-uat:~/data> mv 259 OLS_DATA.dbf
oracle@wdapp-uat:~/data> mv 262 OLS_IDX.dbf
oracle@wdapp-uat:~/data> sqlplus / as sysdba

SQL*Plus: Release 12.2.0.1.0 Production on Thu Aug 2 10:16:04 2018

Copyright (c) 1982, 2016, Oracle.  All rights reserved.
Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.

Total System Global Area 1593835520 bytes
Fixed Size                  8621184 bytes
Variable Size            1056965504 bytes
Database Buffers          520093696 bytes
Redo Buffers                8155136 bytes
Database mounted.
Database opened.

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

测试环境,没做备份,没开归档,一旦出现误删等情况,只能自求多福了。

猜你喜欢

转载自blog.csdn.net/killvoon/article/details/82493334