如何在同一台机器上安装 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_PATH
和 PATH
设置到 Instant Client 目录有关。您可以在 bash shell 脚本中执行所有设置,例如 .bash_profile
、.profile
、.bashrc
:
首先设置
ORACLE_HOME=/root/oracle/instantclient_12_2; export ORACLE_HOME
将包含 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
确保从 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
设置您的语言环境所需的 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
我目前正在开发导入 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_PATH
和 PATH
设置到 Instant Client 目录有关。您可以在 bash shell 脚本中执行所有设置,例如 .bash_profile
、.profile
、.bashrc
:
首先设置
ORACLE_HOME=/root/oracle/instantclient_12_2; export ORACLE_HOME
将包含 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
确保从
中设置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
设置您的语言环境所需的 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