oracle truncate闪回数据库恢复

本文介绍了一种在Oracle数据库中进行不完全恢复的方法。通过创建测试表并记录截断表的时间点,利用闪回数据库功能回到指定的时间戳,实现数据的恢复。文章详细展示了SQL命令的具体使用过程。

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/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值