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

php中文网
发布: 2016-06-07 17:59:20
原创
1318人浏览过

在Oracle数据库操作中,经常会有不小心误删除数据、drop表的情况出现。以前,这种情况发生后,开发人员通常会去求助DBA或管理者,使用数据库备份恢复去找回这些数据。 从Oracle 9i、10g开始,你可以不必去用备份来恢复了。有一种快速恢复方法,称之为flashbac

在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')
最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号