如何将11g转储导入Oracle12c



我们使用此命令在11g:中导入数据库

impdp system directory=DATA_PUMP_DIR dumpfile=ourdb.dmp full=n
password: ourpassword

现在我正试图在12c:中运行这个

impdp system/Oracle_1 directory=DATA_PUMP_DIR dumpfile=ourdb.dmp nologfile=Y

但它说用户不存在,所以一切都失败了。在11g中,它只会从正在导入的模式中创建USER。12c发生了什么?

我读到你必须确保你已经连接到pdb。所以如果我连接到pdb:

sqlplus sys/Oracle_1 as sysdba;

我现在在SQL提示符下。现在,如果我运行:

impdp system/Oracle_1 directory=DATA_PUMP_DIR dumpfile=ourdb.dmp nologfile=Y

它说,这不是sqlplus命令。您必须从常规命令行运行它。所以,如果我回到一个常规的命令行,我就没有连接,因为我在SQLPus中没有。我不明白。

有人能告诉我这里的台阶吗?我找不到一个好医生来指导我度过难关。

问题在于提供给impdp的连接字符串。在像Oracle11g这样的常规数据库中,连接字符串是直接的。

例如:

impdp system/manager ...

但以Oracle 12c为例,它是一个多租户数据库。我们需要在连接字符串中提供容器。

例如:

impdp system/manager@pdb1 ...

另外,请注意impdp是一个外部Oracle工具。它不是SQL*Plus命令。

相关内容

  • 没有找到相关文章

最新更新