该参数可用于给泵出文件中的源数据库文件重新指定一个新的路径和名称,主要用在平台间的数据迁移。
用法:
remap_datafile=source_file:target_file
在windows平台上的使用:
impdp dbuser/dbuser full=y dumpfile=full.dmp logfile=full.log remap_datafile="F:\DB\ORADB\ORADATA\ORADB\MYDB1.ORA":"F:\app\guester\oradata\orcl\MYDB1.ORA","F:\DB\ORADB\ORADATA\ORADB\MYDB2.ORA":"F:\app\guester\oradata\orcl\MYDB2.ORA"
源数据文件与目标数据文件之间用冒号分开,需要注意的是datafile的路径和名称是用双引号括起来的,linux平台上是用单引号,这一点不同。上面的例子中remap了两个数据库文件,当remap多个数据库文件的时候,不同的文件之间用逗号分开,当然,如果文件个数较多的话推荐将它们丢到参数文件中去。
下面是部分执行过程:
Copyright (c) 2003, 2007, Oracle. All rights reserved.
;;;
连接到: Personal Oracle Database 11g Release 11.1.0.7.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
已成功加载/卸载了主表 "DJUSER"."SYS_IMPORT_FULL_02"
启动 "DJUSER"."SYS_IMPORT_FULL_02": dbuser/******** full=y dumpfile=full.dmp logfile=full.log remap_datafile=F:\DB\ORADB\ORADATA\ORADB\MYDB1.ORA:F:\app\guester\oradata\orcl\MYDB1.ORA,F:\DB\ORADB\ORADATA\ORADB\MYDB2.ORA:F:\app\guester\oradata\orcl\MYDB2.ORA
处理对象类型 DATABASE_EXPORT/TABLESPACE
ORA-31684: 对象类型 TABLESPACE:"SYSAUX" 已存在
ORA-31684: 对象类型 TABLESPACE:"UNDOTBS1" 已存在
ORA-31684: 对象类型 TABLESPACE:"TEMP" 已存在
ORA-31684: 对象类型 TABLESPACE:"USERS" 已存在
ORA-39083: 对象类型 TABLESPACE 创建失败, 出现错误:
ORA-01119: 创建数据库文件 ‘F:\DB\ORADB\ORADATA\ORADB\EXAMPLE01.DBF‘ 时出错
ORA-27040: 文件创建错误, 无法创建文件
OSD-04002: 无法打开文件
O/S-Error: (OS 3) 系统找不到指定的路径。
失败的 sql 为:
CREATE TABLESPACE "EXAMPLE" DATAFILE ‘F:\DB\ORADB\ORADATA\ORADB\EXAMPLE01.DBF‘ SIZE 104857600 AUTOEXTEND ON NEXT 655360 MAXSIZE 32767M NOLOGGING ONLINE PERMANENT BLOCKSIZE 8192 EXTENT MANAGEMENT LOCAL AUTOALLOCATE DEFAULT NOCOMPRESS SEGMENT SPACE MANAGEMENT AUTO
处理对象类型 DATABASE_EXPORT/PROFILE
ORA-31684: 对象类型 PROFILE:"MONITORING_PROFILE" 已存在/
在上面的执行日志中可以看到有一个示例表空间EXAMPLE01创建失败了,因为我的电脑上并没有F:\DB\ORADB\ORADATA\ORADB这个路径,同时也没有在remap_datafile参数中指明,所以创建失败了,而重新remap过数据文件的表空间都已经成功创建了,没有报出错误信息。
IMPDP导入报错ORA-27040: 文件创建错误, 无法创建文件,remap_datafile参数解决,布布扣,bubuko.com