oracle刚删完的数据找回

本文介绍了一种在Oracle数据库中恢复已删除数据的方法。通过保留的时间戳将数据恢复到删除前的状态,并重新插入到原表中,确保数据完整性得以恢复。
转http://blogold.chinaunix.net/u2/86716/showart_1812792.html

删除数据前表中记录
1> select t.*, t.rowid from vt_temp_test;
1 1 2 3.00 4.00
2 5 6 7.00 8.00
3 9 10 11.00 12.00
4 13 14 15.00 16.00

记录原数据完整时间点
2> select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
1 2009-01-08 09:23:53

删除表中记录
3> delete from vt_temp_test;

找回原数据完整时间点数据
4> select * from vt_temp_test as of timestamp to_timestamp('2009-01-08 09:23:53', 'yyyy-mm-dd hh24:mi:ss');
1 1 2 3.00 4.00
2 5 6 7.00 8.00
3 9 10 11.00 12.00
4 13 14 15.00 16.00

插入丢失数据到原表
5> insert into vt_temp_test select * from vt_temp_test as of timestamp to_timestamp('2009-01-08 09:23:53', 'yyyy-mm-dd hh24:mi:ss');

验证数据恢复情况
6> select * from vt_temp_test
1 1 2 3.00 4.00
2 5 6 7.00 8.00
3 9 10 11.00 12.00
4 13 14 15.00 16.00

---- 此时表明数据已完全恢复到原数据完整时间点的数据 ----

#### 注:当执行 truncate table vt_temp_test 时,就无法恢复数据,查找当时数据会报错:ORA-01466 unable to read table - table definition has changed。drop table vt_temp_test则更不可恢复 ####


如果是mysql:http://www.isstudy.com/mysql/4629.html
mysql没测试是否好使
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值