ORACLE誤刪除資料的恢復方法

2021-05-22 20:16:29 字數 1241 閱讀 9974

有很多原因導致了資料記錄的誤刪,怎樣恢復誤刪的記錄呢?先來看看這個概念:

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

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

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

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

這兩個名詞經常被交替使用。

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

具體執行流程我們可從以下幾個示例圖中體會;

1.原表記錄 

sql>select count(*) from t1;

count(*)

2.誤刪除所有記錄,並且提交更改。

sql>delete from t1;

9318 rows deleted.

sql>commit;

commit complete.

sql>select count(*) from t1;

count(*)

3.獲得當前scn

如果能夠確切知道刪除之前scn最好,如果不知道,可以進行閃回查詢嘗試.

sql>select dbms_flashback.get_system_change_number from dual;

get_system_change_number

sql>select count(*) from t1 as of scn 10671000;

count(*)

sql>select count(*) from t1 as of scn 10670000;

count(*)

我們看到在scn=10670000時,資料都在。

4.恢復資料.

sql>insert into t1 select * from t1 as of scn 10670000;

9318 rows created.

sql>commit;

commit complete.

sql>select count(*) from t1;

count(*)

oracle 誤刪除資料恢復方法

方法一 insert into t cc object select from t cc object as of timestamp to date 2013 11 1 15 00 00 yyyy mm dd hh24 mi ss 這句sql的意思是找到t cc object 表裡2013 11 ...

oracle誤刪除資料的恢復方法

學習資料庫時,我們只是以學習的態度,考慮如何使用資料庫命令語句,並未想過工作中,如果誤操作一下,都可能導致無可挽回的損失。當我在工作中真正遇到這些問題時,我開始尋找答案。今天主要以oracle資料庫為例,介紹關於表中資料刪除的解決辦法。不考慮全庫備份和利用歸檔日誌 刪除表中資料有三種方法 delet...

oracle誤刪除資料的恢復方法

學習資料庫時,我們只是以學習的態度,考慮如何使用資料庫命令語句,並未想過工作中,如果誤操作一下,都可能導致無可挽回的損失。當我在工作中真正遇到這些問題時,我開始尋找答案。今天主要以oracle資料庫為例,介紹關於表中資料刪除的解決辦法。不考慮全庫備份和利用歸檔日誌 刪除表中資料有三種方法 delet...