剛不小心刪除了表裡的資料,還好找到了這個。
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....