Oracle

從 Oracle 10g 導出並導入到 Oracle 12c 無法創建使用者

  • July 6, 2017

出於開發目的,我已經安裝了舊版的 Oracle 10g,其中包含很多使用者和表空間。現在,我需要將這些使用者、表空間和其他所有內容遷移到 Oracle 12c 安裝。

在網上的一些文章之後,我執行了這個命令來從 Oracle 10g 導出我希望的所有內容。

CREATE DIRECTORY datapump AS '/oracle/datapump'
expdp system/password@osub full=Y directory=datapump dumpfile=DB10G.dmp logfile=expdpDB10G.log

它執行沒有錯誤。要在 oracle 12c 實例上導入,我這樣做了:

CREATE DIRECTORY datapump AS '/oracle/datapump'
impdp system/password@osub full=Y dumpfile=all.dmp logfile=impdpDB10G.log directory=datapump

但是在日誌文件上我得到這樣的錯誤:

CREATE USER "BI" IDENTIFIED BY VALUES 'FA1D2B85B70213F3' DEFAULT TABLESPACE "USERS" TEMPORARY TABLESPACE "TEMP" PASSWORD EXPIRE ACCOUNT LOCK
ORA-39083: Object type USER:"JBOSSDB" failed to create with error:
ORA-65096: invalid common user or role name
Failing sql is:
CREATE USER "JBOSSDB" IDENTIFIED BY VALUES '00C6DD010C22FF42' DEFAULT TABLESPACE "JBOSSDB" TEMPORARY TABLESPACE "TEMP"

我在網上閱讀了有關 Oracle 可插拔數據庫的資訊。我不在乎這些。

我只想導入我在 Oracle 10g 上擁有的所有使用者、表空間等,而不必一一手動進行。

可能嗎?

您已經創建了一個 CDB(容器數據庫),並連接到了根容器。不允許創建普通使用者,可以創建名稱以 開頭的普通使用者C##

如果您不關心或不想使用可插拔數據庫,我建議您刪除空的 12c 數據庫,並使用 DBCA(數據庫配置助手)創建一個新的非 CDB。

引用自:https://dba.stackexchange.com/questions/136968