在使用impdp時,會發現,有很多參數選項與imp不同,比如說,找不到了fromuser和touser參數,也找不到了ignore參數,indexes等參數也不再存在。
當然這些功能都還在,而且更加強大,impdp有了不少新的替代參數。
以下三個參數極大的增強了使用者轉換及資料表空間轉換的操作:
REMAP_DATAFILE Redefine datafile references in all DDL statements.
REMAP_SCHEMA Objects from one schema are loaded into another schema.
REMAP_TABLESPACE Tablespace object are remapped to another tablespace.
REMAP_SCHEMA可以定義使用者的切換,其格式為:
remap_schema=old_schema_name:new_schema_name
REMAP_TABLESPACE可以定義切換對象的不同資料表空間,其格式為:
rempa_tablesapce=old_tablespace_name:new_tablespace_name
以前類似IGNORE的忽略建立錯誤,可以使用CONTENT參數:
CONTENT Specifies data to load where the valid keywords are:
(ALL), DATA_ONLY, and METADATA_ONLY.
如果資料結構已經存在可以指定CONTENT=DATA_ONLY,僅匯入資料。
而關於索引的排除,可以使用EXCLUDE參數:
EXCLUDE Exclude specific object types, e.g. EXCLUDE=TABLE:EMP.
IMPDP匯入時忽略索引可以使用類似: EXCLUDE=CONSTRAINT EXCLUDE=INDEX
如果匯入時遇到如下錯誤,就需要調整REMAP_SCHEMA參數:
ORA-39146: schema "SMS_MT" does not exist
遇到如下錯誤,那就需要制定REMAP_TABLESPACE參數:
ORA-00959: tablespace 'SMS_MT' does not exist
今天使用的參數是:
impdp sms4/sms4 dumpfile=08.dmp directory=impdp TABLES=smsmg REMAP_SCHEMA=SMS:SMS4 REMAP_TABLESPACE=SMS_MT:SMS CONTENT=DATA_ONLY PARALLEL=8 EXCLUDE=CONSTRAINT EXCLUDE=INDEX
記錄一下供參考。