中联区卫经验分享吧 关注:96贴子:1,095
  • 0回复贴,共1

【oracle相关】关于数据闪存恢复的说明

取消只看楼主收藏回复

【问题】在沙坪坝某医院因某些原因导致当天早上8点半至9点的时间内费用相关表中的记录丢失,丢失后打算用oracle的归档日志能够全部恢复回来,没有马上用闪存方式恢复费用相关表的一部份数据,当查看归档日志时,归档设置的是以半小时归档备份,因时间长了,所以导致这部份数据无法恢复,只能手工处理!
【分析】oracle的闪回技术可以快速的将数据库恢复到较早的时间点;也可以将表恢复到过去的某个时间点而不必从备份进行还原;闪回删除可还原意外删除的表。 归档日志中设置了归档时间,始终有间隔时间未及时归档备份,当发现某些表中数据丢失后,时间很及时的情况下,发现因数据丢失后,将重要的表数据能用闪存恢复的,尽量及时恢复一部份数据;
【处理】当表中数据误删的恢复办法,开启归档,闪存恢复
1.通过select timestamp_to_scn(to_timestamp('2014-03-13 09:00:00','YYYY-MM-DD HH:MI:SS')) from dual;
查找时间段删除结果:13526973
2.将删除时间转换为scn
select * from reportinfo AS OF SCN 13526973 ----wher id='..........'
将删除的reportinfo表中的scn点的数据取出
3.然后可以根据这个数据进行还原操作
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数据.处理即可


1楼2015-03-03 10:44回复