Oracle快速找回被刪除的表
很多情況下為了能快速找回被刪除的表,可以利用回收站找到並重建被刪除的表。
(一)
回收站裡是否可以找到被刪除的表,和undo的保留策略、空間大小有很大關係,超時或者空間不足都會導致無法閃回表,只能從備份中恢復。
# 檢視當前undo 保留策略
SQL> show parameter undo_
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
undo_management string AUTO
undo_retention integer 3600
undo_tablespace string UNDOTBS1
(二)
# 測試表
SQL> select table_name from dba_tables where owner=`WORKING`;
TABLE_NAME
------------------------------
DBA_OBJECTS
###被刪除的物件可以在回收站中檢視,現在沒有內容
SQL> select count(*) from dba_recyclebin;
COUNT(*)
----------
0
(三)
drop 表
# 刪除資料表
SQL> drop table working.DBA_OBJECTS;
Table dropped.
# 回收站中保留了剛刪除的表的資訊,原物件 working.DBA_OBJECTS 在回收站中有一個對映名字 BIN$NSM8ZSPA8vvgU2W8CgpvQg==$0
SQL> select owner,object_name,original_name from dba_recyclebin;
OWNER OBJECT_NAME
------------------------------ ------------------------------
ORIGINAL_NAME
--------------------------------
WORKING BIN$NSM8ZSPA8vvgU2W8CgpvQg==$0
DBA_OBJECTS
(四)
利用閃回特性,還原被刪除的資料表,並重新命名
# 可以直接閃回表,也可以rename 表名
SQL> flashback table working.DBA_OBJECTS to before drop rename to DBA_OBJECTS_bak;
Flashback complete.
SQL> select table_name from dba_tables where owner=`WORKING`;
TABLE_NAME
------------------------------
DBA_OBJECTS_BAK
SQL> select count(*),owner from working.DBA_OBJECTS_bak group by owner;
COUNT(*) OWNER
---------- ------------------------------
1 WORKING
10 OUTLN
3340 PUBLIC
512 RPTADM
609 SYSTEM
8 ORACLE_OCM
124 GWADM
55 DBSNMP
5 APPQOSSYS
9592 SYS
124 PORTALADM
11 rows selected.
(五)
誤更新資料的恢復(update delete)
如果知道確切的誤操作時間,可以閃回至某個時間點,比如20分鐘之前
# 拿上一步恢復的表做測試
SQL> select object_name,owner from working.DBA_OBJECTS_bak where owner=`WORKING`;
OBJECT_NAME
--------------------------------------------------------------------------------
OWNER
------------------------------
DBA_OBJECTS
WORKING
###修改資料
SQL> update working.DBA_OBJECTS_bak set object_name = `DBA_OBJECTS_UPDATE` where owner = `WORKING`;
1 row updated.
SQL> commit;
Commit complete.
###第二次更新
SQL> update working.DBA_OBJECTS_bak set object_type = `TABLE_UPDATE` where owner = `WORKING`;
1 row updated.
SQL> commit;
Commit complete.
###檢視更新後的資料
SQL> select object_name,owner,object_type from working.DBA_OBJECTS_bak where owner=`WORKING`;
OBJECT_NAME
--------------------------------------------------------------------------------
OWNER OBJECT_TYPE
------------------------------ -------------------
DBA_OBJECTS_UPDATE
WORKING TABLE_UPDATE
(六)
閃回資料到20分鐘之前
SQL> flashback table WORKING.DBA_OBJECTS_BAK to timestamp(systimestamp-interval `20` minute);
Flashback complete.
SQL> select object_name,owner,object_type from working.DBA_OBJECTS_bak where owner=`WORKING`;
OBJECT_NAME
--------------------------------------------------------------------------------
OWNER OBJECT_TYPE
------------------------------ -------------------
DBA_OBJECTS
WORKING TABLE
超出回滾段保留的時效,可以通過備份檔案進行恢復需要的物件。
相關文章
- 刪除oracle表被鎖住Oracle
- 找回Oracle中Delete刪除的記錄Oracledelete
- [DB2]使用recover命令找回刪除的表DB2
- 利用rman的TSPITR技術找回刪除的表!
- 快速刪除oracle物件Oracle物件
- Eclipse 刪除找回Eclipse
- 高效快速刪除Oracle表中重複記錄Oracle
- 被誤刪的檔案正確處理方法,快速找回誤刪的檔案
- 【Oracle】刪除所有表Oracle
- oracle批次刪除表Oracle
- oracle批量刪除表Oracle
- oracle 快速刪除和快速插入的方法之一Oracle
- ORACLE 11g TSPITR恢復被刪除的表空間Oracle
- MYSQL下如何安全的快速刪除大表MySql
- Mac 備忘錄( Notes)裡筆記被永久刪除後的找回方法Mac筆記
- dual系統表被刪除的解決方法
- oracle-快速刪除重複的記錄Oracle
- 利用Logmnr找回誤刪除的資料
- ORACLE表空間的建立修改刪除Oracle
- oracle級聯刪除使用者,刪除表空間Oracle
- win10推送檔案被刪除怎麼恢復_win10推送檔案已被刪除如何找回Win10
- oracle 快速刪除大批量資料方法(全部刪除,條件刪除,刪除大量重複記錄)Oracle
- oracle刪除表欄位和oracle表增加欄位Oracle
- mac誤刪檔案怎樣快速找回?Mac
- Oracle-給表刪除欄位Oracle
- Oracle 閃回刪除表原理分析Oracle
- 【Oracle】刪除大表操作一則Oracle
- oracle 快速刪除大批量資料方法(全部刪除,條件刪除,刪除大量重複記錄) 轉Oracle
- 【轉】oracle 快速刪除大批量資料方法(全部刪除,條件刪除,刪除大量重複記錄)Oracle
- 通過flashback database恢復被刪除的表空間Database
- 利用延時備庫找回被誤刪的資料
- [Logmnr]使用logminer找回被誤刪的資料
- 防刪庫實用指南 | 只需一步,快速召回被誤刪的表
- 【piner】利用Logmnr找回誤刪除資料
- 利用Logmnr找回誤刪除資料(zt)
- 2 Day DBA-管理方案物件-執行備份和恢復-使用Oracle閃回刪除功能恢復被刪除的表物件Oracle
- 【北亞資料恢復】誤刪除oracle表和誤刪除oracle表資料的資料恢復方法資料恢復Oracle
- ORACLE刪除-表分割槽和資料Oracle