如何在同一台机器上安装oracle imp 11gr2和12cr2并选择我想要使用的那个

时间:2018-01-05 23:57:55

标签: oracle import redhat impdp imp

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

我已经从我的11gr2个数据库中获得了客户端和库,但是如果我尝试执行它,我会收到以下错误:

  

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

     

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

     

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

     

验证是否正确设置了ORACLE_HOME

     

导入终止失败

     

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

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

[UPDATE] 我正在使用Red Hat OS,这是$ ORACLE_HOME的输出: /根/ ORACLE / instantclient_12_2

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

3 个答案:

答案 0 :(得分:1)

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

C:\>
C:\>cd C:\oraclexe\app\oracle\product\11.2.0\server\bin

C:\oraclexe\app\oracle\product\11.2.0\server\bin>imp help=y

Import: Release 11.2.0.2.0 - Production on Sub Sij 6 06:45:43 2018

或者,如果您通过指定其可执行文件的完整路径(例如

)来调用这些实用程序
C:\>
C:\>C:\oraclexe\app\oracle\product\11.2.0\server\bin\imp help=y

Import: Release 11.2.0.2.0 - Production on Sub Sij 6 06:47:30 2018

我希望你能够做你想做的事。

答案 1 :(得分:1)

很可能您的问题与将LD_LIBRARY_PATHPATH设置为Instant Client目录有关。您可以在bash shell脚本中执行所有设置,例如。bash_profile.profile.bashrc

  1. 首先设置

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

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

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

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

    PATH
  4. 设置您的语言环境所需的Oracle全球化变量。如果未设置变量,则将假定默认语言环境。

    PATH=/usr/bin:${PATH}:${ORACLE_HOME}:${ORACLE_HOME}/bin
    export PATH
    

答案 2 :(得分:1)

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

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