使用Oracle10g的Flashback Query进行数据闪回

http://www.eygle.com/archives/2005/03/eoaoracle10gaef.html


Oracle10g对于闪回查询进行了增强,支持更简单的SQL操作,允许对误删除、误更新等DML操作进行闪回。
看一下以下测试:
1.原表记录
$ sqlplus eygle/eygle

SQL*Plus: Release 10.1.0.2.0 - Production on Wed Mar 30 08:52:04 2005

Copyright (c) 1982, 2004, Oracle.  All rights reserved.


Connected to:
Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options

EYGLE  on 30-MAR-05 >select count(*) from t1;

  COUNT(*)
----------
      9318

2.误删除所有记录
并且提交更改。
EYGLE  on 30-MAR-05 >delete from t1;

9318 rows deleted.

EYGLE  on 30-MAR-05 >commit;

Commit complete.

EYGLE  on 30-MAR-05 >select count(*) from t1;

  COUNT(*)
----------
         0

3.获得当前SCN
如果能够确切知道删除之前SCN最好,如果不知道,可以进行闪回查询尝试.
EYGLE  on 30-MAR-05 >select dbms_flashback.get_system_change_number from dual;

GET_SYSTEM_CHANGE_NUMBER
------------------------
                10671006

EYGLE  on 30-MAR-05 >select count(*) from t1 as of scn 10671000;

  COUNT(*)
----------
         0

EYGLE  on 30-MAR-05 >select count(*) from t1 as of scn 10670000;

  COUNT(*)
----------
      9318

我们看到在SCN=10670000时,数据都在。
4.恢复数据.
EYGLE  on 30-MAR-05 >insert into t1 select * from t1 as of scn 10670000;

9318 rows created.

EYGLE  on 30-MAR-05 >commit;

Commit complete.

EYGLE  on 30-MAR-05 >select count(*) from t1;

  COUNT(*)
----------
      9318

EYGLE  on 30-MAR-05 >


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值