闪回表,实际上就是将表中的数据快速恢复到过去的一个时间点或者系统改变号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. WPF使用cefsharp

    最近在公司项目上会用到cefsharp.wpf,不知道为什么按照网上的配置一直无法运行成功,怎么配置可以参考以下这篇博文: http://www.cnblogs.com/TianFang/p/4573 ...

  2. Git基础 - git blame

    当想知道一段代码历史上有哪些人修改时,可以使用git blame查看,正如其名,当你看到那段让你抓狂的代码时,一定想找出是谁写的来一顿blame吧 : ) 使用方法 icebug@localhost: ...

  3. [vim]的关键字补全

    除了complete关键字补全,所有补全相关命令都以CTRL-X开始,然后再接与补全类型相关的命令.CTRL-N与CTRL-P在找的的内容中选择的通用的命令,上下选择用的,CTRL-E则是取消选择.( ...

  4. 教你怎么fan qiang 进国内看视频而不受限制

    这一周难得今天闲一点,写日志也不知道写啥,谈爱情?...没得谈.思前想后还是在这儿带给大家点福利吧,主要是针对在国外生活的孩纸们看国内视频总是提示被限制的问题,qq音乐也是.     或许大家有听过f ...

  5. 小白学习mysql之索引初步

    导语 索引在数据库中的地位是及其的重要,同时要想完全的掌握索引并不是一件容易的事,需要对数据的查询原理以及计算机操作系统有深刻的认识,当然相关的算法和数据结构也是必须的.因此,这篇文章感到了一些压力, ...

  6. 微信支付开发-Senparc.Weixin.MP详解

    年底了,反而工作更忙了,我从15年11月开始写<1024伐木累>系列小说和爆笑对白,得到了很多身边的技术好友的支持,现在爆笑对白已经有越来越多的朋友一起帮着写段子,整理,包括小说内容的编辑 ...

  7. Java学习笔记(六)——google java编程风格指南(下)

    [前面的话] 年后开始正式上班,计划着想做很多事情,但是总会有这样那样的打扰,不知道是自己要求太高还是自我的奋斗意识不够?接下来好好加油.好好学学技术,好好学习英语,好好学习做点自己喜欢的事情,趁着自 ...

  8. windows API 开发飞机订票系统 图形化界面 (三)

    来吧,接下来是各个功能的函数的实现代码. 首先,程序运行时加载读入账户信息和航班信息.接下来就该读取文件了. 我把账户资料和航班信息储存在了.txt文件里 那么问题就来了,挖掘机...额,不对,应该怎 ...

  9. 支持Json进行操作的Javascript类库TAFFY DB

    前段时间工作中用到Json数据,希望将一些简单的增删改查放到客户端来做,这样也能减少服务器端的压力.分别查找了几个可以对Json进行操作的javascript 类库,最终选定了TAFFY DB.原因如 ...

  10. sublime2的一些基本常用的操作

    1.全局搜 ctrl shift f 如果你的快捷键有冲突的话,那么你在find的菜单中有find in file这个中找.