重装系统oracle数据库恢复 Oracle中,如果用户误删了数据,有没有办法把数据恢复过来?

[更新]
·
·
分类:互联网
4605 阅读

重装系统oracle数据库恢复

Oracle中,如果用户误删了数据,有没有办法把数据恢复过来?

Oracle中,如果用户误删了数据,有没有办法把数据恢复过来?

一、故障描述:基于ORACLE 数据库环境的常见数据灾难
1、ORACLE数据库无法启动或无法正常工作。
2、ORACLE ASM存储破坏。
3、ORACLE数据文件丢失。
4、ORACLE数据文件部分损坏。t
5、ORACLE DUMP文件损坏。 tttttt
二、解决方案
◆检测tttt
1、检测是否存在硬件故障,如硬件故障,转硬件处理
2、以只读方式检测故障表现是否与用户描述相同
◆恢复
1、备份:以只读方式对故障存储做完整镜像(参考附录)
2、在备份中进行数据分析及恢复操作。
3、通常,恢复后的数据会暂存在另一个存储体上
◆验收
对恢复好的数据进行验证,确认其正确性。如确认,交费–gt移交原介质及已恢复数据 –gt出具发票(收据)及报告。
如无法认可数据恢复结果,交回原介质,不收服务费,可免费出具报告。
三、数据恢复的可能性
★ORACLE数据库无法启动或无法正常工作:
如果突发性的出现上述故障,通常可恢复性极高。从技术底层上看,如果SYSTEM表未损坏,数据较容易恢复;如果SYSTEM表损坏,数据需要人工核对表结构,恢复时较为耗时。
★ORACLE ASM存储破坏:
如ASM重置,或组成ASM的部分设备成员故障,出错后无大量新数据写入,数据通常可以很好的恢复。
★ORACLE数据文件丢失:
不论ORACLE数据文件是删除、格式化还是未知原因丢失,只要没有新的数据写入,不管是什么操作系统,都可以通过ORACLE内部的数据组织规则将数据文件恢复出来,但数据文件的名称可能需要人工核对。
★ORACLE数据文件部分损坏:
如ORACLE数据文件部分损坏(如覆盖),通过复杂的数据提取和重组,通常可以将未损坏部分的数据记录恢复出来,并可新建表追加进去,但会相当耗时。
★ORACLE DUMP文件损坏:
ORACLE DUMP文件损坏,将损坏部分去除,其余部分均可正常追加至数据表。
四、数据恢复时间
1TB以下的存储空间(不是要恢复的数据容量),通常2个工作日内可完成;1TB以上的随存储容量的增加,恢复周期通常也会增加。
数据表如果很大,提取数据、整理数据也会花费大量时间,具体时间需据具体情况而定。
[数据库数据恢复小贴士]
★针对软件故障,在数据丢失后,应尽可能减少对存储的操作,有时候,即使是开着机,什么都不做,也可能导致灾难进一步加剧。条件允许的话,最好损坏后,对磁盘或存储卷做完整备份
★针对硬件故障,在设备无法正常工作后,应尽可能少的加电,以避免设备的进一步损坏。
如何避免t
做好备份方案,尽可能避免单存储备份,如数据非常重要,可考虑异地备份。

oracle中,表被drop又被重建能还原吗?

这个问题不难,首先,你要知道,你删除的这张表是在系统表空间下还是非系统表空间下。如果是系统表空间下的表是不能还原的;如果是非系统表空间下的表,完全是可以找回来的。
针对这个问题,采用的技术是闪回删除。闪回的技术有很多种,比如闪回数据库、闪回表、闪回删除、闪回查询、闪回数据归档。
闪回删除,就是闪回drop,依赖的技术是回收站,oracle数据库也有回收站,和操作系统的回收站大同小异,只是此时它是数据库的一个数据库对象而已,默认的情况下数据库就是开启这个功能的。
如果你删除了这张非系统表空间下的表,首先把该表放到回收站中,然后你创建了一张同名的表,只需要执行以下操作就可以了。
flashback table 被删除的表的名字 to before drop rename to新名字;
这样表和数据就都找回来了,剩下的操作就不用我多说了吧!可能你会说,我一个普通用户有执行闪回删除的权限吗?需不需要找DBA帮忙,放心,一般的用户都有这个权限!
希望我的回答能帮助你!

给您提供建议如下:
(1)如果删除的时候没有指定purge参数,是可以从recycle直接恢复的。
注意:如果表太大或者间隔时间长,数据可能会被覆盖,从recycle恢复的方法就不太行了。
(2)如果开启闪回,可以执行闪回操作进行恢复。
(3)如果开启RMAN,基于时间点的不完全恢复也是可行的。
希望对您有所帮助!