zoukankan      html  css  js  c++  java
  • Oracle闪回

    (1) 闪回数据库(flashback database)
        闪回数据库就是当出现逻辑错误时,能够将整个数据库回退到出错前的那个状态。
    (2) 闪回删除(flashback drop)
        Oracle10g之前,一旦删除了一个表,那么该表就会从数据字典里面删除。要恢复该表,需要进行不完全恢复。
        Oracle10g以后,当我们删除表时,默认Oracle只是在数据库字典里面对被删的表的进行了重命名,并没有真正的把表删除。
    (3) 闪回表(flashback table)
       所谓闪回表,就是将表里的数据会退到历史上的某个时间点,例如回退到用户误删除数据之前的时间点,从而将误删除的数据恢复回来,在这个过程中,数据库仍然可用,而且不需要类似于闪回日志一样的额外空间。闪回表利用的是undo表空间里记录的数据被改变前的值,如果闪回表所需要的undo数据,由于保留的时间超过了初始化参数undo_retention所指定的值,从而导致该undo数据块被其他事务覆盖,就不能恢复到指定的时间点了。
     
    SQL> --Oracle的回收站
    SQL> --查看回收站
    SQL> show recyclebin;
    ORIGINAL NAME    RECYCLEBIN NAME                OBJECT TYPE  DROP TIME
    ---------------- ------------------------------ ------------ -------------------
    TEST2            BIN$tBAo/HbsRMClk8lSDu2kqg==$0 TABLE        2016-07-02:15:24:12
    SQL> --清空回收站
    SQL> purge recyclebin;
    删除的表在回收站找那个别名,仍旧可以使用来查询数据
    SQL> select * from "BIN$0KNvp4/3Qh+fFdc23V95RQ==$0";
     
    oracle闪回
    SQL> flashback table TESTSAVEPOINT to before drop;
    如果删除了两个同名的表,那么闪回的是最近删除的表,剩下的表闪回要重命名
    SQL> flashback table TESTSAVEPOINT to before drop rename to TESTSAVEPOINT_OLD;
    SQL> --注意:管理员没有回收站
     

    在利用闪回功能前需要确认:

    1、用户有对dbms_flashback包有执行权限!

    2、进行闪回查询必须设置自动回滚段管理,在init.ora设置参数UNDO_MANAGEMENT=AUTO,参数UNDO_RETENTION=n,决定了能往前闪回的最大时间,值越大就需要越多Undo空间。

    大神详解:http://dbajun.iteye.com/blog/222191

  • 相关阅读:
    oracle的安装与plsql的环境配置
    Working with MSDTC
    soapui-java.lang.Exception Failed to load url
    Oracle 一个owner访问另一个owner的table,不加owner
    Call API relation to TLS 1.2
    Call API HTTP header Authorization: Basic
    VS2008 .csproj cannot be opened.The project type is not supported by this installat
    The changes couldn't be completed.Please reboot your computer and try again.
    Create DB Table View Procedure
    DB Change
  • 原文地址:https://www.cnblogs.com/anzhi/p/7515789.html
Copyright © 2011-2022 走看看