oracle中commit之后进行数据回滚的方法

 更新时间:2021年12月30日 16:14:46   作者:蓝涩街灯  
这篇文章主要介绍了oracle中commit之后如何进行数据回滚,本文给大家分享两种方法,每种方法都给大家介绍的比较详细,需要的朋友可以参考下

commit之后

第一种:

记住大概的时间,获取前大概时间的数据。

select * from Test as of timestamp to_timestamp('2021-12-08 09:30:56','yyyy-mm-dd hh24:mi:ss');

上面的代码就可以查看你要恢复的时间点的记录,看看是不是有你想要的刚刚提交的DML相关记录。

能看到,剩下的就简单了,可以把现在表中的数据备份到一个临时表,然后把记录插进去原表就行了

不要用truncate删除,不然你就回不去了,到时候你就又要哭了。

delete from Test;

insert into Test select * from Test as of timestamp to_timestamp('2021-12-08 09:30:56','yyyy-mm-dd hh24:mi:ss');
commit;

第二种:

Oracle在9i版本的时候引入了闪回技术,在Oracle 10g已经全面提供了闪回功能,主要提供了快速简单恢复数据库误操作的数据的恢复方法,而不用从逻辑备份或物理备份中恢复过来。

如果多次commit数据后,那可不可以闪回呢?貌似不可以。闪回只能暂存最近一次的数据操作。
闪回执行步骤: 

  1.查询最近更新数据之前的数据(以便确定是不是Commit之前的数据)

select * from Test as of timestamp to_timestamp('2021-12-08 08:00:00', 'yyyy-mm-dd hh24:mi:ss');

  其中Test为被误操作的表,'2021-12-08 08:00:00'表示上次更新数据前的时间,

  2.闪回操作前启用行移动功能(不启用不可以闪回)

alter table Test enable row movement;

  其中Test表示被误操作的表 

  3.执行闪回语句:

flashback table Test to timestamp TO_TIMESTAMP('20211208 15:10:00','YYYYMMDD HH24:MI:SS');

  这样被误操作的数据就可以“找”回来了。哈哈~

注:方法来源于网络整理,请谨慎操作!!!修改数据前养成好习惯,手动备份下数据!

到此这篇关于oracle中commit之后如何进行回滚的文章就介绍到这了,更多相关oracle中commit之后如何进行回滚内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 解决Oracle19c ORA-00904:“WMSYS“.“WM_CONCAT“:标识符无效问题

    解决Oracle19c ORA-00904:“WMSYS“.“WM_CONCAT“:标识符无效问题

    这篇文章主要介绍了解决Oracle19c ORA-00904:“WMSYS“.“WM_CONCAT“:标识符无效问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-07-07
  • Oracle查询表占用的空间(表大小)的3种方法

    Oracle查询表占用的空间(表大小)的3种方法

    这篇文章主要给大家介绍了关于Oracle查询表占用的空间(表大小)的3种方法,表空间是oracle数据库中最大的逻辑单位与存储空间单位,数据库系统通过表空间为数据库对象分配空间,需要的朋友可以参考下
    2023-10-10
  • Oracle报错:ORA-28001:口令已失效解决办法

    Oracle报错:ORA-28001:口令已失效解决办法

    最近在工作中遇到了一个问题,错误是Oracle报错ORA-28001:口令已失效,下面这篇文章主要给大家介绍了关于Oracle报错:ORA-28001:口令已失效的解决办法,需要的朋友可以参考下
    2023-04-04
  • oracle安装出现乱码等相关问题

    oracle安装出现乱码等相关问题

    oracle安装过程中出现乱码等一系列相关问题,本文将介绍如何解决,需要了解的朋友可以参考下
    2012-11-11
  • 解决Oracle安装遇到Enterprise Manager配置失败问题

    解决Oracle安装遇到Enterprise Manager配置失败问题

    这篇文章主要介绍了Oracle安装遇到Enterprise Manager配置失败问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12
  • Oracle Database 23c新特性之关联更新和删除示例详解

    Oracle Database 23c新特性之关联更新和删除示例详解

    这篇文章主要介绍了Oracle Database 23c新特性之关联更新和删除的相关资料,Oracle database 23c开始支持在UPDATE和DELETE语句中使用JOIN连接,获取更新和删除的数据源,本文结合实例代码给大家介绍的非常详细,需要的朋友可以参考下
    2023-06-06
  • Oracle中的索引讲解

    Oracle中的索引讲解

    这篇文章介绍了Oracle中的索引,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-05-05
  • oracle表被锁定的完美解决方法

    oracle表被锁定的完美解决方法

    ora-00031:session marked for kill处理oracle中杀不掉的锁一些ORACLE中的进程被杀掉后,状态被置为”killed”,但是锁定的资源很长时间不释放,有时实在没办法,只好重启数据库。现在小编给大家分享另外一种oracle表被锁定的解决方法,需要的的朋友参考下吧
    2017-07-07
  • 修改计算机名或IP后Oracle10g服务无法启动的解决方法

    修改计算机名或IP后Oracle10g服务无法启动的解决方法

    修改计算机名或IP后Oracle10g无法启动服务即windows服务中有一项oracle服务启动不了,报错,下面是具体的解决方法
    2014-01-01
  • Oracle LogMiner的使用实例代码

    Oracle LogMiner的使用实例代码

    这篇文章主要给大家分享了关于Oracle LogMiner的使用实例代码,文中通过示例代码介绍了关于查询当前日志组、业务用户插入操作、归档日志切换、业务用户插入操作以及归档日志切换等等的相关功能,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-07-07

最新评论