oracle数据库,恢复到24小时内的数据

  • 因为更新的时候忘记添加条件,导致数据混乱。
  • 用此方法,把数据恢复。
--首先查询在某个时间点的数据  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

 

如果是企业版本的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'); 
posted @ 2018-06-26 01:00  Cxw丶cm  阅读(1013)  评论(0编辑  收藏  举报