今天同步两个表的数据,表存在自身关联关系。因没有发现被同步表已做修改(新增了若干条数据,这些数据间存在父子关系),导致这些新增的数据被删除了。

于是想以下方式恢复:

alter table tablename enable row movement;--启动表的row movement特性
flashback table tablename to timestamp to_timestamp('2017-10-25 09:30:00','yyyy-mm-dd hh24:mi:ss');--做闪回操作,闪回到删除操作前的时间,恢复数据

然后执行第二行时,执行失败,原因是闪回操作在一个事务中,之前被删除数据间的父子关系必须是先有父记录,再恢复子记录,因此至少需要两次闪回。此时必须知道之前删除数据的准确时间。此处利用Oracle提供的系统视图——v$sql 或 v$sqlarea,查询删除语句的执行时间:

select * from v$sqlarea t where t.SQL_TEXT like 'DELETE FROM TABLENAME T WHERE ID%' order by t.LAST_ACTIVE_TIME desc;--like的内容区分大小写

查询到结果[复制出 SQL_TEXT 列和 LAST_ACTIVE_TIME 列]:

DELETE FROM SECURITY_MODULE T WHERE ID = '402899955f28120f015f284e2a6b01b2'   2017-10-25 9:53:39
DELETE FROM SECURITY_MODULE T WHERE ID = '402899955f28120f015f285d55d701b7'   2017-10-25 9:53:35
DELETE FROM SECURITY_MODULE T WHERE ID = '402899955f28120f015f2853c88701b3'   2017-10-25 9:53:35
DELETE FROM SECURITY_MODULE T WHERE ID = '402899955f28120f015f285c983401b4'   2017-10-25 9:53:35
DELETE FROM SECURITY_MODULE T WHERE ID = '402899955f28120f015f285d9c6501b8'   2017-10-25 9:53:35
DELETE FROM SECURITY_MODULE T WHERE ID = '402899955f28120f015f285d009301b6'   2017-10-25 9:53:35
DELETE FROM SECURITY_MODULE T WHERE ID = '402899955f28120f015f285ccc1501b5'    2017-10-25 9:53:35
DELETE FROM SECURITY_MODULE T WHERE ID = '402899955f28120f015f2838d52d01ad'   2017-10-25 9:53:34

结果刚好是之前的删除语句,根据LAST_ACTIVE_TIME,最后执行的是第一条,各数据的先后关系确定。接着做闪回操作,设置闪回时间为:2017-10-25 9:53:39,

第二次设置为:2017-10-25 9:53:34,数据顺利恢复。

转载于:https://www.cnblogs.com/wuyangguang/p/7729102.html

恢复Oracle误删数据一点小记相关推荐

  1. oracle误删数据和误删表的恢复方法

    之前在操作数据的时候,我在思考如何编写SQL,但是不小心按下了F8执行了drop语句,不小心删除了表,不过之后被我恢复了,但是之后我又不小心删错了表数据,虽然很快恢复了,但是我也找了几篇博客对比,虽然 ...

  2. oracle 误删数据找回,关于oracle找回误删数据

    对于一个开发而言,在项目即将上线进行上线前测试阶段,这个过程往往会出现一些bug,那么我们一般就会在客户现场去直接解决这些问题.那么客户现场的机器上面我们可能会连接很多的数据库,包括客户生产数据库.有 ...

  3. oracle 从dbf恢复,oracle 误删 dbf 恢复

    当Oracle数据文件被误删除之后的处理办法!! 1.关闭数据库: sqlplus "/as sysdba"; sqlplus>shutdown abort; 2.装载数据库 ...

  4. 1 恢复MySQL误删数据

    作者:一个人的孤独自白 cnblogs.com/-mrl/p/9959365.html 相信后端研发的同学在开发过程经常会遇到产品临时修改线上数据的需求,如果手法很稳那么很庆幸可以很快完成任务,很不幸 ...

  5. MTP模式下恢复手机误删数据方法(MX2、MX3亲测可用)

    http://bbs.meizu.cn/thread-5021842-1-1.html (贴出网址不为广告,只为分享!)        昨天帮室友的mx3升级系统,结果不小心把他手机里的照片删了.但是 ...

  6. 完整恢复Linux误删数据

    Linux恢复误删文件 关键时刻可以用来保命,如果这篇文章真的帮到了你,请务必点赞关注! 如果你没有按照建议管理数据并且已经删除完毕了,想要找救命稻草,听我的,赶紧跑路吧! 1.服务器数据管理建议遵循 ...

  7. landmark如何恢复oracle,LandmarkR5000数据迁移方法及迁移常见问题(带图解)

    包括StartWorks.PertoWorks.Zmap plus.Syntool 等一些定义和模板文件,井符号和一些数据加载格式文件等等,这两个目录也可以用cp –r 或tar cvf 的方式备份. ...

  8. oracle误删数据的解决方法

    之前不小心误删了一条数据,索性我还记得id,通过select * from 表名 as of timestamp to_timestamp('2017-6-23 9:10:00','yyyy-mm-d ...

  9. oracle 使用数据泵恢复,oracle 使用数据泵 导出整个db 并恢复

    导出expdp 1.登录oracle服务器(windows2008server-oracle11g-r2) 2.以sysdba身份登录  sqlplus / as sysdba 3.查看是否已有导出目 ...

最新文章

  1. 走在浪潮尖端——为什么选择云计算
  2. WebApp NativeApp HybirdApp
  3. 题目1164:旋转矩阵
  4. sql with(lock) 与事务
  5. 毕业论文 | 单相AC-DC变换电路(附源代码与电路设计图及器件清单)电子设计大赛
  6. python辅导机构_推荐靠谱python辅导机构!
  7. iOS c语言 基本运算符
  8. java 存储空间_Java中的存储空间类型
  9. PuTTY/PSCP、PSFTP介绍及使用
  10. 最近在做中文的全文检索(中文搜索引擎)
  11. Atitit 接口文档法 swaagger法 目录 1. Javadoc法 1 2. (9+条消息)swagger2常用注解说明 - 兴国-为梦想而战 - CSDN博客.html 1 2.1. 首
  12. 如何写一份优秀的Web前端简历【面试秘籍】
  13. 常用css样式大全以及css属性代码大全
  14. Linux系统下安装flash player插件
  15. AI数学基础之:P、NP、NPC问题
  16. Excel如何表格中一键生成柱表图
  17. 改进后的第二版Retropie树莓派掌机(二)
  18. Numpy.fromfunction用法
  19. django 静态 html页面,Django模板:HTML静态模板的继承
  20. 电脑运行卡顿?六个方法打开任务管理器解决

热门文章

  1. php mssql 端口,MSSQL_SQL Server端口更改后的数据库连接方式,SQL Server端口,大家可以通过quot - phpStudy...
  2. 卸载 流程_「工具」Windows 卸载软件,这一个就够了
  3. 华为服务器MLC硬盘ID号,RH2288H RH5885H V3 3.5寸 SAS SATA华为服务器硬盘架子 支架
  4. window.location获取url各项参数详解
  5. java课程设计题目及代码中国象棋,写的太详细了
  6. 【Web安全】中国蚁剑+DVWA(本地文件上传漏洞Upload)
  7. python【力扣LeetCode算法题库】121-买卖股票的最佳时机
  8. python【Matlibplot绘图库】利用matlibplot绘制雷达图
  9. 利用开源中国提供的代码仓库提高github下载速度
  10. Java的基础方法Java的对象_java基础之 创建对象的几种方式