最近学习oracle的时候,无意中看到oracle的闪回技术flashback,原来oracle在delete数据或者drop的时候,不是直接删除,而是跟windows一样,先把数据放入到回收站中。

select * from user_recyclebin

  可以查看user_recyclebin,可以看到最近删除的表格以及索引,如下:

  

  下面我们用一个例子测试一下:删除表数据,然后测试数据是否可以被恢复。

select * from testemp1

  初始数据如下:

  

  现在我们删除一下deptno=10的数据,如下:

delete from TESTEMP1 where deptno=10 

  查看数据如下:

  

  现在数据已经被删除了,我们利用oracle的闪回技术进行恢复,如下:

  (1)开启行移动功能,否则报错,如下:

    

alter table TESTEMP1 enable row movement

   (2)执行闪回操作,如下:

 flashback  table testemp1 to timestamp to_timestamp('2017/5/31 16:15:52','yyyy-mm-dd hh24:mi:ss');

 (3)查看表数据,如下:

  

  下面我们直接删除表格drop,如下:删除表格,测试表格是否可恢复。

drop table TESTEMP1

  查看testemp1,报错如下:

  

  (2)查看垃圾箱,如下:有一条drop记录。

 select * from user_recyclebin order by droptime desc

  

  (3)执行闪回,如下:被删除的表格又恢复了。

 flashback table testemp1 to before drop

  下面我们删除表的结构,删除一列sal,然后测试一下表结构以及数据能否被恢复? 如下:

  

  查看回收站,发现没有任何记录,如下:

  

  执行闪回sql报错,如下:

 flashback table testemp1 to timestamp to_timestamp('2017-05-31 16:40:00','yyyy-mm-dd hh24:mi:ss');

  

  总结:oracle的flashback功能,如果删除数据或者直接drop table是可以恢复数据的。如果删除表结构或者先执行删除数据后面又执行了删除表结构,使用flashback是无法恢复的。另外,使用 drop table 表名 purge 或 TRUNCATE TABLE  表名也无法恢复,因为这两个操作执行后,不会把数据放入到回收站中,而是直接删除。

Oracle闪回机制的更多相关文章

  1. ORACLE闪回机制分析与研究应用

    1.查看数据库归档和闪回状态,及环境准备SQL> archive log list;SQL> select flashback_on from v$database;关闭数据库,启动归档和 ...

  2. Oracle多表更新及MERGE命令和闪回机制还原数据表

    一.多表更新 比如线上有个系统由于某一个模块出现异常,导致系统整体的数据出现了错误,需要你手动改写数据库错误,Oracle update语句更新的值来自另一张表 update语法最基本的格式为 UPD ...

  3. Oracle闪回表

    Oracle闪回技术 场景:测试环境数据库的表数据被误删除. 解决思路:使用闪回表技术 原理 闪回技术是Oracle强大数据库备份恢复机制的一部分,在数据库发生逻辑错误的时候,闪回技术能提供快速且最小 ...

  4. Oracle闪回恢复误删除的表、存储过程、包、函数...

    在日常的数据库开发过程汇总难免会出现一些误删除的动作, 对于一些误删的操作我们可以通过oracle提供的闪回机制恢复误删数据, 从而避免出现较大的生产事故. 下面是本人平时工作中积累的一些常用的操作, ...

  5. Oracle 闪回 找回数据的实现方法

    Oracle 闪回 找回数据的实现方法 闪回技术是Oracle强大数据库备份恢复机制的一部分,在数据库发生逻辑错误的时候,闪回技术能提供快速且最小损失的恢复.这篇文章主要介绍了Oracle 闪回 找回 ...

  6. Oracle闪回flashback

    参考资料:Using Oracle Flashback Technology Oracle 11g的新特性闪回操作 闪回查询 闪回查询 闪回版本查询 闪回事务查询 闪回数据 闪回表 闪回删除 闪回数据 ...

  7. Oracle 闪回特性(FLASHBACK DATABASE)

    --===================================== -- Oracle 闪回特性(FLASHBACK DATABASE) --======================= ...

  8. Oracle闪回操作

    Oracle闪回操作 1. 记录当前时间或SCN 在数据库变动前记录时间或SCN SQL> select  to_char(sysdate,'YYYY-MM-DD HH24:mi:ss') fr ...

  9. Oracle 闪回

    Oracle 闪回特性(FLASHBACK DATABASE) 本文来源于:gerainly 的<Oracle 闪回特性(FLASHBACK DATABASE) > -========== ...

随机推荐

  1. VS 忽略文件 Git 向远程添加问题

    背景介绍: 我团队有个叫李恕华的技术大牛,最近在研究redis 然后向一个叫做MTS的项目中引入了redis,感觉很吊 问题: vs2017+git管理代码 其他人分支里一直提示找不到redis文件 ...

  2. 学习使用turtlebot2——ROS上安装turtlebot2

    安装环境: 安装Ubuntu 14.04版本和ROS Indigo 参考:http://wiki.ros.org/turtlebot/Tutorials 安装步骤     有两种安装方法,一种直接的安 ...

  3. amazonservices api 抽象类 Class Abstraction

    http://php.net/manual/zh/language.oop5.abstract.php MWSOrdersPHPClientLibrary-2013-09-01._V533357711 ...

  4. 接口测试工具 — jmeter(数据库操作)

    1.导入jdbc jar包 2.配置MySQL连接 3.执行sql语句

  5. Linux基础命令(一)

    一.开启Linux操作系统,要求以root用户登录GNOME图形界面,语言支持选择为汉语没有图形界面 二.使用快捷键切换到虚拟终端2,使用普通用户身份登录,查看系统提示符 Ctrl + Alt + F ...

  6. 转!!关于java类初始化顺序

    原文地址:http://www.cnblogs.com/luckygxf/p/4796955.html 1.没有继承 静态变量->静态初始化块->变量->变量初始化块->构造方 ...

  7. Vue中动态添加多个class

    vue中可以通过 :class=""这样来根据一定的条件来动态添加class,但是有时候需要判断的条件比较多,需要动态添加的class也比较多,这个时候其实也很简单 先看一下示例: ...

  8. Python3+Selenium3自动化测试-(一)

    完成环境的安装并测试之后,我们对Selenium有了一定的了解了,接下来我们继续驱动浏览器做一些基本操作: 窗口尺寸设置.网页截图.刷新.前进和后退 窗口尺寸设置 在测试过程中,我们可能会要求打开浏览 ...

  9. 全球第一张中文网络协议分析图——By 成都科来软件

    网上内容比较全面的网络协议图并不是很多,这些网络协议图大多只遵循OSI,对于TCP/IP基本不支持,有些协议图表示也不够准确.另一方面,现在网上能找到的协议图全都是英文版本,使用起来不是很方便.国内的 ...

  10. (4.3)ODBC/OLE DB/ADO概念与使用情况

    一.ODBC   ODBC的由来 1992年Microsoft和Sybase.Digital共同制定了ODBC标准接口,以单一的ODBC API来存取各种不同的数据库.随后ODBC便获得了许多数据库厂 ...