1. 程式人生 > >oracle impdp 變動使用者、表空間(ORA-00959:表空間不存在)

oracle impdp 變動使用者、表空間(ORA-00959:表空間不存在)

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(表空間不存在)

參考:

  1. impdp smtj2012/密碼@localhost/devdb DIRECTORY=dump_dir DUMPFILE=bkmmtdb_smtj20130417120001.dmp remap_schema=smtj:smtj2012 remap_tablespace=smtj:smtj2012