无论是rman迁移表空间,还是duplicate复制数据库,其实这些都是oracle封装好的一个处理流程,我们都可以手动来达到同样的效果,但是oracle想的很周到,为DBA节省了不少时间和经历,下面分别介绍duplicate复制数据库到本地和异机数据库.

1,duplicate复制数据库到本地服务器

①通过rman再做一次backup database,确保当前存在有效的数据库备份和归档日志备份:

duplicate复制数据库

duplicate复制数据库

②创建目标数据库的静态参数文件,可以通过修改源数据库静态参数文件快速修改:

保留几个常用的参数,修改几个路径就可以了,保存为所需的名称,如下图所示:

duplicate复制数据库

需要注意的是,由于本机复制数据库,数据库的路径不可能一致,所以得添加db_file_name_convert和log_file_name_convert两个参数对数据库路径进行,这2个参数相当于sql中的replace函数,将前面的值用后面的替换,如果有多个需要替换的可以接着在后面添加,比如原路径有c:\1和c:\2,需要分别替换成d:\1和d:\2,可以这么写:

db_file_name_convert=c:\1,c:\2,d:\1,d:\2

由于我的测试操作系统是windows,所以还需要手动添加一个实例:

oradim –new –sid zstoadup

③创建密码文件,启动目标数据库到nomount状态

duplicate复制数据库 

 

duplicate复制数据库

④开始duplicate复制数据库操作:

duplicate复制数据库

2,duplicate复制数据库到异机服务器

前面几部类似,主要是最后一步有点不同,需要将rman文件复制到目标服务器上,然后启动数据库到nomount状态,rman执行:

rman auxiliary /

duplicate target database to zstoadup

backup location ‘F:\OracleAPP\oradata\zstoadup\2013_12_20aaa’

duplicate复制数据库

需要注意的是,如果异机的路径与源库相同,则需要加上nofilenamecheck参数,以避免oracle的自动识别.

 

我的博客: www.fanmeng.net.cn