注册
达梦表空间文件被删除后的恢复操作
专栏/技术分享/ 文章详情 /

达梦表空间文件被删除后的恢复操作

听觉盛宴 2023/12/08 1983 1 0
摘要

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、此时若不关闭数据库仍然可用建表等操作
image.png

LINUX 系统中被删除的文件,只要其句柄没有被关闭,可以在/proc//fd 中找
到其对应的文件副本。其中指打开该文件的进程 id。
5、通过ps查看数据库进程
ps -ef |grep dms
image.png
可用看到进程号为1997

6、到/proc//fd中找到被删除的文件
此处有被标记为(deleted)
image.png

7、通过CP复制到原位置
上面可用看到删除后的是文件14
cp ./14 /dm_data/DAMENG/TEST.DBF
若是通过root复制,不要忘记修改属组。

8、执行存过修复
SP_TABLESPACE_RECOVER('TEST');
image.png
修复完成。

Q:若是通过rm -rf 删除的呢?
image.png
在/proc//fd中仍然能找到被删除文件
image.png
仍然可用恢复。

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服