oracle 误删除数据文件
说明:因操作失误在orcle备库清理归档日志时,把数据文件删除。
在oracle运行时,不会释放文件,所以立刻采用linux误删文件的方法恢复数据文件。
1.lsof查看误删文件占用情况,找出pid
[root@shanyouyou ~]# lsof |grep delete
oracle 6413 oracle 5u REG 253,1 0 1179659 /data/oracle/testdb_1.dbf(deleted)2.根据pid,找到对应的文件描述符。
cd /proc/6413/fd
ls -l
#显示内容
#lrwx------ 1 oracle oinstall 64 May 21 13:08 262 -> /data/oracle/testdb_1.dbf (deleted)3.以文件描述符复制文件到新的目录下,(如果文件很大,建议复制到其他硬盘下,等释放空间后,再恢复到原位)
cp 262 /data1/oracle/testdb_1.dbf4.确认数据文件已恢复,注意改为原用户和用户组:oracle
chown -R oracle.oinstall /data/oracle/testdb_1.dbf5.重启启动备库。
shutdown immediate;
startup6.注意:如果报错以下错误,检查文件的权限和属组是否正确
SQL> startup
ORACLE instance started.
Total System Global Area 4.0086E+10 bytes
Fixed Size 2261848 bytes
Variable Size 4429188264 bytes
Database Buffers 3.5568E+10 bytes
Redo Buffers 86405120 bytes
Database mounted.
ORA-10458: standby database requires recovery
ORA-01157: cannot identify/lock data file 4 - see DBWR trace file
ORA-01110: data file 4: '/data/oracle/testdb_1.dbf'
评论已关闭