当前所在位置:珠峰网资料 >> 计算机 >> Oracle认证 >> 正文
oracle flashback闪回(二)
发布时间:2010/10/24 10:02:24 来源:www.xue.net 编辑:城市总裁吧

    3、删除所有的记录提交。

    Sql代码

    SQL> delete from t1

    2  ;

    已删除8302行。

    SQL> commit;

    提交完成。

    4、获得当前SCN

    如果能够确切知道删除之前SCN最好,如果不知道,可以进行闪回查询尝试。

    Sql代码

    SQL> select dbms_flashback.get_system_change_number from dual;

    GET_SYSTEM_CHANGE_NUMBER

    ------------------------

    1482649

    SQL> select count(*) from t1 as of scn 1482600;

    COUNT(*)

    ----------

    8302

    SCN=1482600时,t1表中的所有记录都还在。

    5、利用闪回恢复数据。

    查看验证一下:

    Sql代码

    SQL> insert into t1 select * from t1 as of scn 1482600;

    已创建8302行。

    SQL> commit;

    提交完成。

    结果OK

    或者还可以如下操作

    Sql代码

    SQL>flashback table t1 to scn 1482600;

    SQL> commit;

    Commit complete.

    --对于drop table t1 的操作flashback

    SQL> drop table t1;

    SQL>COMMIT;

    SQL> flashback table t1to before drop;

    SQL>commit;

    对于怎么取的SCN可以使用timestamp_to_scn() 函数,如:

    Sql代码

    select timestamp_to_scn(to_timestamp('2010-10-19 21:00:00','YYYY-MM-DD HH:MI:SS')) from dual;

广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved