我有一个从 Oracle 11gR2 导出的Oracle数据池转储文件,该文件在导入到另一个 Oracle 11gR2 环境时已经证明可以正常工作。我想将此转储文件导入到运行 Oracle 12c 的新环境中。
我运行“impdp”命令导入此转储文件,如下所示:
$> impdp system/password directory=KMS_DIR dumpfile='kms.dump' schemas=KMS_OWN
logfile=import.log
该命令与11gR2完美配合,但在12c上失败
错误消息如下所示:
Starting "SYSTEM"."SYS_IMPORT_SCHEMA_01": system/******** directory=KMS_DIR dumpfile=kms.dump schemas=KMS_OWN logfile=import.log
Processing object type SCHEMA_EXPORT/USER
**ORA-39083: Object type USER:"KMS_OWN" failed to create with error:**
ORA-65096: invalid common user or role name
Failing sql is:
CREATE USER "KMS_OWN" IDENTIFIED BY VALUES 'S:19705E60DEEFDAF0C0F9E339228A66946376EA6453EB7186AF1C5C6D91E0;80B023397756355B' DEFAULT TABLESPACE "KMS_LH_DATA_TBS" TEMPORARY TABLESPACE "TEMP"
Processing object type SCHEMA_EXPORT/SYSTEM_GRANT
ORA-39083: Object type SYSTEM_GRANT failed to create with error:
ORA-01917: user or role 'KMS_OWN' does not exist
它与表空间和目录无关,我已做好充分准备,因此命令完全符合11g。
此外,由于Oracle数据泵无法创建用户,因此它将导致所有后续导入操作失败。我搜索了很多文章和 Oracle 12c可能不允许使用C ##前缀 创建普通用户。但是,我不是100%确定这是否是问题,但似乎这与11g有很大的不同。
我该如何应对?是否真的可以使用“impdp”将转储文件从Oracle 11gR2导入12c环境?