扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
今天闲来无事,测试一下之前误删数据使用SCN恢复的经过。
本人不喜欢理论那一大套长篇概论,直接开始试验:
首先查看当前SCN值,如果删之后没有查scn值。可以根据scn当前值往前调试,只要保证。你delete删除之后中间没有其他操作。
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:空间域名、虚拟空间、营销软件、网站建设、黟县网站维护、网站推广。
SELECT dbms_flashback.get_system_change_number FROM dual;
SELECT CURRENT_SCN FROM V$DATABASE;
知道当前SCN号了。SCN一直在增长,这个没啥,然后查看某一个表数据:
select * from zjw.AA;
然后删除这个表并且commit:
delete from zjw.AA
再来查查这个表: select * from zjw.AA
没有数据了。然后根据SCN查看当时SCN值对应的这个表的数据
select * from ZJW.AA as of scn 12637719;
有数据,说明可以,然后来使用insert插入。吧这个数据插入到当前AA表内:
insert into zjw.AA select * from zjw.AA as of scn 12637719;
然后在查看这个表数据:
select * from zjw.AA
ok
成功恢复。
这里说明一下。我前两次差的SCN和最后使用的SCN值不一样,这个没关系。这个SCN值他一直再涨,所以只要是我delete之前的SCN值都可以。从我操作到delete之间的SCN任意一个都可以使用,
比如:我现在在根据SCN随便插两个也可以,我就用最先查到的SCN吧
如:
select from ZJW.AA as of scn 12637321;
select from ZJW.AA as of scn 12637366;
看到没有,结果一样。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流