oracle impdp 變動使用者、表空間(ORA-00959:表空間不存在)
阿新 • • 發佈:2019-02-10
impdp admuser1/admuser DUMPFILE=CRV_ADMUSER.DMP remap_schema=admuser:admuser1 remap_tablespace=PMDB_DAT1:PMDB_DAT2
說明:
REMAP_SCHEMA可以定義使用者的切換,其格式為:
remap_schema=old_schema_name:new_schema_name
REMAP_TABLESPACE可以定義切換物件的不同表空間,其格式為:
remap_tablespace=old_tablespace_name:new_tablespace_name
在使用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可以定義切換物件的不同表空間,其格式為:
remap_tablespace=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引數:
遇到如下錯誤,那就需要制定REMAP_TABLESPACE引數:
ORA-00959: tablespace 'SMS_MT' does not exist(表空間不存在)
參考:
- impdp smtj2012/密碼@localhost/devdb DIRECTORY=dump_dir DUMPFILE=bkmmtdb_smtj20130417120001.dmp remap_schema=smtj:smtj2012 remap_tablespace=smtj:smtj2012