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後的便捷恢復手段。
Flashback Drop閃回刪除功能實踐
相關文章
- 【Flashback】Flashback Drop閃回刪除功能實驗
- 【Flashback】Flashback Database閃回資料庫功能實驗Database資料庫
- flashback query閃回資料
- Oracle閃回技術--Flashback Version QueryOracle
- ORACLE 閃回檢視v$flashback_database_log/statOracleDatabase
- MySQL使用binlog2sql閃回誤刪除資料MySql
- Oracle 12.2新特性: PDB級閃回資料庫(Flashback PDB)Oracle資料庫
- 【FLASHBACK】Oracle閃回及回收站相關語句參考Oracle
- 刪使用者刪表空間的操作還能flashback回來嗎?
- 6、MySQL刪除資料庫(DROP DATABASE語句)MySql資料庫Database
- GeminiDB Cassandra介面新特性FLASHBACK釋出:任意時間點秒級閃回
- Orcale利用閃回功能恢復資料
- wepy 滑動刪除功能
- vue 左滑刪除功能Vue
- 切換功能增加刪除
- 【Oracle 12c資料庫支援閃回庫功能】實驗Oracle資料庫
- javascript實現 checkbox全選和批量刪除功能JavaScript
- Oracle drop分割槽表單個分割槽無法透過閃回恢復Oracle
- iOS程式碼瘦身實踐:刪除無用的類iOS
- Nestjs最佳實踐教程(七): 批次操作與軟刪除JS
- 一個非常老但是很有用的功能-閃回
- DM7閃回與閃回查詢
- 列表頁取出刪除編輯功能
- 簡單介紹Python drop方法刪除列之inplace引數例項Python
- dg_閃回資料庫實驗資料庫
- [重慶思莊每日技術分享]-執行DROP USER ... CASCADE操作刪除很慢
- Oracle閃回技術 概覽 應用程式開發功能Oracle
- Oracle閃回功能恢復偶然丟失的資料(轉)Oracle
- Oracle閃回技術 為Oracle閃回配置資料庫Oracle資料庫
- 仿 iOS 列表的編輯功能 – 刪除篇iOS
- Oracle 11G 閃回技術 閃回版本查詢和閃回事務查詢Oracle
- 2.6.3 指定閃回區
- QQ增刪功能實現
- MySQL誤刪資料?試試資料閃回工具binlog2sqlMySql
- vuecli3+webpack4優化實踐(刪除console.log和配置dllPlugin)VueWeb優化Plugin
- Oracle資料庫閃回Oracle資料庫
- 【FLASHBACK】Oracle flashback data archive 介紹OracleHive
- 在Oracle DG Standby庫上啟用flashback database功能OracleDatabase