Oracle数据误删找回的方法

  • 内容
  • 评论
  • 相关

今天帮客户直接在数据库删除数据。手一抖一不小心将其他数据给删除掉了。(别提当时心里那个急啊~ )

怎么办?被客户怼两句?No No No

听同事说,Oracle可以将删除的数据找回。然后根据同事的提示,就自行上网百度搜索了一通。方法很简单,就是利用Oracle的快照来快速找回刚刚被自己删除的数据:

我在这里找的是一个小时前的,所以就是 当前时间(sysdate)- 一个小时(1/24);如果要退回一天前,那就直接 sysdate-1 ,这样就是一天前的数据。

在我创建的临时表QUICK_TABLE_BKY_201805281037中,我找到了我刚刚不小心删除的数据啦。既然刚刚被我删除的数据找到了,那接下来该怎么做应该就不用我说了吧。

那这个时候有的人可能要问, 不小心删除表这个时候怎么办?不要急,不要慌。如果不小心删除表,在 user_recyclebin中找到最近操作过的表名称,然后用快照(只能用于10G及以上版本)就能快速找到啦:

这样就可以快速的找到被删除的t_user表啦 。

扩展一下快照的一些用法:

一、.FLASHBACK QUERY:恢复表数据

方法一: 闪回到15分钟前

这里可以使用DAY、SECOND、MONTH替换minute,例如:

 

方法二: 闪回到某个时间点

 

方法三: 闪回到两天前

 

二、FLASHBACK DROP:恢复被错误drop掉的表

方法一: 找回已被删除的表

 

方法二: 如果源表已经重建,可以使用rename to子句

 

三、FLASHBACK TABLE:恢复表到一个早期状态

首先要启用行迁移:

方法一: 闪回表到15分钟前

方法二: 闪回到某个时间点

 

评论

0条评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注