Oracle 中利用闪回查询确定某表在某时间点之后的修改内容:

1.查看 DELETE 及 UPDATE 操作修改的数据:
SQL> SELECT *
FROM tab AS OF TIMESTAMP  to_timestamp('time_point', 'yyyy-mm-dd hh24:mi:ss')
MINUS
SELECT *
FROM tab;
其中将查询得 tab 表在 time_point 时点之后因 DELETE 及 UPDATE 操作修改的数据。
2.查看 INSERT 操作修改的数据:
SQL> SELECT *
FROM tab
MINUS
SELECT *
FROM tab AS OF TIMESTAMP  to_timestamp('time_point', 'yyyy-mm-dd hh24:mi:ss');
其中将查询得 tab 表在 time_point 时点之后因 INSERT 操作修改的数据。
 
Oracle 中利用闪回查询恢复某表至某时间点:
1.恢复 DELETE 及 UPDATE 操作修改的数据:
SQL> MERGE INTO tab a
USING (SELECT *
         FROM tab AS OF TIMESTAMP to_timestamp('time_point', 'yyyy-mm-dd hh24:mi:ss')
       MINUS
       SELECT *
         FROM tab) b
ON (a.unique_id = b.unique_id)
WHEN MATCHED THEN
  UPDATE
     SET a.col1                         = b.col1,
         a.col2                           = b.col2,
WHEN NOT MATCHED THEN
  INSERT
  VALUES
    (b.unique_id,
     b.col1,
     b.col2);
其中将恢复 tab 表至 time_point 时点,恢复数据为因 DELETE 及 UPDATE 操作修改的数据。
其中 tab 表包含字段 unique_idcol1col2注意:需要通过唯一条件 unique_id 定位数据。
2.恢复 INSERT 操作修改的数据:
SQL> DELETE FROM tab a
WHERE EXISTS (SELECT 1
          FROM (SELECT *
                  FROM tab
                MINUS
                SELECT *
                  FROM tab AS OF TIMESTAMP to_timestamp('time_point', 'yyyy-mm-dd hh24:mi:ss')) b
         WHERE a.unique_id = b.unique_id);
其中将恢复 tab 表至 time_point 时点,恢复数据为因 INSERT 操作修改的数据。
注意:需要通过唯一条件 unique_id 定位数据。

Oracle 中利用闪回查询确定某表在某时间点之后的修改内容,并恢复至该时间点的更多相关文章

  1. Oracle Flashback Technologies - 闪回查询

    Oracle Flashback Technologies - 闪回查询 查看表中,某行数据的修改记录 #创建一个表,并插入和修改数据 SQL> create table y3(id )); T ...

  2. Oracle Flashback Technologies - 闪回被drop的表

    Oracle Flashback Technologies - 闪回被drop的表 在oracle10g中,drop一个表后,表没有真正被删除,支持被rename后放在recyclebin中. #新建 ...

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

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

  4. oracle中的闪回

    项目中运用: 首先说明:闪回方法有一个前提,就是需要尽早的发现问题,果断的采取行动.若误操作的记录已经在UNDO表空间中被清除,则此方法就不可行了,需要另寻他法. 例如: SELECT * FROM ...

  5. Oracle的回收站和闪回查询机制(二)

    上一篇中讲诉了Oracle中一些闪回查询(Flashback Query),这是利用回滚段信息来恢复一个或一些表到以前的一个时间点(一个快照).要注意的是,Flashback Query仅仅是查询以前 ...

  6. Oracle的回收站和闪回查询机制(一)

    实际工作中,我们经常会遇到一些情况,误删除某些表或某些表的某些记录,这时候就需要我们将这些记录重新插入进去.如何才能解决这个问题呢? Oracle的Flashback query(闪回查询)为我们解决 ...

  7. PLSQL_闪回删除FlashBack Delete表误删除如何进行恢复(案例)

    2014-07-02 Created By BaoXinjian

  8. oracle闪回查询

    一.引言 程序中用到需要同步oracle更新和删除数据,于是考虑利用oracle的闪回查询机制来实现. 利用该机制首先需要oracle启用撤销表空间自动管理回滚信息,并根据实际情况设置对数据保存的有效 ...

  9. Oracle闪回查询恢复delete删除数据

    Flashback query(闪回查询)原理 Oracle根据undo信息,利用undo数据,类似一致性读取方法,可以把表置于一个删除前的时间点(或SCN),从而将数据找回. Flashback q ...

随机推荐

  1. minitools

    1.android 2.linux 3.luoji 4.windows CE ----

  2. C#如何使用和开发自定义配置节

    在日常的程序设计中,如何灵活和巧妙地运用配置信息是一个成功的设计师的首要选择.这不仅是为了程序设计得更灵活性和可扩展性,也是为了让你的代码给人以清新的感觉.程序中的配置信息一般放在应用程序的app.c ...

  3. 【HDOJ】2459 Maximum repetition substring

    后缀数组+RMQ. /* 2459 */ #include <iostream> #include <sstream> #include <string> #inc ...

  4. poj 3080 Blue Jeans(水题 暴搜)

    题目:http://poj.org/problem?id=3080 水题,暴搜 #include <iostream> #include<cstdio> #include< ...

  5. poj 2506 Tiling(递推 大数)

    题目:http://poj.org/problem?id=2506 题解:f[n]=f[n-2]*2+f[n-1],主要是大数的相加; 以前做过了的 #include<stdio.h> # ...

  6. LeeCode Algorithm #3 Longest Substring Without Repeating Characters

    一开始以为是不连续的,其实要求子串是连续的.想法:two-pointer O(n)时间,再借助256大小的int数组.两个下标i,j(i<=j).对于i=0,找到最右侧的字符不重复的下标的后一位 ...

  7. UVa 1605 (构造) Building for UN

    题意: 有n个国家,要设计一栋长方体的大楼,使得每个单位方格都属于其中一个国家,而且每个国家都要和其他国家相邻. 分析: 紫书上有一种很巧妙的构造方法: 一共有2层,每层n×n.一层是每行一个国家,另 ...

  8. 【 D3.js 高级系列 — 2.0 】 捆图

    捆图(Bundle)是 D3 中比较奇特的一个布局,只有两个函数,而且需要与其它布局配合使用.本文讲述捆图的制作方法. 有关捆图的例子极少,很容易找到的是:http://bl.ocks.org/mbo ...

  9. Linux串口c_cc[VTIME]和c_cc[VMIN]属性设置的作用

    Linux串口c_cc[VTIME]和c_cc[VMIN]属性设置的作用 在串口编程模式下,open未设置O_NONBLOCK或O_NDELAY的情况下. c_cc[VTIME]和c_cc[VMIN] ...

  10. 【转】angular Ajax请求

    1.http请求 基本的操作由 $http 服务提供.它的使用很简单,提供一些描述请求的参数,请求就出去了,然后返回一个扩充了 success 方法和 error 方法的 promise对象(下节介绍 ...