导致错误删除数据记录的原因有很多。如何恢复被错误删除的记录?我们先来看看这个概念:
SCN (System Change Number)的英文拼写是:System Change Number,是数据库中非常重要的数据结构。
SCN提供了oracle的内部时钟机制,可以看作是一个逻辑时钟,对于恢复操作至关重要。
注意:Oracle仅根据SCN执行恢复。
它定义了在某一时刻提交的数据库版本。当一个东西被提交时,它会被赋予一个唯一的SCN来标记它。有人认为SCN是指系统提交数,但通常SCN只有在提交时才会发生变化,所以很多情况下,
这两个名词经常互换使用。
实际上,它对我们来说并不是最重要的词。重要的是我们知道SCN是Oracle内部的时钟机制。Oracle通过SCN维护数据库一致性,通过SCN实现Oracle的重要恢复机制。
我们可以从下面的例子中了解具体的实现过程:
1.原始表记录$ sqlplusygle/eygle
SQL*Plus:版本10.1.0.2.0 -生产于2005年3月30日08:52:04
版权所有(c) 1982,2004,Oracle。保留所有权利。
连接到:
Oracle数据库10g企业版10.1.0.2.0版-64位生产
通过分区、OLAP和数据挖掘选项
SQL & gt从t1中选择count(*);
计数(*)
-
9318
2.误删所有记录
并提交更改。
SQL & gt从t1中删除;
删除了9318行。
SQL & gt提交;
提交完成。
SQL & gt从t1中选择count(*);
计数(*)
-
0
3.获取当前SCN
如果在删除前确定SCN是最好的,如果不是,可以尝试闪回查询。
SQL & gtselect DBMS _ flashback . get _ system _ change _ number from dual;
获取_系统_变更_编号
-
10671006
SQL & gt从scn 10671000开始的t1中选择count(*);
计数(*)
-
0
SQL & gt从scn 10670000开始的t1中选择count(*);
计数(*)
-
9318
我们看到当SCN=10670000时,数据都在。
4.恢复数据。
SQL & gt从scn 10670000开始,从t1插入t1 select *;
创建了9318行。
SQL & gt提交;
提交完成。
SQL & gt从t1中选择count(*);
计数(*)
-
9318
第二条
误删数据后恢复
从dual中选择timestamp _ to _ SCN(to _ timestamp(' 2009-03-13 09:00:00 ',' YYYY-MM-DD HH:MI:SS ');
结果:13526973
将删除时间转换为scn
select * from reportinfo
自SCN 13526973起
获取reportinfo表中scn点的数据。
然后就可以根据这个数据来恢复了。
将表reporttest创建为select * from reportinfo,其中1 = 0;
插入到report test select * from report info AS SCN 13526973;
——以上两句话要合成一句话。
-自SCN 13526973起,将表reporttest创建为select * from reportinfo
这是reporttest表中的reportinfo数据,也就是scn点。处理一下。
关键词:甲骨文
优侠库网站每天提供最新最热门的安卓手机软件、游戏下载、分享热门手游资讯攻略教程、手机软件教程步骤,专注安卓手机游戏软件下载。本文链接:http://www.123down.cn/gonglue/227321.html