技术限制
duplicate目前还不支持跨平台的复制,如windows <--> linux就是两个平台。复制的数据库和源库必须是相同的操作系统平台,我们认为同平台下的32-bit 和 64-bit是同一个平台,例如Linux IA (32-bit) 和Linux IA (64-bit),认为是相同的平台,可以实施duplicate 功能,但是最后一定要运行脚本$ORACLE_HOME/rdbms/admin/utlirp.sql来转换成。
Typically, the source and duplicate databases must be on the same platform; however some cross-platform duplication is supported (1079563.1). For DUPLICATE, 32-bit and 64-bit versions of the same platform are considered the same platform. For example, Linux IA (32-bit) is considered the same platform as Linux IA (64-bit). However, after duplicating a database between 32-bit and 64-bit platforms, you must run the utlirp.sql script to convert the PL/SQL code to the new format. This script is located in ORACLE_HOME/rdbms/admin on Linux and UNIX platforms.
选择数据库复制技术
From active
| with target connection
From backups | | with catalog connection
| without target connection |
| without catalog connection
具体复制技术实现见文。
文件名转换
有三种方法:
- 在 duplicate 的 run 块中进行路径转换外
- 在参数文件中通过 DB_FILE_NAME_CONVERT 和 LOG_FILE_NAME_CONVERT 进行路径转换
- 通过 duplicate database 中的 spfile 子句指定上面两个参数