复制目标数据库

首先,rman设置运行时(runtime)参数,如duplicate命令中的until time字句。然后rman基于这些参数检查目标数据库控制文件或恢复目录,确定适当的备份。随后rman构建访问备份(包括如何访问及访问哪些备份)的远程过程调用,但是并不是在目标数据库上执行代码,反之,rman在辅助实例上创建一个称为辅助信道的信道进程,rman向这个信道传递对DBMS_BACKUP_RESTORE数据包的调用,最后,辅助实例访问备份和还原所有必需的数据文件。

1.辅助信道配置

  为了执行复制操作,rman必须在辅助辅助实例上分配一个或多个信道进程。
  从oracle9i开始,由于使用目标实例控制文件中存储的永久配置参数可以自动创建辅助信道,所有不必在复制时手动地分配辅助信道。

2.将数据文件还原到不同的文件位置

  加载新的控制文件后,rman就可以开始还原数据文件(如果在驻留目标数据库的相同服务器上复制数据库,就必须修改数据文件还原的位置,
  即使将数据文件还原到不同服务器上,加载点和目录结构中的差异也要求使用新的文件位置)

  有3种方法修改复制进程的数据文件还原步骤以指向新的文件位置

   (1)configure命令,为需要配置新位置的所有数据文件配置auxname,这个配置存储在目标数据库的控制文件中。
        configure auxname for datafile '/u01/oradata/aux1/system01.dbf'
        configure auxname for datafile '/u01/oradata/aux1/undo01.dbf'
   (2)在run命令中指定新的数据文件名
       run{ allocate channel c1 type 'sbt_tape';
       set newname for datafile 1 to '/u01/oradata/aux1/system01.db';
       set newname for datafile 2 to '/u01/oradata/aux1/undo01.db';
       duplicate target database to aux1;
         }
   (3)DB_FILE_NAME_CONVERT,LOG_FILE_NAME_CONVERT 第一个字符串是数据文件在目标数据库上的原始位置,第二个字符串是数据文件在辅助实例中的新位置

3.创建新的控制文件
     还原所有文件后,复制操作会为辅助实例创建新的控制文件,使用duplicate命令中概述的各种参数,rman在辅助实例上执行create controlfile命令。
     创建控制文件后,则可以加载这个辅助数据库,此时,rman执行切换操作切换到新的文件,这个切换操作可以使rman修改辅助站点上的新控制文件以指向新的数据文件的位置。    

4.恢复和归档日志
     还原和切换文件后,就能够对数据库执行恢复操作

5.修改数据库ID(DBID)

6.在辅助站点上创建日志文件
  在完成复制进程并执行最后一条open resetlogs命令时,rman必须为辅助数据库构建全新的日志文件


--------------------------------------------------------------
复制的位置
 1.复制到相同的服务器
(1)内存问题
  在同一个系统中执行复制操作时,必须将辅助实例init.ora文件中的DB_NAME参数值修改为与目标实例不同的数据库名。
(2)文件位置问题
  存在两个数据库都尝试写入相同文件位置的问题
   I  控制文件
  II  数据文件
  III 重做日志文件
(3)复制到相同服务器的不同ORACLE_HOME目录
 2.复制到远程服务器
(1)内存问题
(2)文件位置问题
    如果没有修改文件位置,就必须在duplicate命令中指定nofilenamecheck参数,该参数通知复制操作不必在执行还原操作前确认文件名时不同的。
(3)备份位置为磁盘

  在不同服务器上执行还原操作的复杂性在于要提供访问不同服务器上备份的辅助信道进程的访问
  有3种方法复制磁盘备份:
        1.将备份从目标主机复制到辅助主机的相同位置。
        2.从辅助主机中NFS加载目标主机上的备份位置。只有当加载目标的位置与RMAN将使用的加载点名称相同的情况下,才能执行复制操作。
(4)备份位置为磁带
------------------------------------------------------------------

1.在相同服务器上复制
  在相同的服务器上复制磁盘备份
(1)构建辅助数据库目录
(2)将目标数据库的init.ora文件复制到辅助数据库的相应位置
(3)根据需要修改init.ora文件
(4)未辅助实例创建口令文件
(5)以未加载模式启动aux1实例
 startup nomount pfile=/u01/../init.ora
(6)配置连接aux1实例的网络文件
(7)从rman连接到目标手里和辅助实例,并且运行duplicate命令
rman>connect auxiliary sys/oracle@aux1
rman>duplicate target database to aux1 pfile=/u01/../init.ora
logfile
'/u01/app/oracle/product/oradata/aux1/redo01.dbf' size 100m;
'/u01/app/oracle/product/oradata/aux1/redo02.dbf' size 100m;
'/u01/app/oracle/product/oradata/aux1/redo03.dbf' size 100m;

2.在远程服务器上复制

  在远程服务器上复制磁盘备份
(1)构建辅助数据库目录
(2)在目标数据库生成init.ora副本。
(3)将目标数据库的生成的init.ora副本复制到辅助数据库(也需要一个位于目标数据库上的init.ora文件副本,RMAN在duplicate命令中引用该副本)
(4)以未加载模式启动辅助实例
     startup nomount pfile=/u01/../init.ora
(5)在辅助站点上配置listener.ora  在目标数据库上配置tnsname.ora文件
(6)辅助实例创建口令文件
(7)将fra文件从目标数据库移动到辅助数据库
(8)从目标系统运行duplicate命令
rman>connect auxiliary sys/oracle@aux1
rman>duplicate target database to aux1 pfile=/u01/../init.ora
logfile
'/u01/app/oracle/product/oradata/aux1/redo01.dbf' size 100m;
'/u01/app/oracle/product/oradata/aux1/redo02.dbf' size 100m;
'/u01/app/oracle/product/oradata/aux1/redo03.dbf' size 100m;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值