該參數可用於給泵出文件中的源數據庫文件重新指定一個新的路徑和名稱,主要用在平台間的數據遷移。
用法:
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過數據文件的表空間都已經成功創建了,沒有報出錯誤信息。