此文章我们演示误删表空间并恢复找回数据。此方法可以在没有数据库文件没有备份的情况下,恢复误删除的数据文件。
前提条件:但是有时间限制,而且不能重启服务器和数据库服务器,而且关键表空间不能删除。
达梦官方手册提供的恢复方法如下:
LINUX 系统中被删除的文件,只要其句柄没有被关闭,可以在/proc/<pid>/fd 中找到其对应的文件副本。其中<pid>指打开该文件的进程 id。利用该方法,结合 OS 命令,DM 提供失效文件的恢复方案如下:
1、 调用系统过程 SP_TABLESPACE_PREPARE_RECOVER(tablespace_name)准备进行恢复;
2、 如果使用过程中 DM 报错表空间数据文件被删除,通过操作系统的 ps 命令找到当前dmserver 的 PID:ps –ef|grep dmserver;
3、 使用操作系统 ls 命令查看被删除文件对应的副本:ls /proc/<PID>/fd–l,会发现被删除的文件后有(deleted)字样;
4、 使用操作系统的 cp 命令将文件复制到原位置:cp bak_fildata_file_path_dir;
5、 复制成功后,调用系统过程 SP_TABLESPACE_RECOVER(ts_name)完成表空间失效文件的恢复。
注意,要保证数据文件正确修复,需要保证在 SP_TABLESPACE_PREPARE_RECOVER后进行数据文件的复制。
dmdba@dmdsc01:~/dmdbms/bin$ ./disql sysdba/SYSDBA
一、环境准备
服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 28.147(ms)
di
如果觉得《达梦数据库(DM8)误删除表空间数据文件恢复》对你有帮助,请点赞、收藏,并留下你的观点哦!