我有一个从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 环境吗?