oracle資料庫資料表誤刪後,恢復資料處理方式

2021-10-23 13:31:26 字數 950 閱讀 7541

有兩種方案解決此問題,具體操作:

一:根據時間來恢復:

1、查詢資料庫當前時間(目的是為了檢查資料庫時間是否與你電腦時間相近,避免時間不同而將資料恢復到錯誤時間點)

select to_char(sysdate,『yyyy-mm-dd hh24:mi:ss』) from dual;

2、查詢刪除資料時間點之前的資料

select * from 表名 as of timestamp to_timestamp(『2016-08-11 16:12:11』,『yyyy-mm-dd hh24:mi:ss』);

(若沒有資料 ,將時間繼續提前)

3、恢復資料(激動人心的時刻)

flashback table 表名 to timestamp to_timestamp(『2016-08-11 16:12:11』,『yyyy-mm-dd hh24:mi:ss』);

大功告成,資料恢復成功;

但是也可能會出現問題,比如報錯:ora-08189:未啟用行移動功能,不能閃回表;

不要怕,這個很簡單;

alter table 表名 enable row movement;

然後再次執行上面sql即可;

二:根據資料庫scn恢復資料

1、查詢當前資料庫scn號

select current_scn from v$database;(不能執行的話,切換到sys使用者或system使用者查詢)

查詢到的當前值為:91799986

2、縮小scn號查詢被刪除表資料(若無資料繼續縮小scn,由於資料庫操作不止一人,scn號變化比較多,可以多縮小幾個號)

select * from 表名 as of scn 91799980;

3、恢復資料

flashback table 表名 to scn 91799980;

恢復完成。若報錯:ora-08189:未啟用行移動功能,不能閃回表;結果方案同上。

oracle資料庫表的記錄誤刪後如何恢復

今天不小心將oracle中的一些資料刪除了,結果在網上查了下,找到了可以恢復刪除的資料的方法。真感慨oracle產品的強大啊!下面與大家一起分享。alter table ctywtqclinfo enable row movement 改變表的行標可移動 flashback table ctywtq...

Oracle資料庫 資料表操作實戰

1 使用sql plus建立dept 系部 表和class 班級 表,表結構如下圖所示。建立dept表 建立class表 create table class class id char 5 primary key,class name varchar2 30 unique dept id char...

恢復oracle資料庫誤刪資料

一 通過scn恢復刪除 1 獲得當前資料庫的scn號 select current scn from v database 切換到sys使用者或system使用者查詢 查詢到的scn號為 1499223 2 查詢當前scn號之前的scn select from 表名 as of scn 149922...