加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

flashback table快速恢复误删除的数据(Oracle恢复数据)

发布时间:2020-12-15 17:25:59 所属栏目:百科 来源:网络整理
导读:flashback table快速恢复误删除的数据 ???????????????? ? 原文链接:http://www.linuxidc.com/Linux/2012-09/70988.htm ????????? 在Oracle数据库操作中,经常会有不小心误删除数据、drop表的情况出现。以前,这种情况发生后,开发人员通常会去求助DBA或管

flashback table快速恢复误删除的数据

???????????????? ? 原文链接:http://www.linuxidc.com/Linux/2012-09/70988.htm

????????? 在Oracle数据库操作中,经常会有不小心误删除数据、drop表的情况出现。以前,这种情况发生后,开发人员通常会去求助DBA或管理者,使用数据库备份恢复去找回这些数据。

从oracle 9i、10g开始,你可以不必去用备份来恢复了。有一种快速恢复方法,称之为flashback。你可以flashback query,也可以flashback table。

一、FLASHBACK QUERY

适应范围:表中的数据持续变化,需要看到某个时间点错误删除修改了某些记录,可以根据这些记录再进行数据恢复。

--闪回到15分钟前

select *? from orders?? as of timestamp (systimestamp - interval '15' minute)?? where ......

这里可以使用DAY、SECOND、MONTH替换minute,例如:

SELECT * FROM orders AS OF TIMESTAMP(SYSTIMESTAMP - INTERVAL '2' DAY)

--闪回到某个时间点

select? *?? from orders?? as of timestamp?? to_timestamp ('01-Sep-04 16:18:57.845993','DD-Mon-RR HH24:MI:SS.FF') where ...

--闪回到两天前

select * from orders?? as of timestamp (sysdate - 2) where.........

二、FLASHBACK TABLE

1、表已经drop掉之后使用,可以快速恢复。

flashback table orders to before drop;

如果drop的表已经重新建立了一个同名称的表,那么需要加上rename to子句。

flashback table order to before drop?? rename to order_old_version;

2、表的数据错误删除或修改后,没有后续数据变化,可以快速恢复。

第一步,首先要启用行迁移

alter table order enable row movement;

第二步,闪回表

到15分钟前:

flashback table order?? to timestamp systimestamp - interval '15' minute;

到某个时间点:

FLASHBACK TABLE order TO TIMESTAMP??? TO_TIMESTAMP('2007-09-12 01:15:25 PM','YYYY-MM-DD HH:MI:SS AM')

非常感谢作者分享,我今天也是无意中删除了Oracle的表,

alter table OPERATOR? rename to OPERATOR_nNN; ---对重新创建的表改名

flashback table OPERATOR? to before drop; ----恢复原始表

select * from OPERATOR; ----查询结果

?上述三条语句就把数据恢复了。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读