Oracle Purge和drop的區別
最近發現oracle中出現了這些奇怪的表名,上網查詢後發現是oracle10g的回收站功能,並沒有徹底的刪除表,而是把表放入回收站,最後就出現了這樣一堆奇怪的表名......
清除的方法如下:
purge table origenal_tableName;
purge index origenal_indexName;
查詢垃圾資訊,可以用如下SQL語句:
SELECT t.object_name,t.type ,t.original_name FROM user_recyclebin t;
現在發現,原來還有這個命令:
PURGE recyclebin;
根本用不了上面那麼複雜。呵呵。。。
另,刪除Table不進入Recycle的方法:
drop table tableName purge;
不過,我想一般的人都不願意用這個。
最近發現oracle中出現了這些奇怪的表名,上網查詢後發現是oracle10g的回收站功能,並沒有徹底的刪除表,而是把表放入回收站,最後就出現了這樣一堆奇怪的表名。。。。
清除的方法如下:
purge table origenal_tableName;
purge index origenal_indexName;
查詢垃圾資訊,可以用如下SQL語句:
SELECT t.object_name,t.type ,t.original_name FROM user_recyclebin t;
現在發現,原來還有這個命令:
PURGE recyclebin;
根本用不了上面那麼複雜。呵呵。。。
另,刪除Table不進入Recycle的方法:
drop table tableName purge
-
Purge和drop的區別:
Oracle 10g提供的flashback drop 新特性為了加快使用者錯誤操作的恢復,Oracle10g提供了flashback drop的功能。而在以前的版本中,除了不完全恢復,通常沒有一個好的解決辦法。
Oracle 10g的flashback drop功能,允許你從當前中恢復一個被drop了的物件,在執行drop操作時,現在不是真正刪除它,而是將該物件自動將放入回收站。對於一個物件的刪除,其實僅僅就是簡單的重令名操作。
所謂的回收站,是一個虛擬的容器,用於存放所有被刪除的物件。在回收站中,被刪除的物件將佔用建立時的同樣的空間,你甚至還可以對已經刪除的表查詢,也可以利用flashback功能來恢復它,這個就是flashback drop功能。
回收站內的相關資訊可以從recyclebin/user_recyclebin/dba_recyclebin等檢視中獲取,或者透過SQL*Plus的show recyclebin 命令檢視。
C:\>sqlplus /nolog
SQL*Plus: Release 10.1.0.2.0 - Production on 星期三6月1 10:09:32 2005
Copyright (c) 1982, 2004, Oracle. All rights reserved.
SQL> conn tiger/tiger@xe
已連線。
SQL> select count(*) from goodsinfo1;
COUNT(*)
----------
38997
SQL> drop table goodsinfo1;
表已刪除。
SQL> commit;
提交完成。
SQL> select count(*) from goodsinfo1;
select count(*) from goodsinfo1
*
第1 行出現錯誤:
ORA-00942: table or view does not exist
啊!天啊!我刪錯了表,怎麼辦好呢?啊!將資料庫閃回到剛才刪除表前的時間就可以啦。
不行!那其它的操作也會一齊閃回。現在可以用flashback drop的功能了。
SQL> show recyclebin;
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
---------------- ------------------------------ ------------ -------------------
GOODSINFO1 BIN$RFG58GsfRheKlVKnWw8KKQ==$0 TABLE 2005-06-01:10:11:03
SQL> FLASHBACK TABLE goodsinfo1 TO BEFORE DROP;
閃回完成。
SQL> select count(*) from goodsinfo1;
COUNT(*)
----------
38997
看看已刪除的表回來了。真的謝天謝地啊!
SQL> show recyclebin;
如果想要徹底清除這些物件,可以使用Purge命令,如:
SQL> select count(*) from goodsinfo2;
COUNT(*)
----------
38997
SQL> drop table goodsinfo2;
表已刪除。
SQL> commit;
提交完成。
SQL> show recyclebin;
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
---------------- ------------------------------ ------------ -------------------
GOODSINFO2 BIN$BgSuEWMOSLOGZPcIc97O8w==$0 TABLE 2005-06-01:10:13:18
SQL> purge table goodsinfo2;
表已清除。
SQL> show recyclebin;
SQL>
使用purge recyclebin可以清除回收站中的所有物件。
類似的我們可以透過purge user_recyclebin或者是purge dba_recyclebin來清除不同的回收站物件。
透過PURGE TABLESPACE TSNAME,PURGE TABLESPACE TSNAME USER USERNAME命令來選擇清除回收站。
ps:使用者drop後不進recycle bin,所以不用purge
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29440247/viewspace-1260869/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle中drop user和drop user cascade的區別Oracle
- Oracle Drop表(purge)恢復(ODU)Oracle
- drop table和truncate table的區別
- oracle drop table purge無備份bbed恢復(1/3)Oracle
- oracle drop table purge無備份bbed恢復(2/3)Oracle
- oracle drop table purge無備份bbed恢復(3/3)Oracle
- DROP TABLE ** CASCADE CONSTRAINTS PURGEAI
- alter database drop datafile 與 drop tablespace file 的區別Database
- truncate delete drop 區別delete
- Oracle10g 回收站及徹底刪除table : drop table xx purge 以及drop flashOracle
- 資料包分析中Drop和iDrop的區別
- truncate和不帶where子句的delete, 以及drop區別delete
- Oracle - @和@@、&與&& 的區別Oracle
- MySQL和Oracle的區別MySqlOracle
- Oracle和MySQL的區別OracleMySql
- Oracle Recyclebin - purgeOracle
- 資料庫:drop、truncate、delete的區別資料庫delete
- 在MySQL中 Truncate Delect Drop 的區別MySql
- SQL truncate 、delete與drop區別SQLdelete
- Oracle User 和 Schema 的區別Oracle
- oracle中in和exists的區別Oracle
- 執行drop table base purge出現ora_00604
- Oracle的redo 和undo的區別Oracle
- select 表的時候如果別的會話TRUNCATE DROP PURGE表後會是什麼結果會話
- alter database datafile offline drop 與 alter tablespace drop datafile 區別Database
- Truncate table 詳解及與delete,drop 的區別delete
- Truncate table詳解及與delete,drop的區別delete
- Oracle10g 回收站及徹底刪除table : drop table xx purge 以及flashbackOracle
- ORACLE_BASE和ORACLE_HOME的區別Oracle
- Oracle DBA 和Oracle EBS DBA 的最大區別Oracle
- Oracle dba角色和sysdba的區別Oracle
- Oracle 和 mysql的9點區別OracleMySql
- oracle中distinct和group by的區別Oracle
- oracle中 DG和GG的區別Oracle
- Oracle中truncate和delete的區別Oracledelete
- (轉)ORACLE 中IN和EXISTS的區別Oracle
- Oracle中latch和lock的區別Oracle
- 【轉】oracle_base 和 oracle_home 的區別Oracle