oracle数据库还原24小时内的时间点

Posted Cxw丶cm

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

  因为更新的时候忘记携带条件,导致数据混乱.

  用此方法把数据还原到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小时内的时间点的主要内容,如果未能解决你的问题,请参考以下文章

请问oracle中用sql统计每天24个小时各个小时内的记录条数?(日期是不一样的,时间也是不一样的)

Oracle查询还原时间点数据/还原数据

oracle列出指定范围内的时间点

sqlserver回滚到前一小时

从表中检索特定 24 小时时间范围内的记录

Oracle RMAN备份还原方案