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

How to have oracle imp 11gr2 and 12cr2 on the same machine and just choose the one that I want to use

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

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

Message 100 not found; No message file for product=RDBMS, facility=IMP: Release 11.2.0.3.0 - Production on Fri Jan 5 18:28:21 2018

Copyright (c) 1982, 2011, Oracl

Invalid format of Import utility name

Verify that ORACLE_HOME is properly set

Import terminated unsuccessfully

IMP-00000: Message 0 not found; No message file for product=RDBMS, facility=IMP

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

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

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

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

C:\>
C:\>cd C:\oraclexe\app\oracle\product.2.0\server\bin

C:\oraclexe\app\oracle\product.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.2.0\server\bin\imp help=y

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

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

您的问题很可能与将 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
    

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

    % setenv LD_LIBRARY_PATH 
    $ORACLE_HOME/lib:$LD_LIBRARY_PATH
    
  3. 确保从 RPM 安装的工具可执行文件是在 PATH 中找到的第一个可执行文件。例如,要对此进行测试,您可以输入 which impdp 应该 return $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. 设置您的语言环境所需的 Oracle 全球化变量。如果没有设置变量,将采用默认语言环境。

    NLS_LANG=AMERICAN_AMERICA.UTF8
    export NLS_LANG
    

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

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