大橙子网站建设,新征程启航

为企业提供网站建设、域名注册、服务器等服务

oracle如何根据内部SCN号恢复DML误删除数据

这篇文章主要为大家展示了“oracle如何根据内部SCN号恢复DML误删除数据”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“oracle如何根据内部SCN号恢复DML误删除数据”这篇文章吧。

创新互联建站-专业网站定制、快速模板网站建设、高性价比荆州网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式荆州网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖荆州地区。费用合理售后完善,10多年实体公司更值得信赖。

以下示例内容是由亲测的:

1、新建临时表:

SQL> create table t as select * from dba_tables;

Table created.

SQL> select count(1) from t;

  COUNT(1)

----------

      2734

2、查看当前的SCN号。

SQL> select dbms_flashback.get_system_change_number fscn from dual;

      FSCN

----------

   1730685

也可以通过时间来查看历史的scn号码:

select name,FIRST_CHANGE#  fscn,NEXT_CHANGE# nscn,FIRST_TIME from v$archived_log;

13641588409883

3、删除表中的数据:

SQL> delete from t;

2734 rows deleted.

SQL> commit;

Commit complete.

SQL> select count(1) from t;

  COUNT(1)

----------

     0

4、查询历史的SCN号的数据

SQL> select count(*) from t as of scn 1730685;

  COUNT(*)

----------

      2734

可以查询到历史的SCN号码下面,t表的数量是2734

5、恢复T表的数据:

SQL> insert into t select * from t as of scn 1730685;

2734 rows created.

SQL> commit;

Commit complete.

SQL> select count(1) from t;

  COUNT(1)

----------

      2734

OK 了,通过以上一个简单的示例 我们可以找到一个比较简单的恢复数据的方法。

且此种方法不需要开启flashback方式运行。但是只能使用DML操作下。若表发生truncate 操作则无法恢复。

另外这种方法和flashback较为类似

以上是“oracle如何根据内部SCN号恢复DML误删除数据”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!


当前名称:oracle如何根据内部SCN号恢复DML误删除数据
文章路径:http://dzwzjz.com/article/gsghjj.html
在线咨询
服务热线
服务热线:028-86922220
TOP