1、在容灾机从一段时间的故障中恢复后,需要追生产机的新增数据,如何判定容灾机的数据已经追上了生产机?
2、用rman 做full database 备份不会影响到日常的增量的1/2级备份的基线数据吧?
3、能否把生产机上rman备份的control file转换成standby可用的control文件?不是用rman导出for standby的控制文件,而是从已有的控制文件转换。场景:用生产日常的备份去基线容灾机的数据。

解决方案 »

  1.   


    1. 可以通过sql 判断归档日志是否应用
    select max(sequence#) from v$archived_log; ­
    select max(sequence#) from v$log_history; ­
    select group#,sequence#,archived,status from v$log; ­
    select name,sequence#,applied from v$archived_log; ­
    select sequence#,applied from v$archived_log; ­ Oracle 10GR2 DataGuard 实例
    http://blog.csdn.net/tianlesoftware/archive/2009/10/27/4730092.aspx2. rman 1,2 集备份实在0集备份的基础上进行的,只要备份集还在,就没有问题。 不过既然做full backup,之前的0,1,2集备份意义也就不大了。 3.  在主库创建备库的控制文件 和密码文件 ­
    SQL>Alter database create standby controlfile as 'D:\oracle\product\10.2.0\control01.ctl'; ­可以用SQL 命令实现。
    楼主看下我的那个blog,应该会清楚些。。
    ------------------------------------------------------------------------------ 
    Blog: http://blog.csdn.net/tianlesoftware 
    网上资源: http://tianlesoftware.download.csdn.net 
    相关视频:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx 
    Q Q 群:62697716 
      

  2.   

    to tianlesoftware:2. 我的场景是这样的,日常备份机制一周1个0级备份,每天一个1级备份,有专门的备份服务器去做,并管理备份集。 而我在维护DB前要对数据库做一下备份,但是还不能影响到备份服务器的基线,如果我要是做一个增量0级备份,那么服务器做的1级备份的基线数据就是我手工创建这个临时0级备份集了。所以,想确认一下,每次操作前做一个backuo full database会不会影响到备份服务器的增量备份基线数据。
        
    3. standby的控制文件我一般用rman生成,
        backup
          current controlfile for standby
          format  '/fullbackup/dbback/stbcontrolfile';
       这就造成每次我要恢复standby db的时候,都要备份一次数据库全集,而不能用备份服务器上的日常备份集去恢复,因为备份服务器上的controlfile是生产站点的直接备份,不能直接恢复standby db. 即时手工创建的stbcontorlfile跟日常备份集又对应不上。不知道明白我的意思不,就是想避免恢复standby db时重备份一次数据库,因为数据库太大了。如果能把生产站点直接备份的controlfile转换为standby controlfile就能解决这个问题。
    正在拜读你的博客.
      

  3.   

    to wh62592855:
      2. 如果我做一个backup full database而不是backup incremental 0 level 是不是就不影响了备份数据库的基线了。
      3.这个问题仍然没有解决。我用的方法和tianlesoftware提供的虽然可行,但是必须得做一个全库备份。如果我从当前生产库创建一个for standby的controlfile,这个库不能使用备份服务器上的备份集进行恢复,因为controlfile中的scn已经很新了,而备份集中的是老的。(不知道我理解的对不对?)我就想避免做全库备份,直接从备份服务器那边取最近的备份集和控制文件,再把当时controlfile转换standby的controlfile,用来恢复standby db,然后建立dataguard关系去追数据,不知道如何转换?也可能没有办法转换,看看有没有人做过。
      

  4.   

    对RMAN研究还不是特别深,说一个观点不知道正确否
    用两个CATALOG机子做的备份应该是没有联系的吧。应该是每个CATALOG服务器管理自己的备份集吧。
    也就是说平时用的备份服务器备份的东西,与现在临时用的备份应该是互不影响的吧。
    不知道这种说法是不是正确
      

  5.   

    全备份是不会被考虑到增量备份策略中的 它也不能够作为增量备份的BASE
    而0级备份可以的 
      

  6.   

    to wh62592855:
    第三个问题:生产机的备份服务器进行日常备份时,备份conrtolfile时用的是这个命令:
        backup 
          current controlfile 
          format  '/fullbackup/dbback/cur_controlfile'; 
    备份出的cur_controlfile只能在生产机恢复数据库,不能在dataguard备机恢复,如果要生成可以在物理备机恢复的controlfile,需要用下面的命令:
        backup 
          current controlfile for standby       format  '/fullbackup/dbback/stb_controlfile'; 这样的stb_controlfile可以直接拿到物理备机进行数据库恢复。我就希望找到把cur_controlfile文件转换为stb_controlfile文件的方法。