可以这么理解:利用rman创建duplicate数据库本质上 和 利用 dbca 创建数据库没有什么两样。只是表现形式不同而已。
要想成功,关键条件:
1.rman是伪服务端工具:可以在客户端运行,但必须读取本地文件!因此。target备份必须在本地可以访问得到。至于路径,保持和target的一致最好,否则必须手工catalog。
2.db_name问题:本机必须不同,异机无所谓了!
3.duplicate数据库的文件名和路径问题,可以使用复杂的命令设置,其实omf更简单!
4.网上许多案例都说可以通过oracle用户认证的方式连接到auxiliary实例,但俺总不成功,不知怎么回事。性质上同第“1”点。即必须在duplicate目标机器上操作,且Oracle_sid=duplicate数据库的sid。补充:使用静态监听解决该问题。
5.duplicate的实例必须是nomount
6.target的redo记录保持干净,在duplicate之前,最好--必须:alter system archive log current 以下,否则rman不会使用比较新 的备份。这家伙似乎能根据:目录中已有的有效backupset 和 archivelog 确定最新的备份
注意点:
1.本机duplicate时,如果duplicate数据库初始化参数 没有指明 使用omf,则需要指定db_file_name_convert 参数。唉,俺使用效果不佳!
2.本机duplicate时,如果duplicate数据库初始化参数 指明 使用omf,则无需指定任何参数
3.异机duplicate时,如果duplicate数据库的datafile 全路径名不想改变,需指定nofilenamecheck
4.所有的方式均可以通过:rman 的set newname for {tempfile|datafile}解决。强烈推荐!