在使用IMPDP对数据库按照Schema进行导入数据时,出现了奇怪的错误,数据库版本11.2.0.3.0。
IMPDP导入命令如下。
impdp system/tplink directory=dump_dir dumpfile=tpqms.dmp remap_schema=tpqms:tpqms remap_tablespace=TPQMS_DATA:TPQMS_DATA table_exists_action=replace transform=segment_attributes:n
错误提示如下。
ORA-39083: Object type PROCACT_SCHEMA failed to create with error:
ORA-31625: Schema TPQMS is needed to import this object, but is unaccessible
ORA-01031: insufficient privileges
Failing sql is:
BEGIN
sys.dbms_logrep_imp.instantiate_schema(schema_name=>SYS_CONTEXT('USERENV','CURRENT_SCHEMA'), export_db_name=>'IQCPROD', inst_scn=>'108444820');COMMIT; END;
Processing object type SCHEMA_EXPORT/SEQUENCE/SEQUENCE
......
ORA-39083: Object type INDEX failed to create with error:
ORA-31625: Schema TPQMS is needed to import this object, but is unaccessible
ORA-01031: insufficient privileges
Failing sql is:
CREATE INDEX "TPQMS"."REPORT_TPL_ITEM_HID" ON "TPQMS"."REPORT_TPL_ITEM" ("TPL_ID")
......
根据提示,我对system和tpqms账户赋予了权限。
SQL> grant create user to system;
SQL> grant create any index to system;
SQL> grant create user to tpqms;
SQL> grant create any index to tpqms;
然而还是有上述的异常。
于是搜索了一些解决方法,提示是用户缺少IMP_FULL_DATABASE权限,于是我将该权限赋予给system和tpqms用户。
SQL> grant IMP_FULL_DATABASE to system;
SQL> grant IMP_FULL_DATABASE to tpqms;
仍有如上异常。
最后在Oracle Support上找到了一篇类似的解决方法,针对数据库12C版本的解决方法,试用一下该方法,问题解决。
在导入时赋予become user权限给system用户,导入结束后回收该权限即可。
SQL> grant become user to system;
SQL> revoke become user from system;
最后,IMPDP导入正常。
Master table "SYSTEM"."SYS_IMPORT_FULL_07" successfully loaded/unloaded
Starting "SYSTEM"."SYS_IMPORT_FULL_07": system/******** directory=dump_dir dumpfile=tpqms.dmp remap_schema=tpqms:tpqms remap_tablespace=TPQMS_DATA:TPQMS_DATA table_exists_action=replace transform=segment_attributes:n
Processing object type SCHEMA_EXPORT/USER
ORA-31684: Object type USER:"TPQMS" already exists
Processing object type SCHEMA_EXPORT/SYSTEM_GRANT
Processing object type SCHEMA_EXPORT/ROLE_GRANT
Processing object type SCHEMA_EXPORT/DEFAULT_ROLE
Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA
Processing object type SCHEMA_EXPORT/SEQUENCE/SEQUENCE
Processing object type SCHEMA_EXPORT/TABLE/TABLE
Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA