如何在同一台机器上拥有oracle imp 11gr2和12cr2,然后选择我想要使用的那台



我目前正在开发一个导入oracle数据库的应用程序。为此,我正在使用Data Pump和原始imp客户端(版本12.2.0.1)。但是,我不能对该 imp 客户端用于11gr2数据库,我需要使用11gr2imp 客户端。

我已经拥有从11gr2数据库之一获得的客户端和库,但是,如果我尝试执行它,则会出现以下错误:

找不到消息 100;产品=RDBMS 没有消息文件, facility=IMP:版本 11.2.0.3.0 - 1 月 5 日星期五 18:28:21 生产 2018

年版权所有 (c) 1982, 2011, Oracl

导入实用程序名称的格式无效

验证是否正确设置了ORACLE_HOME

导入终止失败

IMP-00000:找不到消息 0;产品=RDBMS 没有消息文件, 设施=IMP

有人可以指出如何让两个客户端在同一台机器上工作吗?提前谢谢。

[更新] 我正在使用Red Hat OS,这是$ORACLE_HOME的输出:/root/oracle/instantclient_12_2

我尝试使用完整路径并将文件放在ORACLE_HOME但仍然收到相同的错误。谢谢!!!

在Windows机器上,我通常将目录(使用CD命令)更改为包含我想使用的IMP的目录,例如:

C:>
C:>cd C:oraclexeapporacleproduct11.2.0serverbin
C:oraclexeapporacleproduct11.2.0serverbin>imp help=y
Import: Release 11.2.0.2.0 - Production on Sub Sij 6 06:45:43 2018

或者,如果通过指定其可执行文件的完整路径来调用这些实用程序,例如

C:>
C:>C:oraclexeapporacleproduct11.2.0serverbinimp help=y
Import: Release 11.2.0.2.0 - Production on Sub Sij 6 06:47:30 2018

我希望你能够做你正在做的事情。

您的问题很可能与设置LD_LIBRARY_PATHPATH即时客户端目录有关。您可以在 bash shell 脚本中执行所有设置,例如 .bash_profile.profile.bashrc

  1. 首先设置

    ORACLE_HOME=/root/oracle/instantclient_12_2; export ORACLE_HOME
    
  2. 将包含即时客户端库的目录的名称添加到LD_LIBRARY_PATH。删除任何其他 Oracle 目录。 例如,若要在 Bourne 或 Korn shell 中设置LD_LIBRARY_PATH,请使用以下语法:

    LD_LIBRARY_PATH=${ORACLE_HOME}/lib:${LD_LIBRARY_PATH}
    export LD_LIBRARY_PATH
    

    或者,若要在Cshell 中设置LD_LIBRARY_PATH,请使用以下语法:

    % setenv LD_LIBRARY_PATH 
    $ORACLE_HOME/lib:$LD_LIBRARY_PATH
    
  3. 确保从RPM安装的工具可执行文件是PATH中找到的第一个可执行文件。例如,要对此进行测试,您可以输入which impdp,该应返回$ORACLE_HOME/bin/impdp。如果没有,则从PATH中删除任何其他 Oracle 目录,或将$ORACLE_HOME/bin放在PATH中其他 Tools 可执行文件之前,或使用绝对或相对路径启动 Tools Instant Client。 例如,要在 bash shell 中设置PATH

    PATH=/usr/bin:${PATH}:${ORACLE_HOME}:${ORACLE_HOME}/bin
    export PATH
    
  4. 设置
  5. 区域设置所需的 Oracle 全球化变量。如果未设置变量,则将采用默认区域设置。

    NLS_LANG=AMERICAN_AMERICA.UTF8
    export NLS_LANG
    

经过研究,我在尝试复制 imp 客户端版本 11cr2 时没有复制所有必需的文件。我通过复制 $ORACLE_HOME 中的所有文件并将该位置作为我的新 $ORACLE_HOME 解决了这个问题。之后,只需将 lib 文件和 imp 从 12cr2 客户端安装复制到 $ORACLE_HOME 并将 imp 12cr2 重新修改为 "imp12cr2"。

现在,如果我想使用 11.2,我使用imp,如果想使用 12cr2,我使用imp12cr2

相关内容

  • 没有找到相关文章

最新更新