【问题标题】:import datadump in oracle database在oracle数据库中导入datadump
【发布时间】:2019-09-05 20:26:21
【问题描述】:

我的系统中有两个数据库版本:12c 和 18c。我尝试将转储文件导入数据库版本 18c,当我在 cmd 中运行 impdp 命令时,它正在连接到 oracle 数据库 12c。如何将转储文件导入数据库版本 18c。请给我建议。

以下是以下命令:

C:\Windows\System32>impdp DBBEND_LIFE_ESUBMISSION/oracle@orcl18c directory=DMP_DIRECTORY dumpfile=DBBEND_LIFE_ESUBMISSION.DMP logfile=err.log

导入:版本 18.0.0.0.0 - 2019 年 9 月 5 日星期四 16:42:06 生产 版本 18.3.0.0.0

Connected to: Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
ORA-39002: invalid operation
ORA-39070: Unable to open the log file.
ORA-39087: directory name DMP_DIRECTORY is invalid

【问题讨论】:

    标签: oracle


    【解决方案1】:

    您可以在调用数据泵导入实用程序时在连接字符串中指定connect identifierconnect identifier 可以是 Oracle*Net 连接描述符 或映射到连接描述符的名称。这需要一个可以使用连接描述符定位的活动侦听器(要启动侦听器,请输入 lsnrctl start)。

    本地导入客户端连接到连接描述符标识的数据库实例。

    因此,请确保在您的情况下,连接描述符 (@orcl18c) 代表您的 oracle 实例的正确版本。

    干杯!!

    【讨论】:

    • 感谢您的回复。 tns.ora 文件包含 12c 和 18c 的相同端口号 1521。我在 18c tns.ora 文件中将相应的端口号更改为 1522,并且我在 18cversion 中将侦听器别名更改为 listener2。然后我启动 Isrctl 服务。数据成功导入 18c 版本。
    【解决方案2】:

    这取决于您当前的“默认”侦听器。真的不清楚,但我的解决方案(针对我的问题)在网络考虑部分的Oracle page 上找到。

    【讨论】:

      【解决方案3】:

      我发现引用的 oracle 文档写得相当糟糕。为了确保您的 expdp 或 impdp 操作连接到正确的数据库,您需要做的就是在命令行上指定 tns 连接字符串:

      c:> impdp myuser/mypassword@mydb ......

      其中“mydb”是客户端 tnsnames.ora 文件中列出的网络服务名称。如果您不想在命令行中包含密码,请忽略该部分,系统会提示您输入。

      另外让我评论一下,您对侦听器和端口的作用的理解似乎是不正确的。没有特定数据库与特定端口的绑定。使用默认名称 LISTENER 和默认端口 1521 的单个侦听器非常有能力——实际上,被设计为——服务于从多个家庭运行的多个版本的多个数据库。即使您已将单个侦听器配置为侦听多个端口,特定端口与该侦听器所服务的特定数据库之间也没有连接。实际上,没有理由拥有多个侦听器,也没有理由让您的一个侦听器使用默认端口 1521 以外的任何端口。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-12-06
        • 2021-09-20
        • 1970-01-01
        • 1970-01-01
        • 2014-07-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多