Oracle10g的flashback drop
在以往的版本中,除了不完全恢復(fù),通常沒(méi)有一個(gè)好的解決辦法。目前,Oracle10g為了加快用戶(hù)錯(cuò)誤操作的恢復(fù),提供了flashback drop新特性。
flashback drop功能可以允許你從當(dāng)前數(shù)據(jù)庫(kù)中恢復(fù)一個(gè)被drop了的對(duì)象,在執(zhí)行drop操作時(shí),現(xiàn)在Oracle不是真正刪除它,而是將該對(duì)象自動(dòng)將放入回收站。對(duì)于一個(gè)對(duì)象的刪除,其實(shí)這就是簡(jiǎn)單的重令名操作。
“回收站”我們可以理解為一個(gè)虛擬的容器,它用來(lái)存放所有被刪除的對(duì)象。在回收站中,被刪除的對(duì)象將占用創(chuàng)建時(shí)的同樣的空間,你甚至還可以對(duì)已經(jīng)刪除的表查詢(xún),也可以利用flashback功能來(lái)恢復(fù)它, 這個(gè)就是flashback drop功能。
回收站內(nèi)的相關(guān)信息我們可以從recyclebin/user_recyclebin/dba_recyclebin等視圖中獲取,或者通過(guò)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 t1Name Null? Type-------------------------------- ----------------------------USERNAME NOT NULL VARCHAR2(30)USER_ID NOT NULL NUMBERPASSWORD VARCHAR2(30)ACCOUNT_STATUS NOT NULL VARCHAR2(32)LOCK_DATE DATEEXPIRY_DATE DATEDEFAULT_TABLESPACE NOT NULL VARCHAR2(30)TEMPORARY_TABLESPACE NOT NULL VARCHAR2(30)CREATED NOT NULL DATEPROFILE NOT NULL VARCHAR2(30)INITIAL_RSRC_CONSUMER_GROUP VARCHAR2(30)EXTERNAL_NAME VARCHAR2(4000)EYGLE on 29-MAR-05 >show recyclebin; |
?
假如您打算徹底清除這些對(duì)象,可以使用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"可以清除回收站中的所有對(duì)象。
同時(shí),您也可以通過(guò)purge user_recyclebin或purge dba_recyclebin來(lái)清除不同的回收站對(duì)象。
通過(guò)PURGE TABLESPACE TSNAME,PURGE TABLESPACE TSNAME USER USERNAME命令來(lái)選擇清除回收站。
假如需要徹底刪除一個(gè)表,不想放到回收站中,可以在drop語(yǔ)句中增加purge選項(xiàng),例如:
drop table tablename purge
注釋:您需要注意的是sysdba的Drop操作不會(huì)被記錄,Oracle從不推薦用戶(hù)用sysdba身份來(lái)創(chuàng)建用戶(hù)對(duì)象。
轉(zhuǎn)載于:https://www.cnblogs.com/wbzhao/archive/2012/03/20/2408453.html
總結(jié)
以上是生活随笔為你收集整理的Oracle10g的flashback drop的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: dblclick,默认全选屏蔽
- 下一篇: 使用delphi 开发多层应用(十二)使