您当前位置:主页 > 资讯攻略 >
来源:未知
2020-08-19 21:04:07 浏览: 分类:资讯攻略

ORACLE误删数据的恢复

导致错误删除数据记录的原因有很多。如何恢复被错误删除的记录?我们先来看看这个概念:

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

攻略资讯
安卓软件