概述

Oracle11g 闪回事务查询就是对过去某段时间内所完成的事务的查询和撤销,通过闪回事物分析,可以识别在一个特定的时间段内所发生的所有变化,也可以对数据库表进行事物级恢复。 前面提到可以审计一个事务到底做了什么,现在可以获得事务的历史操作进行撤销。


flashback transaction操作过程:

1、查询某段时间内的操作发生情况:

select id,name,versions _operation,versions_xid,versions_starttime from testversions between timestamp minvalue and maxvalue order by id;

2、 根据 XID 对 flashback _transaction_query 进行查询

select table _name,table_owner,undo_sql from flashback_transaction_query wherexid=‘„’

3、运行上面找出的 sql 语句,即可将以前删除的数据恢复回来。

Flashback Transaction Query 也是使用 UNDO 信息来实现。利用这个功能可以查看某个事务执行的所有变化,它需要访问 flashback _transaction_query 视图,这个视图的 XID 列代表事务 ID,利用这个 ID 可以区分特定事务发生的所有数据变化。


实例演示:

先开启附加日志

SQL> create table B(id int);Table created.SQL> insert into B values(1);1 row created.SQL> insert into B values(2);1 row created.SQL> insert into B values(3);1 row created.

查看视图,每个事务都对应相同的XID

SQL>select xid,operation,commit_scn,undo_sql from flashback_transaction_query where xid in (Select versions_xid from B versions between scn minvalue and maxvalue);

删除数据:

SQL> delete from B where id=3;1 row deleted.SQL> commit;Commit complete.

再次查看视图,每个事务都对应相同的XID

SQL>select xid,operation,commit_scn,undo_sql from flashback_transaction_query where xid in (Select versions_xid from scott.B versions between scn minvalue and maxvalue);

闪回事务查询可以将同一事务的所有撤销SQL列出,这是闪回查询做不到的,如有必要,管理员还能够执行对应一个事务的部分撤销SQL以一种破坏事务原子性的方式恢复一部分数据,如此行事正确与否完全取决于应用的逻辑。

后面会分享更多flashback方面的内容,感兴趣的朋友可以关注下!

vue请求数据完成后执行_生产库删除数据后怎样执行对应的undo sql来恢复数据?...相关推荐

  1. plsql 删除一直在执行_固态硬盘开启Trim后,删除数据究竟能不能恢复?

    固态硬盘其实是闪存存储硬盘系列的一个俗称(SSD),近些年闪存存储发展迅速,一些企业级的固态硬盘容量能够达到10T以上容量,在速度和存储密度上的优势逐渐盖过传统的机械硬盘. 那么固态硬盘删除数据后能不 ...

  2. fox pro删除单条数据_删库之后不要着急跑路,教你神不知鬼不觉找回数据

    在工作中,我们误删数据或者数据库,我们一定需要跑路吗?我看未必,程序员一定要学会自救,神不知鬼不觉的将数据找回. 在 mysql 数据库中,我们知道 binlog 日志记录了我们对数据库的所有操作,所 ...

  3. oracle trigger 延迟执行_一文详解Spring任务执行和调度

    一.概述 Spring框架分别使用TaskExecutor和TaskScheduler接口提供异步执行和任务调度的抽象.Spring还提供了这些接口的实现,这些接口支持线程池或将其委托给应用服务器环境 ...

  4. python数据库操作批量sql执行_利用Python如何批量修改数据库执行Sql文件

    利用Python如何批量修改数据库执行Sql文件 来源:中文源码网    浏览: 次    日期:2018年9月2日 [下载文档:  利用Python如何批量修改数据库执行Sql文件.txt ] (友 ...

  5. python binlog还原sql或者恢复数据

    github:https://github.com/danfengcao/binlog2sql gitee:https://gitee.com/ShiZan/binlog2sql 下载地址 该方法应用 ...

  6. 如何利用binlog还原sql或者恢复数据

    github:https://github.com/danfengcao/binlog2sql gitee:https://gitee.com/ShiZan/binlog2sql 该方法应用到的工具b ...

  7. u盘删除的文件怎么找回?分享5种方法恢复数据

    u盘小小一个,非常方便携带,能保存很多文件数据,很适合日常生活和工作中使用.但是在使用过程中,由于各种原因,我们有时会不小心把数据给删除了,或者把不需要的文件定期删除.这时会产生一个问题,u盘删除的文 ...

  8. mysql 20小时内_生产环境删除数据库,如何实现在1小时内快速恢复?

    可以使用mysql的延迟复制功能. 设置mysql 从库 延迟30分钟或者某个 1小时复制. 比如有人误操作的表,那么这个操作在延迟时间内,从库的数据并没有发生变化,可以用从库的数据进行快速恢复. 把 ...

  9. python引入文件并执行_文件操作和导入os模块执行文件和目录管理操作

    文件概念以及文本文件和二进制文件的区别 计算机的CPU如果想要访问保存在磁盘上的文件,第一步需要把磁盘上的文件数据加载到内存中.因为内存的读写速度要比磁盘的读写速度快很多. 计算机只能识别0101这种 ...

最新文章

  1. 天池NLP中文预训练模型赛来了!
  2. git clone 失败解决方法 --depth 1
  3. TFboy养成记 多层感知器 MLP
  4. 【Python】 Spyder
  5. Spring boot日志框架
  6. python3.7[列表] 索引切片
  7. 133. Clone Graph 克隆图
  8. 详解3D物体检测模型 SPG: Unsupervised Domain Adaptation for 3D Object Detection via Semantic Point Generation
  9. C++11 并发指南五(std::condition_variable 详解)
  10. BZOJ4358: permu(带撤销并查集 不删除莫队)
  11. Linux包含一个名称是()的调试程序,开发一个 Linux 调试器(九):处理变量
  12. 剑指 Offer 07. 重建二叉树(day02)
  13. linux 安装wordpress
  14. 学习【新版的】韦东山嵌入式_day01
  15. 原生Android用不了電信4g,给初中生准备的手机,在深圳地区用中国电信4G体验多亲Qin2 AI助手,开箱和使用体验...
  16. RFSoC应用笔记 - RF数据转换器 -15- API使用指南之Libmetal与结构体说明
  17. os 存储器的结构层次
  18. 使用pip出现报错:Could not find a version that satisfies the...No matching distribution distributio...
  19. Android 4.0 SDK新特性
  20. 一篇搞懂TCP、HTTP、Socket、Socket连接池

热门文章

  1. 高精度——A+B Problem(洛谷 P1601)
  2. 张小龙Linux微信,微信至今没有黑暗模式,原来是张小龙“全责”?
  3. java mvel_mvel java和脚本的融合 -- kkito的博客
  4. 深度解读MRS IoTDB时序数据库的整体架构设计与实现
  5. 【Python3网络爬虫开发实战】4.3-使用pyquery
  6. java map 缓存池_map端合并(分布式缓存)
  7. Vue深入学习—虚拟DOM和Diff算法
  8. java程序退出自动保存_你知道如何自动保存 Spring Boot 应用进程号吗
  9. Java简单记事本设计实验报告_java记事本实验报告
  10. linux 物理内存用完了_12张图解Linux内存管理,程序员内功修炼,看过都说懂了!...