首页数据库oracle里delete误删除表数据能恢复吗

oracle里delete误删除表数据能恢复吗

时间2024-03-22 04:31:03发布访客分类数据库浏览1562
导读:这篇文章给大家分享的是“oracle里delete误删除表数据能恢复吗”,文中的讲解内容简单清晰,对大家学习和理解有一定的参考价值和帮助,有这方面学习需要的朋友,接下来就跟随小编一起学习一下“oracle里delete误删除表数据能恢复吗”...
这篇文章给大家分享的是“oracle里delete误删除表数据能恢复吗”,文中的讲解内容简单清晰,对大家学习和理解有一定的参考价值和帮助,有这方面学习需要的朋友,接下来就跟随小编一起学习一下“oracle里delete误删除表数据能恢复吗”吧。


本篇文章给大家带来了关于Oracle的相关知识,在使用oracle数据时,一不小心把table中的数据delete掉并且已经提交了,下面介绍关于oracle delete误删除表数据后如何恢复的相关资料,希望对大家有帮助。

根据时间进行恢复

此种方式需要我们大致知道执行delete语句的时间。

查询系统当前时间:select to_char(sysdate,‘yyyy-mm-dd hh24:mi:ss’) from dual;

假设在2022-04-02 16:27:11分钟,执行了删除语句
delete from demo ;

此时已经表中不能查询到数据了。我们知道delete执行的时间,往前推1分钟(delete执行时间之前都可以,越小越好,本例以1分钟为例),执行如下语句

select * from DEMO as of timestamp to_timestamp(‘2022-04-02 16:26:11',‘yyyy-mm-dd hh24:mi:ss');
    

可以看到虽然当前demo表中没有数据,但是可以查询到demo表前1分钟时候的数据。

恢复1:此时可以通过plsql工具的导出查询结果功能导出sql文件,然后在重新执行sql文件中的insert语句进行数据恢复。

恢复2:执行以下sql进行数据恢复:

flashback table DEMO to timestamp to_timestamp(‘2022-04-02 16:26:11',‘yyyy-mm-dd hh24:mi:ss');
    

如果报错ORA-08189:未启用行移动功能,不能闪回表

则执行:

alter table DEMO enable row movement;
    

添加表行移动功能后,在进行flashback语句进行恢复

如果报错: ORA-08194: 在实体化视图上不允许闪回表操作; 则通过下面介绍的新建临时表的方式进行恢复。

恢复3(新建临时表):

新建demo1表,插入需要恢复的数据

create table DEMO1 as select * from DEMO as of timestamp to_timestamp(‘2022-04-02 16:30:11',‘yyyy-mm-dd hh24:mi:ss');
    

将demo1表的数据恢复到demo表中

insert into DEMO select * from DEMO1 where not exists (select * from DEMO where DEMO.id=DEMO1.id);
    

恢复4(根据scn恢复):

查询当前的scn号

select current_scn from v$database;
    

将scn号减少若干,执行下语句,直到能查看到我们delete的数据为止

select * from DEMO as of scn 166937913;
    

通过合适的scn号,执行下sql语句进行数据恢复

flashback table DEMO to scn 166937913;
    



关于“oracle里delete误删除表数据能恢复吗”的内容就介绍到这,感谢各位的阅读,相信大家对oracle里delete误删除表数据能恢复吗已经有了进一步的了解。大家如果还想学习更多知识,欢迎关注网络,小编将为大家输出更多高质量的实用文章!

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

oracle

若转载请注明出处: oracle里delete误删除表数据能恢复吗
本文地址: https://pptw.com/jishu/650024.html
Oracle的序列介绍 SEQUENCE解析是什么? Oracle 12c里面的SQLPlus是如何操作使用的?

游客 回复需填写必要信息