ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 在oracle10g 10.2.0.1上测试不完全恢复_recover database until scn

在oracle10g 10.2.0.1上测试不完全恢复_recover database until scn

原创 Linux操作系统 作者:wisdomone1 时间:2010-03-23 13:04:22 0 删除 编辑
群友谈到测试不完全恢复与自己预测结果不符,遂动手进行如下测试:

1,构建测试用户及专用表空间zxy
create tablespace zxy datafile 'c:\zxy.dbf' size 10m;
create user zxy identified by system default tablespace zxy account unlock;
grant resource,connect to zxy;
2,以zxy用户身份构建表tt,同时插入数据
conn zxy/system
create table tt(a int);
insert into tt values(1);
commit;
conn /as sysdba
alter system switch logfile;
alter system archivelog current;
3,通过rman对数据库进行一个全备(一并备份所有的归档日志及控制文件)
  rman target /
  backup database format 'c:\%d_%u_fulldbbak' tag='fulldbbak';

  backup current controlfile format 'c:\%d_%u_contolfilebak' tag='controlbak';
    --因为在实际生产环境中,当你备份后,数据库结构及相关内容是一直动态变化的,我一会还原恢复时,是从这个控制文件备份为基础的


  backup archivelog all delete input format 'c:\%d_%u_archivebak' tag='archbak';

4,为了实行不完全恢复,登陆数据库查看dbid及current_scn
   ---大家可以想下,为何要它们的信息,因为当你采用控制文件备份,恢复控制文件时,此时要恢复的目标数据库并没有加载controlfile(它存储dbid及current_scn),所以要得到它的信息,你必须手工指定它们
   sqlplus '/as sysdba'
   select current_scn,dbid from v$database;
5,为了模拟生产环境的数据变更,继续创建表空间及用户haha,并插入测试数据
create tablespace haha datafile 'c:\ha1.dbf' size 10m;
create user haha identified by system default tablespace haha account unlock;
grant resource,connect to zxy;
conn haha/system
create table ha1(a varchar(2));
insert into ha1 values('xi');
commit;
conn /as sysdba
alter system switch logfile;
alter system archivelog current;


6,dba一个drop tablespace或者损坏zxy用户的对应动作,马上恢复zxy用户对应的数据(注意:不含之后创建的haha用户数据)
    分为几个小步骤:
       a,rman target /
       b,set dbid=第4步查到的dbid;要不然会报错
       c,restore controlfile from '第3步控制文件备份的具体路径';
           --注:你要通过from tag会报错,原因很简单,备份信息存储在控制文件中, 此时控制文件未打开
        d,alter database mount;--mount 数据库,为下面工作打好基础
        e,restore database;--还原数据库,维护观察过程,就是应用以上全库备份的过程
        f,recover database until scn ' 第4步查到的scn';--大量应用归档及在线日志
        g,sql 'alter database open resetlogs';--不完全恢复后,必须以resetlogs打开数据库


后记:
     不完全恢复,请马上对数据库进行全库备份,因为之前的备份全然失效
      通过此测试,我们可以发现,没有配置catalog库的生产库或者测试库,一旦出故障,是多么的脆弱及恢复麻烦
       
      





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

请登录后发表评论 登录
全部评论
提供针对oracle初学者及进阶的数据库培训,欢迎大家咨询: 微信: wisdomone 微信公众号: lovedb 工作经历: 中国普天 北京科蓝 北京云和恩墨 北京神州新桥

注册时间:2008-04-04

  • 博文量
    2189
  • 访问量
    12690160