RMAN 复制目标数据库的理论知识(二)

2014-11-24 17:59:46 · 作者: · 浏览: 4
后,可以加载这个辅助数据库。 此时,RMAN执行切换操作切换到新的文件,这个切换操作可以使用RMAN修改辅助站点上的新控制文件以指向数据文件位置。



1.2.4 恢复归档日志


还原和切换完文件后,就能够对数据库执行恢复操作。 此时即可以将数据库恢复到当前时间点,可以将数据库恢复到until time子句指定的时间点。要执行恢复操作,RMAN需要访问归档日志。 如果RMAN 备份了归档日志,RMAN就能够将这些归档日志从备份位置还原到辅助数据库init.ora 文件中指定的Log_archive_dest位置。我们也可以手工地将归档日志移动到新实例要求的位置,这样RMAN 就能够不需要还原归档日志而在磁盘上查找到这些文件。 如果在目标数据库当前驻留的相同服务器上执行复制操作,RMAN就能够在目标数据库的LOG_archive_dest 位置中查找到归档日志。


还原完归档日志后,RMAN会执行一些必需的恢复操作。 如果没有指定结束恢复操作的时间点,RMAN 会还原到最后一个可用的归档日志,然后结束恢复操作。 在复制操作期间,RMAN不能进一步检查联机重做日志文件的恢复信息。到达归档日志的结束点后,RMAN 停止恢复操作。如果RMAN从备份中还原了归档日志,这些归档日志就会在恢复操作完成后被删除。




1.2.5 修改数据库IDDBID


介质恢复完成后,数据库将处于一致的状态中,此时RMAN将修改新复制的DBID。由于在这个时间点之前的所有操作都要求复制数据库与目标数据库具有相同的DBID,所以RMAN必须等待复制数据库中的其他动作全部完成。如果控制文件具有不同的DBID,复制在介质恢复期间就不能应用归档日志。


修改DBID的进程非常简单,RMAN 有一个称为dbms_backup_restore.zerodbid()的过程。 在数据库处于加载但未打开的状态时,这个过程会查看文件头并将每个文件头中的DBID清零。 随后,RMAN关闭这个数据库并再次重新创建辅助控制文件。 重新构建控制文件时,Oracle会检查文件头中的DBID,如果没有发现任何DBIDOracle 就会生成一个新的DBID并且将其加入到每个文件头中。


如果手工的使用zerodbid()过程要非常谨慎。 此外Oracle 9i后提供了一个dbnewid的使用程序,这个程序能安全地为数据库生成新的ID.




1.2.6 在辅助站点上创建日志文件


在完成复制进程并执行最有一条open resetlogs命令时,RMAN 必须为辅助数据库构建全新的日志文件。 这种情况下在执行open resetlogs命令时通常会发生,不过在使用duplicate命令时需要确定新日志文件的定义。如果在目标数据库所在的系统上执行复制操作,至少需要重命令日志文件。


如果要修改新数据库使用的日志文件的大小,数目和位置,可以在执行duplicate命令时指定新日志文件的定义:


Duplicate target database to auxname


Pfile=/u01/oracle/admin/auxname/init.ora


Logfile=


'/u01/oracle/oradate/auxname/redo01.log' size 100m,


'/u01/oracle/oradate/auxname/redo02.log' size 100m,


'/u01/oracle/oradate/auxname/redo03.log' size 100m;



此外,还可以使用目标数据库中已有的日志文件定义,并且可以使用init.ora 文件的LOG_FILE_NAME_CONVERT参数简单的将该定义转移到新的位置中。如:


log_file_name_convert = ('/u01/app/oracle/oradata/test01','/u01/oradata/dvdsame');