oracle数据库delete 后数据恢复

1.获得当前的SCN

select dbms_flashback.get_system_change_number from dual;

SCN(系统改变号),它的英文全拼为:System Change Number ,它是数据库中非常重要的一个数据结构。

  SCN提供了Oracle的内部时钟机制,可被看作逻辑时钟,这对于恢复操作是至关重要的
  注释:Oracle 仅根据 SCN 执行恢复。

  它定义了数据库在某个确切时刻提交的版本。在事物提交时,它被赋予一个唯一的标示事物的SCN 。一些人认

为 SCN 是指, System Commit Number ,而通常 SCN 在提交时才变化,所以很多情况下,

  这两个名词经常被交替使用。

  究竟是哪个词其实对我们来说并不是最重要的,重要的是我们知道 SCN 是 Oracle 内部的时钟机制, Oracle 通

过 SCN 来维护数据库的一致性,并通过SCN 实施 Oracle 至关重要的恢复机制。

      2.由于数据库没有停,因此scn号也在不断变化,因此需要查出数据在哪个scn点的时候还是存在的
      SQL> select count(*) from w as of scn 117854000; ------查看数据在scn号为117854000时是否存在
3.select count(*) from 表名 as of scn 10671000; 10671000为或得的SCN后
需要往前调整scn编号
4.insert into t1 select * from t1 as of scn 10670000;
commit;
现在稍微总结一下:

        在做数据表的删除操作之前,一点要谨慎,尤其是在生产系统不能停机的情况下,要么首先将数据库或者表备份

一下,再进行删除,这样就算需要恢复也可以用备份进行恢复;如果删除时候没有做相关备份,在删除之前一定

要先查下系统当前scn,并且验证出数据在哪个scn点的时候还是存在的(这点很重要,如果没有找到,就无法恢

复删除的数据)恢复的时候就基于这个scn点的恢复。

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/bzhzhc/article/details/52381596
个人分类: oracle
想对作者说点什么? 我来说一句

Sqlite 数据库删除恢复

2015年10月14日 5.9MB 下载

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