oracle用delete命令刪除資料恢復

2021-08-31 14:02:24 字數 1535 閱讀 3078

剛不小心刪除了表裡的資料,還好找到了這個。

sql>select count(*) from t1;

count(*)

----------

9318

2.誤刪除所有記錄

並且提交更改。

sql>delete from t1;

9318 rows deleted.

sql>commit;

commit complete.

sql>select count(*) from t1;

count(*)

----------

03.獲得當前scn

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

sql>select dbms_flashback.get_system_change_number from dual;

get_system_change_number

------------------------

10671006

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

count(*)

----------

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

count(*)

----------

9318

我們看到在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(*)

----------

9318

文章2誤刪資料後的還原

select timestamp_to_scn(to_timestamp('2009-03-13 09:00:00','yyyy-mm-dd hh:mi:ss')) from dual;

結果:13526973

將刪除時間轉換為scn

select * from reportinfo

as of scn 13526973

將reportinfo表中的scn點的資料取出

然後可以根據這個資料進行還原操作

create table reporttest as select * from reportinfo where 1=0;

insert into reporttest select * from reportinfo as of scn 13526973;

--上面兩句應該可以合成一句

--create table reporttest as select * from reportinfo as of scn 13526973;

這是reporttest表中就是scn點的reportinfo資料.處理即可

Oracle用delete命令刪除資料恢復

同事找回時操作的資料庫為oracle 10g 之前刪除方式為delete 不曉得trancate好使不 scn 系統改變號 它的英文全拼為 system change number 它是資料庫中非常重要的乙個資料結構。scn提供了oracle的內部時鐘機制,可被看作邏輯時鐘,這對於恢復操作是至關重要...

Oracle中DELETE和TRUNCATE的區別

語法 delete from aa truncate table aa 區別 1.delete from後面可以寫條件,truncate不可以。2.delete from記錄是一條條刪的,所刪除的每行記錄都會進日誌,而truncate一次性刪掉整個頁,因此日至裡面只記錄頁釋放,簡言之,delete ...

oracle執行delete,資料恢復

經常不小心執行delete刪除語句,如何恢復資料,表查詢閃回機制 所有操作必須以sys使用者身份 select from sys.smon scn time t order by t.time dp desc scn 與時間的對應關係 每隔5分鐘,系統產生一次系統時間標記與scn的匹配並存入sys....