闪回表,实际上就是将表中的数据快速恢复到过去的一个时间点或者系统改变号SCN上。实现表的闪回,需要用到撤销表空间相关的UNDO信息,通过SHOW PARAMETER UNDO命令就可以了解这些信息。用户对表的数据的修改操作,都记录在撤销表空间中,这为表的闪回提供的数据恢复的基础。

修改记录被提交到undo表空间中的默认保留时间为900秒,用户可以在这900秒的时间内对表的进行闪回操作,从而将表中的数据恢复的修改前的状态。

如上图显示的默认900秒,我们通过sql来修改这个默认时间为1200:

flashtable的语法:

flashback table [schema.]table_name to {[before drop [rename to new_table_name]] | [SCN | TIMESTAMP] expr [enable | desable] triggers}

schema:模式名 table_name :表名

before drop 表示回复到删除之前

rename new_table_name 重新定义表名称

timestamp 时间戳,包括年月日时分秒

expr 制定一个值或表达式

enable triggers 触发器恢复后,呈启用状态

disabled triggers 触发器回复后,呈禁用状态,默认情况下为此选项。

下面演示一个示例:

首先在数据库中创建一个表,并插入3条数据

SQL>create table tb_flash1(id number primary key,content varchar2(40));

表已创建。

SQL> insert into tb_flash1(id,content)
  2  select 1,'第一行数据' from dual
  3  union all
  4  select 2,'第二行数据' from dual
  5  union
  6  select 3,'第三行数据' from dual
  7  /

已创建3行。

SQL> commit
  2  /

提交完成。

查询刚才插入的数据:

SQL> select * from tb_flash1
  2  /

ID CONTENT
---------- ----------------------------------------
         1 第一行数据
         2 第二行数据
         3 第三行数据

假设现在误删除一条id=2的数据:

SQL> delete from tb_flash1 where id=2
  2  /

已删除 1 行。

SQL> commit;

提交完成。

再次查询,表中只剩两条记录:

SQL> select * from tb_flash1
  2  /

ID CONTENT
---------- ----------------------------------------
         1 第一行数据
         3 第三行数据

接下来对刚删除的数据执行恢复操作:

1、开启表的移动功能

SQL> alter table tb_flash1 enable row movement
  2  /

表已更改。

2、将表恢复到删除数据的时间之前(注意这个时间尽量与您删除数据的时间相同或稍微靠前)

SQL> flashback table tb_flash1 to timestamp
  2  to_timestamp('2013-01-26 15:58:30','yyyy-mm-dd hh24:mi:ss')
  3  /

闪回完成。

SQL> select * from tb_flash1;

ID CONTENT
---------- ----------------------------------------
         1 第一行数据
         2 第二行数据
         3 第三行数据

至此数据已恢复。

下面介绍恢复到scn

将时间戳转换到scn

