• Oracle闪回表


    Oracle闪回技术

    场景:测试环境数据库的表数据被误删除。

    解决思路:使用闪回表技术

    原理

    闪回技术是Oracle强大数据库备份恢复机制的一部分,在数据库发生逻辑错误的时候,闪回技术能提供快速且最小损失的恢复(多数闪回功能都能在数据库联机状态下完成)。
    Oracle中一个逻辑结构--撤销段(Undo segment)。因为大部分闪回技术都需要依赖撤销段中的撤销数据。撤销数据是反转DML语句结果所需的信息,只要某个事务修改了数据,那么更新前的原有数据就会被写入一个撤销段。(事务回滚也会用到撤销段中的数据)

    1.闪回查询(Flashback Query)

    1):基本闪回查询
    功能描述:可以查询过去某个时间段的数据库状态。

    工作原理:Oracle 会提取所需要的撤销数据(前提是撤销是可用的,即撤销数据还没被覆盖)进行回滚,但这种回滚是临时的,

    SQL> select * from wfprocessdefine as of timestamp to_timestamp('2016-09-10 11:00:00','yyyy-mm-dd hh24:mi:ss');
    

    2):闪回表

    功能描述:可将某个表回退到过去某个时间点
    工作原理:同样,Oracle会先去查询撤销段,提取过去某个时间点之后的所有变更,构造反转这些变更的SQL语句进行回退,闪回操作
    是一个单独的事务,所以若由于撤销数据过期之类的原因导致无法闪回,整个操作会回滚,不会存在不一致的状态。

    *.启用表闪回首先要在表上支持行移动

    SQL> alter table wfprocessdefine enable row movement;
    

    *.闪回表操作

    SQL> flashback table wfprocessdefine to timestamp to_timestamp('2016-09-10 11:00:00','yyyy-mm-dd hh24:mi:ss');
    

    闪回失效的情况:
    1)违反了数据库约束.
    2)撤销数据失效.
    3)闪回不能跨越DDL.

  • 相关阅读:
    dfs介绍
    UVA11149 矩阵快速幂
    UVA1476 三分法
    漂亮的表达式!(不断补充)
    BC Round#33 B(10的18次方,快速乘法+快速幂取余)
    UVA 1639(组合数学)
    UVA 10612(数论找规律)
    小模板
    1589象棋(大模拟)
    bnuoj 29368 Check the Identity(栈)
  • 原文地址:https://www.cnblogs.com/zhangshengdong/p/10113494.html
Copyright © 2020-2023  润新知