如何将11g转储导入Oracle 12c

时间:2016-05-03 22:35:25

标签: 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中没有。我不懂。

谁能告诉我这里的步骤? 我找不到一个好的文档来指导我完成这个。

1 个答案:

答案 0 :(得分:1)

问题在于提供给impdp的连接字符串。在像Oracle 11g这样的常规数据库中,连接字符串很简单。

例如:

impdp system/manager ...

但是对于Oracle 12c,这是一个multi-tenant database。我们需要在连接字符串中提供容器。

例如:

impdp system/manager@pdb1 ...

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