oracle truncate闪回数据库恢复

1、创建试验表

conn scott/tiger

create table truncate_test as select * from user_objects;

select count(*) from truncate_test;

 

2、记录truncate table 的时间,但在生产中是不知道准确的时间的只能尝试找时间点了

SQL> select to_char(systimestamp,'yyyy-mm-dd hh24:mi:ss.FF9') from dual;

TO_CHAR(SYSTIMESTAMP,'YYYY-MM
-----------------------------
2009-11-06 17:15:18.406000000


3、截断表
truncate table truncate_test;
select * from truncate_test;

shutdown immediate

startup mount


flashback database to timestamp
to_timestamp('2009-11-06 17:15:18','yyyy-mm-dd hh24:mi:ss');
闪回完成。

alter database open read only;

select * from scott.truncate_test;

发现数据已经找回来了,这样就可以吧数据库online了

4、看看在此时表是否恢复回来了,如果没有恢复回来,重新选择时间点

startup mount
alter database open resetlogs

select * from scott.truncate_test;

这属于不完全恢复

出处:http://blog.163.com/card_2005/blog/static/11781036820091065501988/

posted on   jack_Meng  阅读(4736)  评论(0编辑  收藏  举报

编辑推荐:
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· DeepSeek “源神”启动!「GitHub 热点速览」
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器

导航

< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8
点击右上角即可分享
微信分享提示

喜欢请打赏

扫描二维码打赏

支付宝打赏

主题色彩