【问题标题】:Oracle: Remotely import using Impdp with DB linkOracle:使用 Impdp 和 DB 链接远程导入
【发布时间】:2014-02-19 17:07:05
【问题描述】:

我正在尝试使用数据泵导入架构。这是我的问题:我只能访问源数据库服务器上的 实用程序,但它是 11.1 版本,而目标数据库版本是 11.2,所以如果我运行导入,我会收到错误:

UDI-00018: Data Pump client is incompatible with database version 11.01.00.06.00

我想通过使用我的笔记本电脑来解决这个问题,该笔记本电脑安装了与目标数据库相同的 Oracle express 版本 11.2,使用以下命令:

impdp username/password@targetDB directory=data_pump_dir network_link=sourceDB schemas=EMP

在这个命令中,targetDB是我本地oracle上创建的公共db链接,同样的记录已经添加到tnsnames.orasourceDB 是在目标数据库中创建的公共数据库链接,指向源数据库。

但我得到了这个错误:

Connected to: Oracle Database 11g Release 11.2.0.2.0 - 64bit Production
ORA-39001: invalid argument value
ORA-39200: Link name "sourceDB" is invalid.
ORA-12170: TNS:Connect timeout occurred

源数据库版本是:

Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - 64bit Production PL/SQL Release 11.1.0.6.0 - Production
CORE 11.1.0.6.0 Production
TNS for 64-bit Windows: Version 11.1.0.6.0 - Production
NLSRTL Version 11.1.0.6.0 - Production

目标数据库版本是:

Oracle Database 11g Release 11.2.0.2.0 - 64bit Production
PL/SQL Release 11.2.0.2.0 - Production
CORE 11.2.0.2.0 Production
TNS for Linux: Version 11.2.0.2.0 - Production
NLSRTL Version 11.2.0.2.0 - Production

我的本​​地数据库版本是:

Oracle Database 11g Express Edition Release 11.2.0.2.0 - Production              
PL/SQL Release 11.2.0.2.0 - Production                                           
CORE    11.2.0.2.0  Production                                                         
TNS for 32-bit Windows: Version 11.2.0.2.0 - Production                          
NLSRTL Version 11.2.0.2.0 - Production  

那么我做错了什么?

有没有办法从源导入到目标?

【问题讨论】:

  • 您是否在命令行中将sourceDB 放在双引号中?错误Link name "sourceDB" 表明您这样做了,但我不知道您是否更改了发布名称。该名称将区分大小写,因此如果您创建了不带引号的数据库链接,那么它应该在命令行上不带引号,和/或全部大写。另外,您是否看到version parameter 是否允许它在没有链接的情况下工作? (也见this)。
  • 谢谢@AlexPoole,文档中说两个数据库“相差不超过一个版本”。因此,如果我将 11.1 数据库导入 11.2 数据库,这应该不是问题,但我得到了 UDI-00018 错误。我试图在数据库链接中添加双引号,没有运气。 version 参数对我也不起作用,我尝试使用 version=11.1、11.01、10.1 等。
  • 是的,不确定version 在您使用链接时是否有效,我在导出时使用过它。如果您以username/password@targetdbselect link_name from all_db_links 登录,它是否全部显示为大写,并且与您的network_link 值完全匹配吗? (相反的链接不相关)。我认为您应该能够从 11.1 服务器执行此操作,也许使用 version;不确定是否需要笔记本电脑步骤。
  • 是的,我使用了大写字母,但我在这里发帖时替换了它。
  • 但它是all_db_links 中的大写字母(假设它是公开的并且你可以看到它),还是它被创建为引用的混合大小写?我正在努力看看还有什么问题。显示您用于创建链接的确切命令(或至少在all_db_links 中的内容)和导入可能帮助;发布隐藏实际问题时不会是第一次更改某些内容...

标签: impdp oracle plsql impdp ora-12170


【解决方案1】:

您似乎无法远程访问本地数据库:

为了避免

ORA-12170: TNS:Connect timeout occurred 是为了确保您能够连接到远程数据库。

我建议您开始确保它适用于访问 db-link 的简单查询:

SQL> select * from dual@sourceDB;

另一种解决方案

解决问题的另一种方法是在导出文件时指定导出文件的目标版本,例如与:

version=11.1

【讨论】:

    猜你喜欢
    • 2011-10-11
    • 2023-03-16
    • 1970-01-01
    • 1970-01-01
    • 2022-01-14
    • 2010-09-19
    • 2012-06-30
    • 2014-02-20
    • 2015-09-21
    相关资源
    最近更新 更多