1. 程式人生 > >oracle數據庫還原24小時內的時間點

oracle數據庫還原24小時內的時間點

企業 直接 數據還原 表名 rom 導致 amp sele oracle數據

--首先查詢在某個時間點的數據  t_asn_dtl 為表名
SELECT * FROM t_asn_dtl AS OF TIMESTAMP TO_TIMESTAMP(‘20180625 22:30:00‘,‘YYYYMMDD HH24:MI:SS‘);
--把這個時間點的數據,賦值到一個新的表內,tab_bal;最好新建兩張表,算是一個備份 create table tab_bak as SELECT * FROM T_ASN_DTL AS OF TIMESTAMP TO_TIMESTAMP(‘20180625 22:30:00‘,‘YYYYMMDD HH24:MI:SS‘);
--查詢這個表,看數據是否已經進來,
SELECT * FROM tab_bak;
SELECT * FROM T_ASN_DTL;
--把數據混亂的表名改了,然後把新建的表名改成使用的表名,這樣數據就回來了.
alter table T_ASN_DTL rename to taba
alter table tab_bak rename to T_ASN_DTL

  因為更新的時候忘記攜帶條件,導致數據混亂.

  用此方法把數據還原到1個小時前(22.30.00)

如果是企業版本的oracle,可以直接使用flashback

alter table 表名 enable row movement;
flashback table 表名 to timestamp to_timestamp(‘2011-03-04 05:00:00‘,‘yyyy-mm-dd HH24:MI:SS‘); 

 標準版oracle是不支持這個回閃動作的!!!

oracle數據庫還原24小時內的時間點