11g刪除表會放在回收站,如何恢復?如何徹底刪除表?
阿新 • • 發佈:2019-01-05
11g刪除表會放在回收站,如何恢復?如何徹底刪除表?
1. 問題
11g刪除表會放在回收站,如何恢復,如何徹底刪除表?
2. 背景介紹
1. 回收站中的表可以用於閃回,例如某個表被刪除了,閃回可以恢復。
語句如下:
flashback table "BIN $zfLIpnfAAnvgQlkK+TM2IA==$0" to before drop;
flashback table 原表名 to before drop rename to 新表名;
-
閃回預設保留1天(db_flashback_retention_target),但是閃回空間預設2G(db_recovery_file_dest_size),佔滿前不會被自動清理。如果db_recovery_file_dest_size配置為0,則刪除的表不能被恢復。
-
在11g中drop表預設會放在回收站中,空間不會釋放,並且可能基類很多不會被清理,應該使用普洱個命令徹底刪除表,
drop table t_userinfo purge.
測試過程
-
基礎準備
使用如下語句新建:
create table t_ums_packageinf_bak as select * from t_ums_packageinfo;
-
刪除表並且將表進行恢復
-
刪除表
drop table t_ums_packageinf_bak;
-
去除回收站中查詢表的資訊
select * from dba_recyclebin t where
-
執行恢復命令從回收站中將表恢復
flasnback table "BIN $DbWX6OQGAoLgU5VWiApSvg==$0" to before drop.
表被恢復後,dba_recylebin 表中的資料不存在了。
-
-
刪除表無法恢復
-
刪除表
drop table t_ums_packageinf_bak purge
-
去除回收站中查詢表的資訊
select * from dba_recyclebin t where t.original_name =
查詢不到對應的資訊。
-
總結:
使用 drop table XX purge 命令刪除表的時候,表不能被恢復。