首页 > 数据库 >Oracle数据恢复

Oracle数据恢复

时间:2022-10-13 10:33:05浏览次数:41  
标签:数据恢复 删除 10 timestamp test 2022 recycle Oracle

 

注意事项

恢复被delete删除的数据,删除时间点很关键,orcle所在服务器的时间和真实时间可能不同。

比如,你在自己电脑显示时间为2022/10/13 10:15:02时,误删了数据,而此时orcle服务器时间为2022/10/12 21:15:02,那么恢复数据时应该使用2022/10/12 21:15:02作为删除时间点。

如果时间有误(指定的删除时间点,晚于orcle所在服务器的当前系统时间时),可能会提示:ORA-08186: invalid timestamp specified

 

恢复被delete的数据

全部数据恢复

直接插入删除前的数据

例子:不小心把test_recycle表的数据全部delete删除掉了,查出指定时间时该表的数据(删除前的时间,注意oracle所处服务器时间可能和你电脑的系统时间不一样),重新插入数据到表
insert into test_recycle 
( select * from test_recycle as of timestamp to_timestamp('2022-10-11 09:11:00','yyyy-mm-dd hh24:mi:ss'))

 

部分数据恢复

情况1:如果还保留着delete语句,知道误删了哪些数据和删除的时间点

 

delete from test_recycle where name = 'a'

insert into test_recycle 
( select * from test_recycle as of timestamp to_timestamp('2022-10-11 5:41:00','yyyy-mm-dd hh24:mi:ss') where  name = 'a') -- 代入删除时的where条件

 

情况2:只知道删除的时间点

以唯一索引作为数据的唯一身份标识,将删除前有但是当前没有的数据重新插入到表

insert into test_recycle 
( 
select * from test_recycle as of timestamp to_timestamp('2022-10-11 5:41:00','yyyy-mm-dd hh24:mi:ss') 
where id not in(select id from test_recycle) 
)

 

恢复被drop的表,并恢复数据到drop前

查出被drop表的object_name

select * from user_recyclebin t order by t.droptime desc -- object_name:BIN$6r/mywqrLI/gVUgfhvyykg==$0

恢复

flashback Table "BIN$6r/mywqrLI/gVUgfhvyykg==$0" to before drop;

 

参考资料

https://blog.csdn.net/zhannabiedong/article/details/124441818

 

标签:数据恢复,删除,10,timestamp,test,2022,recycle,Oracle
From: https://www.cnblogs.com/leooutpost/p/16780030.html

相关文章