【Flashback】Flashback Drop閃回刪除功能實踐
Oracle的Flashback Drop閃回刪除功能給出我們一種誤DROP刪除表的便捷恢復方式,實現這種功能的原理是Oracle的“回收站”(RecycleBin)功能。注意,如果被刪除的表原先是存放在SYSTEM系統表空間上,則不支援此功能。
1.Flashback Drop功能
恢復被錯誤drop掉的表。當一張表被刪除後,依然可以檢視被drop表的內容,是透過檢視回收站中的內容實現的。
2.實現原理
被刪除的表將被存在一個叫recyclebin回收站的地方,當drop掉表後,實際上就是將改表改了個名字。
3.與回收站有關的檢視
DBA_RECYCLEBIN
USER_RECYCLEBIN
RECYCLEBIN
4.顯示當前使用者曾經被drop掉的表簡簡訊息
SQL> show recyclebin
5.清除回收站內容的條件
1)表空間不足
2)使用者的空間配額不足
3)purge命令
4)使用flashback命令恢復表後,與之對應的回收站中的那條記錄內容被清除。
6.Flashback Drop語法
SQL> FLASHBACK TABLE ft_1 TO BEFORE DROP;
SQL> FLASHBACK TABLE "BIN$Z6gzDCWg7hfgQAB/AQAROQ==$0" TO BEFORE DROP;
上面兩種方法都可以實現找回被刪除表的功能。第一種方法是恢復到最後一次被刪除的狀態;第二種方法則可以對回收站中具體的一個物件進行閃回,用於一張表被多次刪除後的恢復場景。
7.Flashback Drop閃回刪除功能實踐
(1).建立測試表ft_1
sys@ora11g> conn secooler/secooler
Connected.
secooler@ora11g> create table ft_1 as select * from all_objects;
Table created.
secooler@ora11g> select table_name from user_tables where table_name = 'FT_1';
TABLE_NAME
------------------------------
FT_1
(2).模擬drop掉ft_1表
secooler@ora11g> drop table ft_1;
Table dropped.
(3).檢視回收站,這裡看到ft_1表已經在回收站中了
secooler@ora11g> show recyclebin;
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
---------------- ------------------------------ ------------ -------------------
FT_1 BIN$vXtL504BE5vgQMKQt8Bnug==$0 TABLE 2012-04-12:20:14:24
(4).演示一下查詢功能
secooler@ora11g> select count(*) from "BIN$vXtL504BE5vgQMKQt8Bnug==$0";
COUNT(*)
----------
71256
(5).閃回被drop掉的表
secooler@ora11g> flashback table ft_1 to before drop;
Flashback complete.
secooler@ora11g> select table_name from user_tables where table_name = 'FT_1';
TABLE_NAME
------------------------------
FT_1
這裡在能確認回收站中哪個是要恢復的表時,也可以使用下面的命令進行恢復。
secooler@ora11g> drop table ft_1;
Table dropped.
secooler@ora11g> show recyclebin;
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
---------------- ------------------------------ ------------ -------------------
FT_1 BIN$vXtL504IE5vgQMKQt8Bnug==$0 TABLE 2012-04-12:20:18:35
secooler@ora11g> flashback table "BIN$vXtL504IE5vgQMKQt8Bnug==$0" to before drop;
Flashback complete.
secooler@ora11g> select table_name from user_tables where table_name = 'FT_1';
TABLE_NAME
------------------------------
FT_1
OK,到這裡,被刪除的表便被順利的恢復回來。
8.清除回收站內容的方法
如果您確定、一定以及肯定不想恢復這些表的時候,可以使用以下方法對回收站進行清理。
1)清除當前使用者的回收站
SQL> purge recyclebin;
SQL> purge user_recyclebin;
2)清除指定表空間tbs_sec_d的回收站
SQL> purge tablespace tbs_secooler_d;
3)清除指定表空間tbs_sec_d,同時指定使用者sec的回收站
SQL> purge tablespace tbs_sec_d user sec;
4)清除回收站中所有的內容(sys使用者)
SQL> purge dba_recyclebin
9.不產生回收站資料的同時drop表方法
這種方法是徹底刪除表的方法,使用前要考慮清楚。
SQL> drop table ft_1 purge;
10.小結
在使用Flashback Drop閃回刪除功能之前要充分了解此項功能的實現原理,以及使用此項功能的條件和它的限制條件。閃回刪除功能為我們提供了表被誤DROP後的便捷恢復手段。
Good luck.
secooler
12.04.12
-- The End --
1.Flashback Drop功能
恢復被錯誤drop掉的表。當一張表被刪除後,依然可以檢視被drop表的內容,是透過檢視回收站中的內容實現的。
2.實現原理
被刪除的表將被存在一個叫recyclebin回收站的地方,當drop掉表後,實際上就是將改表改了個名字。
3.與回收站有關的檢視
DBA_RECYCLEBIN
USER_RECYCLEBIN
RECYCLEBIN
4.顯示當前使用者曾經被drop掉的表簡簡訊息
SQL> show recyclebin
5.清除回收站內容的條件
1)表空間不足
2)使用者的空間配額不足
3)purge命令
4)使用flashback命令恢復表後,與之對應的回收站中的那條記錄內容被清除。
6.Flashback Drop語法
SQL> FLASHBACK TABLE ft_1 TO BEFORE DROP;
SQL> FLASHBACK TABLE "BIN$Z6gzDCWg7hfgQAB/AQAROQ==$0" TO BEFORE DROP;
上面兩種方法都可以實現找回被刪除表的功能。第一種方法是恢復到最後一次被刪除的狀態;第二種方法則可以對回收站中具體的一個物件進行閃回,用於一張表被多次刪除後的恢復場景。
7.Flashback Drop閃回刪除功能實踐
(1).建立測試表ft_1
sys@ora11g> conn secooler/secooler
Connected.
secooler@ora11g> create table ft_1 as select * from all_objects;
Table created.
secooler@ora11g> select table_name from user_tables where table_name = 'FT_1';
TABLE_NAME
------------------------------
FT_1
(2).模擬drop掉ft_1表
secooler@ora11g> drop table ft_1;
Table dropped.
(3).檢視回收站,這裡看到ft_1表已經在回收站中了
secooler@ora11g> show recyclebin;
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
---------------- ------------------------------ ------------ -------------------
FT_1 BIN$vXtL504BE5vgQMKQt8Bnug==$0 TABLE 2012-04-12:20:14:24
(4).演示一下查詢功能
secooler@ora11g> select count(*) from "BIN$vXtL504BE5vgQMKQt8Bnug==$0";
COUNT(*)
----------
71256
(5).閃回被drop掉的表
secooler@ora11g> flashback table ft_1 to before drop;
Flashback complete.
secooler@ora11g> select table_name from user_tables where table_name = 'FT_1';
TABLE_NAME
------------------------------
FT_1
這裡在能確認回收站中哪個是要恢復的表時,也可以使用下面的命令進行恢復。
secooler@ora11g> drop table ft_1;
Table dropped.
secooler@ora11g> show recyclebin;
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
---------------- ------------------------------ ------------ -------------------
FT_1 BIN$vXtL504IE5vgQMKQt8Bnug==$0 TABLE 2012-04-12:20:18:35
secooler@ora11g> flashback table "BIN$vXtL504IE5vgQMKQt8Bnug==$0" to before drop;
Flashback complete.
secooler@ora11g> select table_name from user_tables where table_name = 'FT_1';
TABLE_NAME
------------------------------
FT_1
OK,到這裡,被刪除的表便被順利的恢復回來。
8.清除回收站內容的方法
如果您確定、一定以及肯定不想恢復這些表的時候,可以使用以下方法對回收站進行清理。
1)清除當前使用者的回收站
SQL> purge recyclebin;
SQL> purge user_recyclebin;
2)清除指定表空間tbs_sec_d的回收站
SQL> purge tablespace tbs_secooler_d;
3)清除指定表空間tbs_sec_d,同時指定使用者sec的回收站
SQL> purge tablespace tbs_sec_d user sec;
4)清除回收站中所有的內容(sys使用者)
SQL> purge dba_recyclebin
9.不產生回收站資料的同時drop表方法
這種方法是徹底刪除表的方法,使用前要考慮清楚。
SQL> drop table ft_1 purge;
10.小結
在使用Flashback Drop閃回刪除功能之前要充分了解此項功能的實現原理,以及使用此項功能的條件和它的限制條件。閃回刪除功能為我們提供了表被誤DROP後的便捷恢復手段。
Good luck.
secooler
12.04.12
-- The End --
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/519536/viewspace-590833/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Flashback Drop閃回刪除功能實踐
- Flashback Drop閃回刪除功能實踐(基於回收站)
- 【Flashback】Flashback Database閃回資料庫功能實踐Database資料庫
- 【Flashback】Flashback Database閃回資料庫功能實驗Database資料庫
- 【Flashback】使用Flashback Drop技術閃回被DROP表的指定版本資料
- FlashBack總結之閃回資料庫與閃回刪除資料庫
- 【Flashback】Flashback Query功能實踐
- 【Flashback】Flashback Table功能實踐
- 【Flashback】啟用Flashback Database閃回資料庫功能Database資料庫
- [Flashback]Flashback Database閃回資料庫實驗Database資料庫
- 【實驗】【Flashback】Flashback EXP功能實踐
- oracle 閃回 flashbackOracle
- 開啟oracle的flashback閃回功能Oracle
- Flashback_oracle閃回功能的使用Oracle
- 【實驗】【Flashback】Flashback Transaction Query功能實踐
- Flashback閃回技術
- Oracle 11g開啟閃回功能FlashbackOracle
- flashback技術之---flashback drop
- flashback query閃回資料
- Flashback Query閃回查詢
- Oracle 閃回特性(FLASHBACK DATABASE)OracleDatabase
- 閃回之 回收站、Flashback Drop (table、index、trigger等)Index
- Flashback Database 閃回資料庫Database資料庫
- 【Mysql】mysql閃回flashback-5.7MySql
- 使用dbms_flashback工具包實現閃回查詢功能
- flashback總結三之Flashback_DROP
- [Flashback]開啟資料庫閃回資料庫功能資料庫
- [閃回特性之閃回版本查詢]Flashback Version Query
- 利用flashback閃回表和資料
- Oracle閃回技術--Flashback Version QueryOracle
- flashback閃回技術應用解析
- 閃回版本查詢(Flashback Version Query)
- 閃回區滿的處理 - flashback
- 啟用Flashback Database閃回資料庫功能(閃回區滿解決辦法 )Database資料庫
- 【實驗】【Flashback】Flash Version Query功能實踐
- 【Flashback】使用檢視快速獲得Flashback Query閃回查詢資料
- 閃回資料歸檔-- Flashback Data ArchiveHive
- 聊聊閃回版本查詢Flashback Version Query