Oracle数据库的闪回操作(查询指定时间的数据、恢复数据)

通过DELETE删除数据后相当于放入回收站,一般情况下可以找回;通过UPDATE更新数据后数据库也会保留数据快照。闪回就是恢复指定时间的数据快照以达到恢复数据的目的。
根据步骤一查询出数据快照,恢复数据自行决定(之前的数据都有了,咋恢复还不会吗?)

一、查询指定时间的数据快照

--1、查询执行过SQL语句,确定快照的时间
SELECT R.FIRST_LOAD_TIME,R.SQL_TEXT,R.* FROM V$SQLAREA R 
WHERE R.SQL_TEXT LIKE '%ABOUT YOUR SQL%' ORDER BY R.FIRST_LOAD_TIME DESC

--2、查询基于指定时间的数据快照
SELECT * FROM YOUR_TABLENAME AS OF TIMESTAMP 
TO_TIMESTAMP('2019-02-05 20:00:00', 'yyyy-mm-dd hh24:mi:ss');
--以当前时间为准,125分钟之前的数据快照
SELECT * FROM YOUR_TABLENAME AS OF TIMESTAMP SYSDATE - 125 / 1440

二、恢复数据

FLASHBACK时,如果不确定删除的具体时间,在没有太多操作这个表的情况下,闪回的时间稍微提前一点。

  • 闪回表数据SQL语句:
--1、启动表的row movement特性
ALTER TABLE YOUR_TABLENAME ENABLE ROW MOVEMENT;

--2、闪回指定时间的快照
FLASHBACK TABLE YOUR_TABLENAME TO TIMESTAMP 
TO_TIMESTAMP('2018-04-23 16:06:00','yyyy-mm-dd hh24:mi:ss');

--3、关闭表的row movement功能
ALTER TABLE YOUR_TABLENAME DISABLE ROW MOVEMENT;
  • 闪回数据表的SQL语句:
--闪回表(通过TRUNCATE语句删除的表无法闪回)
FLASHBACK TABLE YOUR_TABLENAME TO BEFORE DROP;
  • 14
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值