ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 基于datafile的不完全恢复

基于datafile的不完全恢复

原创 Linux操作系统 作者:赵宇 时间:2008-09-01 10:31:14 0 删除 编辑
测试的缘由:一直我们都对OCP的不完全恢复有着概念的理解,那就是不完全恢复只能针对数据库,不能对datafile,这个是没有问题,但是10g的闪回数据库是否给了我们一个概念,那就是可以往回查找数据。如果没有闪回功能,没有备份,只有归档,可以恢复吗,也是可以的。
                      昨天,我看了一个贴子,http://www.itpub.net/thread-1046806-1-1.html,我认为是可以恢复的,结果兄弟们都认为不能恢复,当时手头没有数据库,向d.c.b.a 请教,以及查看eygle 的http://www.eygle.com/archives/2005/10/oracle_hidden_allow_resetlogs_corruption.html 这篇文章后,确认了可以恢复。

    模拟环境:
     首先模拟第1次DML,修改数据后,这个表有1000条记录,归档的sequence#为63号
     SQL> select count(*) from sb_zsxx;
  COUNT(*)
----------
      1700
SQL>
SQL>
SQL> delete from sb_zsxx where rownum<701;
已删除700行。
SQL> commit;
提交完成。

SQL> select * from v$log;
    GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS           FIRST_CHANGE# FIRST_TIME
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- ----------
         1          1         62   52428800          2 YES INACTIVE               1101458 29-8月 -08
         2          1         61   52428800          2 YES INACTIVE               1098397 29-8月 -08
         3          1         63   52428800          2 NO  CURRENT                1104823 01-9月 -08
SQL> alter system archive log current;
系统已更改。
SQL> alter system checkpoint;
系统已更改。

SQL> conn scott/tiger
已连接。
SQL> select count(*) from sb_zsxx;
  COUNT(*)
----------
      1000

     再次对这个表做DML,归档sequence#为64号,当前归档是65号
SQL> delete from sb_zsxx where rownum<501;
已删除500行。
SQL> commit;
提交完成。

SQL> conn / as sysdba
已连接。
SQL> alter system archive log current;
系统已更改。
SQL> alter system checkpoint;
系统已更改。
SQL> archive log list
数据库日志模式            存档模式
自动存档             启用
存档终点            +DATA_GROUP/devdb/
最早的联机日志序列     63
下一个存档日志序列   65
当前日志序列           65

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/175005/viewspace-440323/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
暂无介绍

注册时间:2007-12-25

  • 博文量
    73
  • 访问量
    916776