zoukankan      html  css  js  c++  java
  • Oracle10g的flashback drop

    在以往的版本中,除了不完全恢复,通常没有一个好的解决办法。目前,Oracle10g为了加快用户错误操作的恢复,提供了flashback drop新特性。

      flashback drop功能可以允许你从当前数据库中恢复一个被drop了的对象,在执行drop操作时,现在Oracle不是真正删除它,而是将该对象自动将放入回收站。对于一个对象的删除,其实这就是简单的重令名操作。

      “回收站”我们可以理解为一个虚拟的容器,它用来存放所有被删除的对象。在回收站中,被删除的对象将占用创建时的同样的空间,你甚至还可以对已经删除的表查询,也可以利用flashback功能来恢复它, 这个就是flashback drop功能。

      回收站内的相关信息我们可以从recyclebin/user_recyclebin/dba_recyclebin等视图中获取,或者通过SQL*Plus的show recyclebin 命令查看。

     

    SYS AS SYSDBA on 29-MAR-05 >connect eygle/eygle
    Connected.
    
    EYGLE  on 29-MAR-05 >create table t1 as select * from dba_users;
    
    Table created.
    
    EYGLE  on 29-MAR-05 >drop table t1;
    
    Table dropped.
    
    EYGLE  on 29-MAR-05 >show recyclebin;
    ORIGINAL NAME    RECYCLEBIN NAME                OBJECT TYPE  DROP TIME
    ---------------- ------------------------------ ---------- ----------------
    T1               BIN$83T2+h92CJvgNAgAIMR+0Q==$0 TABLE    2005-03-29:21:52:00
    EYGLE  on 29-MAR-05 > FLASHBACK TABLE t1 TO BEFORE DROP;
    
    Flashback complete.
    EYGLE  on 29-MAR-05 >desc t1
     Name                                      Null?    Type
     --------------------------------  ----------------------------
     USERNAME                                  NOT NULL VARCHAR2(30)
     USER_ID                                   NOT NULL NUMBER
     PASSWORD                                           VARCHAR2(30)
     ACCOUNT_STATUS                            NOT NULL VARCHAR2(32)
     LOCK_DATE                                          DATE
     EXPIRY_DATE                                        DATE
     DEFAULT_TABLESPACE                        NOT NULL VARCHAR2(30)
     TEMPORARY_TABLESPACE                      NOT NULL VARCHAR2(30)
     CREATED                                   NOT NULL DATE
     PROFILE                                   NOT NULL VARCHAR2(30)
     INITIAL_RSRC_CONSUMER_GROUP                        VARCHAR2(30)
     EXTERNAL_NAME                                      VARCHAR2(4000)
    
    EYGLE  on 29-MAR-05 >show recyclebin;

      假如您打算彻底清除这些对象,可以使用Purge命令,如下例:

     

    EYGLE  on 29-MAR-05 >show recyclebin;
    ORIGINAL NAME  RECYCLEBIN NAME                OBJECT TYPE  DROP TIME
    -------------- ---------------------------- ------------ ---------------
    T             BIN$29ycNBfhan/gNAgAIMR+0Q==$0 TABLE     2004-06-02:15:26:35
    EYGLE  on 29-MAR-05 >purge table t;
    
    Table purged.
    
    EYGLE  on 29-MAR-05 >show recyclebin;

      注释:使用"purge recyclebin"可以清除回收站中的所有对象。

      同时,您也可以通过purge user_recyclebin或purge dba_recyclebin来清除不同的回收站对象。

      通过PURGE TABLESPACE TSNAME,PURGE TABLESPACE TSNAME USER USERNAME命令来选择清除回收站。

      假如需要彻底删除一个表,不想放到回收站中,可以在drop语句中增加purge选项,例如:

      drop table tablename purge

      注释:您需要注意的是sysdba的Drop操作不会被记录,Oracle从不推荐用户用sysdba身份来创建用户对象。

  • 相关阅读:
    LeetCode 109 Convert Sorted List to Binary Search Tree
    LeetCode 108 Convert Sorted Array to Binary Search Tree
    LeetCode 107. Binary Tree Level Order Traversal II
    LeetCode 106. Construct Binary Tree from Inorder and Postorder Traversal
    LeetCode 105. Construct Binary Tree from Preorder and Inorder Traversal
    LeetCode 103 Binary Tree Zigzag Level Order Traversal
    LeetCode 102. Binary Tree Level Order Traversal
    LeetCode 104. Maximum Depth of Binary Tree
    接口和多态性
    C# 编码规范
  • 原文地址:https://www.cnblogs.com/wbzhao/p/2408453.html
Copyright © 2011-2022 走看看