ORACLE闪回操作

使用 Oracle Database 10g 中的闪回表特性,可以毫不费力地恢复被意外删除的表。以下是一个不该发生却经常发生的情况:用户删除了一个非常重要的表当然是意外地删除并需要尽快地恢复。(在某些时候,这个不幸的用户可能就是 DBA!)

Oracle9i Database 推出了闪回查询选项的概念,以便检索过去某个时间点的数据,但它不能闪回 DDL 操作,如删除表的操作。唯一的恢复方法是在另一个数据库中使用表空间的时间点恢复,然后使用导出/导入或其他方法,在当前数据库中重新创建表。这一过程需要 DBA 进行大量工作并且耗费宝贵的时间,更不用说还要使用另一个数据库进行克隆。

ORACLE的闪回查询 delete操作后

 as of TIMESTAMP as of SCN

 

查询该表一分钟前的数据

select * from  abc as of TIMESTAMP SYSDATE-1/1440;

 

查询该表一分钟前的数据

select * from  abc as of SCN16014177255;

通过这种方式,我们可以将数据回滚到以前某个状态,比如误删除并且commit.可以通过闪回方式进行数据的恢复.

比如:

delete  from abc;

commit;

insert into abc select *from  abc as of TIMESTAMPSYSDATE-1/1440;

commit;

2.误删除数据的情况下

FLASHBACK TABLE b to timestampto_timestamp('2007-08-28 11:14:00','yyyy-mm-dd hh24:mi:ss');//我试过,可以

 FLASHBACK TABLE cc
   TO TIMESTAMP (SYSTIMESTAMP -INTERVAL '01'minute);

//我也史过可以,而且这种好一点,闪回一分钟以前的数据。
在这种误删除数据的情况下,应该事先激活表的行移动特征,如:
ALTER TABLE emp ENABLE ROW MOVEMENT;

闪回表:drop 操作后

SELECT object_name, original_name FROMuser_recyclebin;

SHOW recyclebin

 desc"BIN$LS3MyjLQRcXgQAB/AQA8Ow==$0"

FLASHBACK TABLE tablename TO BEFOREDROP;

 

 

 

create table odrm_del
as select *
from odrm
as of timestamp to_timestamp
'2011-04-27 12:00:00', 'yyyy-mm-dd hh24:mi:ss')

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值