Oracle 恢復被刪除的資料,解決誤操作刪除資料

2021-10-06 17:05:36 字數 1756 閱讀 2861

**:

在刪除資料的時候不小心,把delete語句執行錯了,把別的表給delete,而且還執行了commit!真汗.......資料是相當的重要........廢話少說了!趕快找方法吧:

第一種:

1.開啟flash儲存的許可權

alter table tablename enable row movement ;

2.把錶還原到指定時間點

flashback table tablename to timestamp to_timestamp(''2011-02-28 10:40:00'',''yyyy-mm-dd hh24:mi:ss'');

後面的引數為要還原的時間點

第二種:利用oracle的快照進行查詢某個時間點的資料

select * from tablename as of timestamp  (systimestamp - interval '100' minute)

或select * from tablename as of timestamp to_timestamp('2011-05-21 11:40:00','yyyy-mm-dd hh24:mi:ss');

這樣可以查詢到指定的時間段的資料,再把查詢到的資料複製到原來的表中。

第三種:其他(在別的地方找到的答案,但還沒有試過!)

刪除表後,可以採用如下操作:在 查詢表user_recyclebin最近操作過的表名稱,然後用閃回(只能用於10g及以上版本)。 

select * from user_recyclebin;

flash back table table_name to before drop; 

如果是刪了或修改裡面的資料,可以先建立乙個快表將刪除修改之前狀態的資料找回到這個表中:

create table quick_table as select * from table_name as of timestamp system-1/24 (一小時前的),減去的時間可以自己定。

四:通過scn實現

scn(系統改變號),它的英文全拼為:system change number ,它是資料庫中非常重要的乙個資料結構。

scn提供了oracle的內部時鐘機制,可被看作邏輯時鐘,這對於恢復操作是至關重要的

注釋:oracle 僅根據 scn 執行恢復。

它定義了資料庫在某個確切時刻提交的版本。在事物提交時,它被賦予乙個唯一的標示事物的scn 。一些人認為 scn 是指, system commit number ,而通常 scn 在提交時才變化,所以很多情況下,這兩個名詞經常被交替使用。

究竟是哪個詞其實對我們來說並不是最重要的,重要的是我們知道 scn 是 oracle 內部的時鐘機制, oracle 通過 scn 來維護資料庫的一致性,並通過scn 實施 oracle 至關重要的恢復機制。

1:執行下面語句,將刪除時間轉換為scn 

select timestamp_to_scn(to_timestamp('2011-08-03 10:00:00','yyyy-mm-dd hh:mi:ss')) from dual;

結果:11837812:在將table的scn點取出來。

select * from moas of scn 11837813;

最後把查出來得結果insert到原表中

insert into mo select * from mo as of scn 1183781

oracle恢復被刪除的資料

兩種方法 1 scn方法 2 時間戳法 1 scn方法 通過scn恢復刪除資料的sql語法 a 獲取當前資料庫的scn號 select current scn from v database 查詢到的scn號為 b 查詢當前scn號之前的scn號 select from 表名 as of scn s...

Oracle 恢復被刪除的表 資料

假設表名稱為 table delete 獲得系統當前時間 如果出現 則是因為該表是被truncate的,該方法無效 假設被刪除的表名稱為 testtruncate select from user recyclebin order by droptime desc flashback table t...

Oracle表資料被刪除後的恢復

在oracle資料庫使用過程中,會存在表中資料被誤刪除的情況,如果被刪除的資料有備份,則可從備份中獲取,若表資料被刪除至發現被刪除期間沒有進行備份,則可使用oracle閃回技術進行資料恢復 適用於短時間內被刪除的資料 可恢復資料的時間根據資料庫的配置有所不同 select from 表名 as of...