oracle執行delete,資料恢復

2021-09-02 11:55:00 字數 804 閱讀 8465

經常不小心執行delete刪除語句,如何恢復資料,表查詢閃回機制;所有操作必須以sys使用者身份;

select * from sys.smon_scn_time t order by t.time_dp desc; 

--scn

與時間的對應關係 ,

每隔5分鐘,系統產生一次系統時間標記與scn的匹配並存入sys.smon_scn_time表。 

1, 獲得當前時間點的scn:

select dbms_flashback.get_system_change_number from dual;

2,首先,確定刪除資料的時間,查詢出對應的scn號;

select m.*  from (

select to_char(t.time_mp/( 60 * 60 * 24)+to_date('1970-01-01 08:00:00', 'yyyy-mm-dd hh:mi:ss'), 'yyyy-mm-dd hh:mi:ss' )  sd , t.scn  

from sys.smon_scn_time t  order by t.time_dp desc  

)  m  

where m.sd  like  '%2015-07-04 09:40%'

上面語句查詢出  

2015-07-04 09:40  時間點對應的scn的號;

3,  恢復資料:

insert into scott.test_wt select * from test_wt as of scn 12744670;

test_wt為scott使用者下的表名;恢復成功

Oracle資料庫使用delete誤刪資料恢復

恢復方式 一.根據時間恢復 1 查詢資料庫當前時間 目的是為了檢查資料庫時間是否與你電腦時間相近,避免時間不同而將資料恢復到錯誤時間點 select to char sysdate,yyyy mm dd hh24 mi ss from dual 2 查詢刪除資料時間點之前的資料 select fro...

誤用DELETE刪除了ORACLE表的資料怎麼辦

第一種情況 使用delete刪除資料 1.用以下語句找出確定時間點刪除的資料 select from 表名 as of timestamp to timestamp 刪除時間點 yyyy mm dd hh24 mi ss 或者用以下語句找出當前時間之前幾分鐘的資料 select from 表名 as...

Oracle中DELETE和TRUNCATE的區別

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