闪回

原创 2012年03月23日 06:28:20

  闪回包括:闪回查询、闪回版本查询、闪回事务查询、闪回表、闪回删除和闪回数据库
  其中前四个需要使用插销数据,这里主要先介绍着四个。
  如果经常使用闪回操作,则建议使用有保证的撤销保留,要不然可能会收到‘快照太旧’的错误。
一、闪回查询
  查询数据在过去某个时刻或者某个SCN处的一个旧版本。
  要对对象闪回查询,需要用户具有对象上的flashback权限,或者具有flashback any table权限。
  1、使用SQL语句
    使用TIMESTAMP:select select_list from table_name
                    as of timestamp to_timestamp('timestamp_value','timestamp_format')
                    [ where 条件]
    使用SCN:select select_list from table_name
            as of scn scn_value
            [where 条件]
  2、使用dbms_flashback
    exec dbms_flashback.enable_at_time(to_timestamp('timestamp_value','timestamp_format'));
    或者:
    exec dbms_flashback.enable_at_system_change_number(scn_value);
    然后
    select .... from table_name
    [where 条件];
    最后
    exec dbms_flashback.disable;
  3、使用闪回查询纠正过去的错误操作
    比如:update table_name set column_name=(select column_name from table_name as of scn scn_value[ where 条件])
           [where 条件];

          insert into table_name[(column_name [, ...])]
          select .... from table_name
          as of timestamp to_timestamp('timestamp_value','timestamp_format')
          [where 条件];

 二、闪回版本查询
  1、注意事项:只能检索行的已提交版本
               检索所有已删除的行和当前行
               检索删除之后重新插入的行
               查询的结果为表的形式,每一版本包含一行
  2、限制:只能查询实际的表,不能查询视图
           不能跨越DDL应用versions子句
           忽略纯粹的行物理变化
           不能应用到外部表和临时表
  3、伪列:versions_starttime versions_startscn :该版本开始时间、开始scn。如果为空,则表示在指定的最小时间或者最小scn之前开始。
           versions_endtime versions_endscn :该版本结束时间、结束时scn。如果为空则表示为当前行或者已经删除。
           versions_operation:表示在行上执行的操作类型,I:insert U:update D:delete
           versions_xid:导致该版本的事务唯一标示符。
  4、select  ..... from table_name
     {versions between {timestamp | scn }  {expression | minvalue }
     and {expression | maxvalue}}
     [as of timestamp scn]  --指定字某个时间点或者scn之后的所有行,如果使用minvalue或者maxvalue而没有使用as of子句,oracle将检索自会话以来的数据。
     [where 条件]
三、闪回事务查询
  闪回事务查询就是对flashback_transaction_query视图的查询。
  执行闪回事务查询需要具有select any transaction权限。
  注意事项:如果操作涉及链接行或者特殊的存储结构(如集群表),应该打开最小的补充日志:alter database add supplemental log data;
            在查询组织表时,更新操作总是显示为两步骤:删除、插入
            如果查询涉及已经删除的表或者已经删除的用户,则只显示对象编号和用户id,不显示对象名和用户名。
四、闪回表
  1、权限
    闪回表需要在表上的flashback权限,或者flashback any table权限
    同时需要在表上的insert、update或者delete权限
  2、需要启用行移动
    alter table table_name enable row movement;
  3、flashback table table_name [,table_name ....]
     to
     {scn |timestamp} expression
     [{enable |disable} triggers]

什么是事物?

一.什么是事务   事务是应用程序中一系列严密的操作,所有操作必须成功完成,否则在每个操作中所作的所有更改都会被撤消。也就是事务具有原子性,一个事务中的一系列的操作要么全部成功,要么一个都不做。  ...
  • nannancctv1
  • nannancctv1
  • 2017年03月02日 13:25
  • 77

UML 之 UML中的事物

UML中的事物是构成模型图的一些基本图示符号,它们表示一些面向对象的基本概念。事物是对模型中最具有代表性的成分的抽象。 结构事物 1.类(class)     类是对一组具有相同属性、方...
  • u010786678
  • u010786678
  • 2014年02月13日 14:23
  • 2020

事物及事物隔离级别

什么是事物 事物是访问数据库的一个操作序列,数据库应用系统通过事物集来完成对数据库的存取。事物的正确执行使得数据库从一种状态转换为另一种状态。 事物必须服从ISO/IEC所制定的ACI...
  • tianya3530
  • tianya3530
  • 2017年01月03日 11:42
  • 131

Spring事物管理——五种配置方法

前段时间对spring的事务配置做了比较深入的研究,在此之间对Spring的事务配置虽说也配置过,但是一直没有一个清楚的认识。通过这次的学习发觉Spring的事务配置只要把思路理清,还是比较好掌握的。...
  • bear_wr
  • bear_wr
  • 2016年10月04日 02:08
  • 2248

java SSH和SSM框架 事物配置以及管理

事务的四大特性: 1、一致性:将事务中所做的操作捆绑成一个原子单元,即对于事务所进行的数据修改等操作,要么全部执行,要么全部不执行。 2、原子性:事务在完成时,必须使所有的数据都保持一致状态,而...
  • qq6407521
  • qq6407521
  • 2016年08月18日 11:16
  • 3083

spring事物回滚

Spring 事务管理 什么是事务回滚? 举个例子:比如转账操作,甲先成功汇给乙现金,若乙没能取款成功,那么甲的现金就应该自动退还 Spring提供了很好的事务管理体系 Spr...
  • jinshiyill
  • jinshiyill
  • 2016年02月22日 11:01
  • 572

Spring 事物透彻详解

一、Spring事务管理 1、 Spring事务管理机制 三个核心组件 1) PlatformTransactionManager 平台事务管理器 commit 提交事务、rollback 回...
  • u012815721
  • u012815721
  • 2014年10月17日 12:28
  • 1207

SQL事物与事物隔离级别

转载自:http://blog.csdn.net/maotongbin/article/details/50600780 SQL Server 数据库中事物的概念 数据库中的事物是数据库并发控制的基本...
  • gythlover
  • gythlover
  • 2017年04月19日 15:20
  • 242

Spring事物管理理解

数据库事务概述 数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列操作,要么完整地执行,要么完全地不执行。 事务处理可以确保除非事务性单元...
  • WMY1230
  • WMY1230
  • 2016年11月29日 14:28
  • 440

(八)、ZooKeeper 事物

利用Transaction提交创建节点 代码如下: /** * 创建zNode节点, String create(path, data[], List(ACL访问控制列表), CreateM...
  • liuyuehu
  • liuyuehu
  • 2016年09月06日 11:31
  • 981
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:闪回
举报原因:
原因补充:

(最多只允许输入30个字)