Oracle恢复Update操作前的数据详解
(2015-11-08 17:20:37)
标签:
恢复更新操作数据oracle恢复更新数据恢复update操作数据update操作数据恢复更新数据恢复 |
分类: Oracle数据库 |
一、对测试表数据进行更新操作并提交处理
--执行更新操作并提交了数据
update t_test01
set user_name='jiajia001'
where tid=1;
commit;
select * from t_test01
二、恢复数据操作处理
1、开启表行迁移功能
alter table t_test01 enable row movement;
注意:alter table XXX enable row
movement
语句会造成引用表XXX的对象(如存储过程、包、视图等)变为无效,执行完成后,需要重新对引用该表的对应进行重新编译;另外,shrink操作也必须开启行迁移功能。
2、查看操作时间点
select t.first_load_time,t.* from v$sqlarea t where
rownum<10 order by t.first_load_time desc ;
3、查看更新前时间点的数据情况
select * from t_test01
--你操作的那张表
as of timestamp to_timestamp('2015-11-08 16:35:00','yyyy-mm-dd
hh24:mi:ss');
4、创建临时表暂存更新前时间点的数据
create table t_test01_tmp
as
select * from t_test01
--你操作的那张表
as of timestamp to_timestamp('2015-11-08 16:35:00','yyyy-mm-dd
hh24:mi:ss');
--查看更新前数据情况是否准确
select * from t_test01_tmp
三、恢复更新前表数据处理
1、采用更新方式恢复表更新操作前数据
merge into t_test01 a
using t_test01_tmp b
on (a.tid=b.tid)
when matched then
--查看数据恢复情况
select * from t_test01;
2、删除原表,重命名方式恢复表更新操作前数据
drop table t_test01;
rename t_test01_tmp to t_test01;
--查看数据恢复情况
select * from t_test01;
本文根据网络资料,通过实际的数据测试总结而来。