zoukankan      html  css  js  c++  java
  • 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.

  • 相关阅读:
    简单的Makefile
    共享库
    链接静态库
    /proc/uptime参数的意义
    磁盘挂载失败
    linux环境变量设置
    使用systemd-analyze 工具来分析各个服务进程的启动性能
    面试-2020C/C++后台开发深信服科技股份有限公司一面凉经(一问三不知,我是真的菜。。。)
    笔记-C/C++工程师面试笔记收集整理
    SpringCloud-分布式与集群的使用四(断路器Hystrix)
  • 原文地址:https://www.cnblogs.com/zhangshengdong/p/10113494.html
Copyright © 2011-2022 走看看