对于DELETE的误操作
当不小心用DELETE删除了表中的一条或多条记录的恢复

1,基于时间的闪查
闪查的查询能力是受到undo表空间的大小和undo_retention的影响
以SCOTT.EMP为例子简单示范下
SQL> SHOW USER
USER is "SCOTT"

SQL> SELECT COUNT(*) FROM EMP;

COUNT(*)
----------
        14

SQL> DELETE EMP WHERE ENAME='SCOTT';

1 row deleted.

SQL> COMMIT;

Commit complete.

SQL> SELECT COUNT(*) FROM EMP;

COUNT(*)
----------
        13

SQL> SELECT * FROM EMP AS OF TIMESTAMP SYSDATE-5/1440 WHERE ENAME='SCOTT';
    (上一个5分钟之内的,1440表示24*60,也可以根据自己定义的时间格式来写具体的时间)

EMPNO ENAME      JOB          MGR HIREDATE              SAL  COMM     DEPTNO
----- ---------- ---------- ----- ------------------- ----- ----- ----------
 7788 SCOTT      ANALYST     7566 1987-04-19 00:00:00  3000               20

SQL> INSERT INTO EMP SELECT * FROM EMP AS OF TIMESTAMP SYSDATE-5/1440 WHERE ENAME='SCOTT';

1 row created.

SQL> SELECT COUNT(*) FROM EMP;

COUNT(*)
----------
        14

SQL> COMMIT;

Commit complete.

2,基于SCN的闪查(删除的步骤就不重复了)
SQL> SHOW USER
USER is "SYS"

SQL> SELECT SCN,TIME_DP FROM (SELECT SCN,TIME_DP FROM SMON_SCN_TIME ORDER BY TIME_DP DESC) WHERE ROWNUM<5;

SCN TIME_DP
---------- -------------------
    874277 2011-06-18 01:05:48
    874073 2011-06-18 01:00:21
    873920 2011-06-18 00:59:57
    873774 2011-06-18 00:54:27
    (5分钟一写,可以根据时间查询SCN来进行恢复.)
SQL> SELECT * FROM SCOTT.EMP AS OF SCN 873774 WHERE ENAME='SCOTT';

EMPNO ENAME      JOB          MGR HIREDATE              SAL  COMM     DEPTNO
----- ---------- ---------- ----- ------------------- ----- ----- ----------
 7788 SCOTT      ANALYST     7566 1987-04-19 00:00:00  3000               20

注:初学者,欢迎指点,不断改进。doo

转载于:https://blog.51cto.com/dongyin/591189

DELETE误操作_oracle相关推荐

  1. oracle操作错误还原,Oracle delete误操作数据恢复(BBED)

    Oracle delete误操作数据恢复(BBED) 在Oracle中,表数据被错误执行了delete,并 已 提交,如何找回数据呢? 常规的修复方法可以想到 闪回.Rman.impdp . DG . ...

  2. MySQL遭遇DELETE误操作的回滚

    方法: 条件:开启Binlog,Format为Row. 步骤: 1.通过MySQL自带工具mysqlbinlog 指定导出操作的记录: mysqlbinlog --no-defaults --star ...

  3. mysql 恢复delete操作_MySQL 误操作后数据恢复(update,delete忘加where条件)

    在数据库日常维护中,开发人员是最让人头痛的,很多时候都会由于SQL语句写的有问题导致服务器出问题,导致资源耗尽.最危险的操作就是在做DML操作的时候忘加where条件,导致全表更新,这是作为运维或者D ...

  4. mysql 清除分区数据恢复_MySQL 误操作后数据恢复(update,delete忘加where条件)【转】...

    在数据库日常维护中,开发人员是最让人头痛的,很多时候都会由于SQL语句 写的有问题导致服务器出问题,导致资源耗尽.最危险的操作就是在做DML操作的时候忘加where条件,导致全表更新,这是作为运维或者 ...

  5. MSQL误操作delete之后的数据恢复

    1.查看binlog功能是否开启 show variables like '%log_bin%'; 如果为log_bin为ON说明可以恢复,如果为OFF说明没有开启binlog,也没有预先生成回滚SQ ...

  6. 盘点一下数据库的误操作有哪些后悔药?

    前言 无论是开发.测试,还是DBA,都难免会涉及到数据库的操作,比如:创建某张表,添加某个字段.添加数据.更新数据.删除数据.查询数据等等. 正常情况下还好,但如果操作数据库时出现失误,比如: 删除订 ...

  7. mysql回滚用法_Mysql误操作后利用binlog2sql快速回滚的方法详解

    前言 在日常工作或者学习中,操作数据库时候难免会因为"大意"而误操作,需要快速恢复的话通过备份来恢复是不太可能的,下面这篇文章主要给大家介绍关于Mysql误操作后利用binlog2 ...

  8. MySQL中truncate误操作后的数据恢复案例

    MySQL中truncate误操作后的数据恢复案例 这篇文章主要介绍了MySQL中truncate误操作后的数据恢复案例,主要是要从日志中定位到truncate操作的地方然后备份之前丢失的数据,需要的 ...

  9. 防止人为误操作MySQL数据库技巧一例

    防止人为误操作MySQL数据库技巧一例 (本题来自老男孩培训内部学生问题,属于数据库安全技巧) 在若干年前,老男孩亲自遇到一个"命案",老大登录数据库update一个记录,结果忘了 ...

最新文章

  1. BERT可视化工具bertviz体验
  2. ubuntu 目录结构
  3. Linux 内核Coding Style整理
  4. 1.java局部变量 实例变量 类变量(静态变量)
  5. OpenCv——merge()函数数据合并
  6. 深入理解 Spring Boot Starters 原理(手写Spring boot Start)
  7. cjmx:JConsole的命令行版本
  8. 朴素贝叶斯法(Naive Bayes,NB)
  9. 理解Lucene中的Query
  10. mysql 时间语句【集锦】
  11. java 快逸报表_报表展现输出 | 快逸报表工具 java报表软件
  12. 浅析数据结构-图的基本概念
  13. 如何成为优秀的程序员?
  14. 海康威视2022届校招面经(内含内推码)
  15. tif文件转为shp文件_在arcgis中怎么把tif格式的遥感图像转换为矢量图
  16. ASEMI整流桥GBU410参数,GBU410介绍,GBU410代换
  17. 开源私有云盘python_使用Seafile搭建个人专属私有云盘
  18. Linux 磁盘命令lsblk和blkid
  19. YOLOv7部署于自定义数据集(BDD100K)
  20. WebService工作流程

热门文章

  1. BZOJ 2301 [HAOI2011]Problem b
  2. Hibernate中启用日志
  3. 前去哪儿产品总监白羽:做SaaS产品需要注意哪些坑?
  4. PMcaff写给大家的年终碎碎念 PMcaff | 记录
  5. Android Handler原理
  6. 掌握这些知识点还怕工资上不了30k?(Java篇)
  7. 我的第一个Java程序 Hello World!
  8. 解决 webstrom sass 注释中文出错问题
  9. POJ3104 Drying [二分]
  10. Android 开机自动运行和添加删除桌面快捷方式