oracle误删除数据的恢复方法

53 阅读1分钟

转载大佬的 www.cnblogs.com/hqbhonker/p…

今天误操作删除了数据库的数据,百度查询得到上链接大佬的方法,成功恢复了数据

oracle误删除数据的恢复方法

1.delete误删除的解决方法
原理:

利用oracle提供的闪回方法,如果在删除数据后还没做大量的操作(只要保证被删除数据的块没被覆写),就可以利用闪回方式直接找回删除的数据
具体步骤为:

*确定删除数据的时间(在删除数据之前的时间就行,不过最好是删除数据的时间点)

*用以下语句找出删除的数据:select * from 表名 as of timestamp to_timestamp(‘删除时间点’,‘yyyy-mm-dd hh24:mi:ss’)

*把删除的数据重新插入原表:

 insert into 表名 (select * from 表名 as of timestamp to_timestamp('删除时间点','yyyy-mm-dd hh24:mi:ss'));注意要保证主键不重复。

如果表结构没有发生改变,还可以直接使用闪回整个表的方式来恢复数据。

具体步骤为:

表闪回要求用户必须要有flash any table权限

–开启行移动功能

alter table 表名 enable row movement

–恢复表数据

 flashback table 表名 to timestamp to_timestamp(删除时间点','yyyy-mm-dd hh24:mi:ss')

–关闭行移动功能 ( 千万别忘记 )

alter table 表名 disable row movement

使用截图
在这里插入图片描述