为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:8
【操作系统】:ky v10
【CPU】:ft 2000
【问题描述】*:请教专家,不小心将表空间的dbf数据文件删掉了,数据库重启后是mount状态,有什么办法能让数据库恢复正常?
优先选择用备份集来还原,还原步骤可以参考手册。
如果没有可用的备份,那可以考虑尝试以下方式来修复。
数据库已经重启过了,可以通过修改dm.ctl来临时修复,修复完成后尽快使用dmp或dts迁移至新库中。
使用dmctlctl工具进行修改,假如实例为/data/DAMENG/。
(1)cd /opt/dmdbms/bin
./dmctlcvt type=1 src=/data/DAMENG/dm.ctl dest=/data/dmctl.txt
将控制文件转换为txt。
(2)修改dmctl.txt文件中的参数,将有关于该表空间的信息全部注释掉
(3)将修改完成的txt文件转化成控制文件
cd /opt/dmdbms/bin
./dmctlcvt type=2 src=/data/dmctl.txt dest=/data/DAMENG/dm.ctl
(4)前台启动数据库观察启动情况以及是否SYSTEM IS READY的字样,删除表空间,如该表空间与用户绑定需要联级删除用户,避免元数据导致数据库宕机。
有备份可以用备份还原。
没有备份可以尝试上面说的办法,修改控制文件信息,清除对应的dbf信息
没重启前还可以测试下 内存中尝试找回
重启了,只能看有没有备份了、备份文件,导出的dmp文件都行,都没有那就没办法了