SQL> select timestamp_to_scn(to_timestamp('2013-01-26 15:58:30','yyyy-mm-dd hh24
:mi:ss')) from dual;

TIMESTAMP_TO_SCN(TO_TIMESTAMP('2013-01-2615:58:30','YYYY-MM-DDHH24:MI:SS'))
---------------------------------------------------------------------------
                                                                    1263136

SQL> flashback table tb_flash1 to 1263136;

闪回完成。闪回完成。闪回完成。

Oracle闪回技术之一Oracle 11g 利用FlashTable (闪回表)恢复(用delete)误删的数据的更多相关文章

  1. 利用FinalData恢复shift+delete误删的文件

    当前位置 : 首页 » 文章分类 :  生活  »  利用FinalData恢复shift+delete误删的文件 上一篇 有关可变形部件模型(Deformable Part Model)的一些说明 ...

  2. ORACLE 11G没有备份文件參数文件在异机通过rman备份恢复找回被误删的数据

    背景:          同事误删除线上数据.所以须要从备份中找回数据恢复. 真实屋漏偏逢连夜雨.船迟又遇打头风.前两天备份的磁盘坏块,如今仅仅有rman全备的.bak文件,没有控制文件和參数文件,所 ...

  3. Oracle闪回技术详解

     概述: 闪回技术是Oracle强大数据库备份恢复机制的一部分,在数据库发生逻辑错误的时候,闪回技术能提供快速且最小损失的恢复(多数闪回功能都能在数据库联机状态下完成).需要注意的是,闪回技术旨在快速 ...

  4. Oracle闪回技术(Flashback)

    闪回技术有闪回表.闪回删除.闪回查询.闪回事务查询.闪回事务.闪回数据库.闪回数据归档.其中,闪回查询.闪回事务查询用来“观察”过去:闪回数据归档并不是一个独立的功能,其功能是扩展闪回查询的时间窗口: ...

  5. Oracle 六闪回技术,flashback

    Flashback 技术基于Undo segment基于内容的, 因此,限制UNDO_RETENTON参数. 要使用flashback 特征,您必须启用自己主动撤销管理表空间. 在Oracle 11g ...

  6. Oracle闪回技术

    (一)闪回技术概要 闪回技术是数据库备份与恢复的重要补充手段,主要包括以下7种特性: 特性 原理 数据库支持 闪回查询(Flashback Query) 利用undo表空间中的回退信息,查询过去某个时 ...

  7. 【Oracle】Oracle 10g利用闪回挽救误删的数据

    我们在开发和运维过程中,经常遇到数据被误删除的情况.无论是在应用开发中的Bug,还是修改数据的时候,如果提交了错误数据修改结果,会带来很多问题.一般来说,一旦提交commit事务,我们是不能获取到之前 ...

  8. oracle 单实例DG(闪回技术四)

    一,flashback Oracle Flashback技术是一组数据库特性,它可以让你查看数据库对象的过去状态,或者将数据库对象返回到以前的状态,而无需使用基于时间点的介质恢复.根据数据库的变化,闪 ...

  9. Oracle Flashback Technology【闪回技术】

    -------------------------与其他数据库相比,Oracle的闪回让开发者多了一条选择的路. Flashback的目的 先看下Oracle官方文档中的解释: Oracle Flas ...

随机推荐

  1. [Erlang37]error/1 exit/1 exit/2 throw/1的区别

    1. error/1 主要是系统用来定义内部错误的: Erlang内建的run time error 一共有10种: function_clause/case_clause/if_clause/bad ...

  2. 记录使用gogs,drone搭建自动部署测试环境

    使用gogs,drone,docker搭建自动部署测试环境 Gogs是一个使用go语言开发的自助git服务,支持所有平台 Docker是使用go开发的开源容器引擎 Drone是一个基于容器技术的持续集 ...

  3. VisualStudio2013+EF6+MySql5.5环境下配置

    看院子里对EF框架和MySql的配置文章不少,但是几乎出自一篇文章的转载,而且这篇转载的文章的也比较坑爹,下面我将介绍一下我的配置过程: 第一步:安装mysql-connector-net-6.9.9 ...

  4. [转]仿World Wind构造自己的C#版插件框架——WW插件机制精简改造

    很久没自己写东西啦,早该好好总结一下啦!一个大师说过“一个问题不应该被解决两次!”,除了一个好脑筋,再就是要坚持总结. 最近需要搞个系统的插件式框架,我参照World Wind的插件方式构建了个插件框 ...

  5. 在64位windows下使用instsrv.exe和srvany.exe创建windows服务

    在64位windows下使用instsrv.exe和srvany.exe创建windows服务   在32位的windows下,包括windows7,windows xp以及windows 2003, ...

  6. Caffe学习系列(21):caffe图形化操作工具digits的安装与运行

    经过前面一系列的学习,我们基本上学会了如何在linux下运行caffe程序,也学会了如何用python接口进行数据及参数的可视化. 如果还没有学会的,请自行细细阅读: caffe学习系列:http:/ ...

  7. LeetCode:Search Insert Position,Search for a Range (二分查找,lower_bound,upper_bound)

    Search Insert Position Given a sorted array and a target value, return the index if the target is fo ...

  8. 蓝牙技术BlueTooth

    转载网址:http://blog.csdn.net/dxdxsmy/article/details/7790568 蓝牙核心架构概念的理解请参考上面的网址.

  9. 分享:大晚上用自己的锤子手机跨系统刷MIUI,跌宕起伏啊!!

    序言: 写这篇博客之前问了一下博客园官方,能不能写关于刷机这一方面的,官方还是比较通情达理的,说技术类没有限制的,那样我就放心的写了.今天早上在博客园中稍微逛了一下,感觉似乎很少有关于刷机这一方面的, ...

  10. C#6.0特性(快来围观)

    说明一下,很多博友一进来就认为仅仅是语法糖,C#语法的更新,代表着它的进步,语法糖是为了让我们更好的实现语句和功能,增加了易读性和易用性.而且它的每次进步,也会给我们带来新的支持和改进.比如C#(4. ...