记惊魂一天——误删库+恢复-20201207(一)

OS: RHEL release 7.8(Maipo).
Oracle: 12C 12.1.0.2.0

情况描述:
今天块中午下班,检查一个测试库的磁盘空间,/oradata快满了,看到下面的目录有patches目录,里面是几个月前的PSU包没删除,占大约6G空间,所以打算删除patches此目录。/oradata下面不只有patches目录,还有backup, fra,archivelogs,redos,datafilea,flashback,spfile等目录及文件. 然后在/oradata下面执行了rm -rf * patches/的命令!——这是噩梦的开始!。。。
删除的太彻底了!数据文件/redo/归档/备份/spfile/controlfile都删了。。。

第一阶段:
向上级/领导说明此事,他有经验给了建议方案:
1、数据库不能down!不要close。如果close了就不能找回数据了。
2、ps -ef|grep dbw0, 查看pid进程id是多少:7945. 进程名:ora_dbw0_UHKA0101
3、然后cd /proc/7945/fd,然后ls,看到被delete的数据文件、控制文件都在里面在闪烁!然后复制这些被删除的文件回到源目录下面。redo的文件不在此目录下面,因为不是属于dbw0的进程。
需要ps -ef|grep lgwr,查看pid:7962,然后相同的方法cd /proc/7962/fd,然后复制这些被删除的文件回到源目录下面。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4、后面操作参考下面链接:
https://blog.51cto.com/newcourage/2177816?source=dra
“以下就是数据库文件的句柄显示信息,复制这些文件即可恢复那些被删除但尚未消失的数据文件。
③:复制文件恢复之后,创建了一个新的目录(保留原来的目录结构不动),随后通过 offline、
rename、 recover、 online 四个步骤恢复这些文件,将其加载到数据库中。
首先复制文件到新分配的目录空间。
cp /proc/14348/fd/19 /new_u02/oradata/cinms_user01.dbf

将相应的文件离线。
alter database datafile 8 offline;

通过更名(RENAME)的方式对文件进行重定向。
alter database rename file
‘/u02/oradata/cinms_user01.dbf’ to ’ /new_u02/oradata/cinms_user01.dbf’;

然后执行恢复。
recover datafile 8;

最后将文件 Online 加载。
alter database datafile 8 online;

注释:找到对应的进程,如何从大量的(/proc/<proc_id>/fd) fd 中找到需要的文件是个关键。在 Oracle 数据库
文件的第一个块(文件头块)上,存有数据文件号信息,只要找到这个文件号,就能和数据库建立起对应关系;”

第二阶段:
我按照上面方法copy了数据文件和控制文件,但等到copy redo的时候copy失败了,ls发现redo没有了!然后查看数据库进程以及状态:数据库close了!?数据库会自己关闭吗?redo没有了怎么恢复?问领导,他说没办法恢复了,只能看看数据库能不能open起来。。。。因为数据的版本很旧了,基本不会再用里面的数据了,所以数据文件损坏无法恢复影响不是很大,只要能open起来就避免重建数据库了。
1、startup数据库,找不到spfile,从另一个cpu和memory配置相同相近的TPS库scp过来,修改SID全局替换后,指定pfile来startup。在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

第三阶段:添加隐含参数强制开启数据库!
关键一步:添加隐含参数来启动数据库!这个参数_allow_resetlogs_corruption是true,则redo可以不一致,跳过检查,就可以open数据库!
在这里插入图片描述
在这里插入图片描述

参考下面链接:
http://www.dba-oracle.com/t_ora_01210_data_file_header_is_media_corrupt.htm
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

第四阶段:open后的操作
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值