1、删除表空间文件TEST.DBF
rm TEST.DBF
2、FIL_CHECK_INTERVAL参数用于指定多少时间间隔检查表空间数据文件,为0表示不检测。
select * from SYS."V$PARAMETER" a where a.NAME like 'FIL_CHECK_INTERVAL';
3、手动检测
SP_FILE_SYS_CHECK();
此时查看数据库日志文件可用看到如下报错:
2023-10-24 16:19:03.973 [ERROR] database P0000001997 T0000000000000049028 Can not Find File /dm_data/DAMENG/TEST.DBF
4、此时若不关闭数据库仍然可用建表等操作
LINUX 系统中被删除的文件,只要其句柄没有被关闭,可以在/proc/
到其对应的文件副本。其中
5、通过ps查看数据库进程
ps -ef |grep dms
可用看到进程号为1997
6、到/proc/
此处有被标记为(deleted)
7、通过CP复制到原位置
上面可用看到删除后的是文件14
cp ./14 /dm_data/DAMENG/TEST.DBF
若是通过root复制,不要忘记修改属组。
8、执行存过修复
SP_TABLESPACE_RECOVER('TEST');
修复完成。
Q:若是通过rm -rf 删除的呢?
在/proc/
仍然可用恢复。
文章
阅读量
获赞