在已安装64位Oracle数据库服务器的Windows Server上安装Oracle 32位客户端

时间:2014-08-09 07:30:03

标签: database oracle client 32-bit

我在Windows 2008 R2上安装了64位Oracle数据库服务器(11.2.0.3),当然,它会自动安装64位客户端。我必须在32位的服务器上安装一个应用程序,并且需要32位Oracle客户端。 (请勿询问 - 我无法安装此应用程序的64位版本,它无法与64位客户端一起使用,我也无法将其安装在其他服务器上。)

现在我尝试将32位客户端安装到另一个物理文件夹中,并在安装时为Oracle Base和Software Location选择了不同的值,并且安装得很好。它将32位客户端安装的BIN文件夹放在PATH statemtn的头部。

然而,当我尝试使用32位版本运行“SQLplus系统/系统”时,它给出了“ORA-12560:TNS:协议适配器错误”。当我使用64位sqlplus.exe进入该文件夹并运行它(直接而不是通过PATH)时,“系统/系统”凭据工作正常。

我将TNSNames文件夹从Oracle Server的NETWORK / admin文件夹复制到Oracle Client的NETWORK / admin文件夹,然后重新启动服务器。相同的结果。

这是我对Oracle的故障排除知识的范围。

如何让32位客户端在与64位Oracle Server相同的服务器上运行? 我知道在linux / Unix中,你只需将lib32文件夹放入64位客户端文件夹并设置几个环境变量,但我很确定它在Windows中并不那么简单。

如果有办法执行此操作,请在回答中进行描述,因为我需要逐步说明。

提前致谢。

2 个答案:

答案 0 :(得分:22)

以下是如何在一台计算机上安装32位和64位Oracle客户端的说明。按照说明进行操作。

假设: Oracle Home称为OraClient11g_home1,客户端版本为11gR2

  • 下载并安装Oracle x86客户端,例如下载到C:\Oracle\11.2\Client_x86

  • 将Oracle x64客户端下载并安装到不同的文件夹中,例如C:\Oracle\11.2\Client_x64

  • 打开命令行工具,转到文件夹%WINDIR%\ System32,通常为C:\Windows\System32并创建符号链接ora112到文件夹C:\Oracle\11.2\Client_x64(请参阅下面的命令部分)< / p>

  • 更改为文件夹%WINDIR%\ SysWOW64,通常是C:\Windows\SysWOW64并创建符号链接ora112到文件夹C:\Oracle\11.2\Client_x86,(见下文)

  • 修改PATH环境变量,将所有条目C:\Oracle\11.2\Client_x86C:\Oracle\11.2\Client_x64替换为C:\Windows\System32\ora112,分别为\bin子文件夹。注意:C:\Windows\SysWOW64\ora112不得位于PATH环境中。

  • 如果需要,请将ORACLE_HOME环境变量设置为C:\Windows\System32\ora112

  • 打开注册表编辑器。将注册表值HKLM\Software\ORACLE\KEY_OraClient11g_home1\ORACLE_HOME设置为C:\Windows\System32\ora112。使用C:\Oracle\11.2\Client_x64也应该有效。

  • 将注册表值HKLM\Software\Wow6432Node\ORACLE\KEY_OraClient11g_home1\ORACLE_HOME设置为C:\Windows\System32\ora112(不是C:\Windows\SysWOW64\ora112)。使用C:\Oracle\11.2\Client_x86也应该有效。

  • 你完成了!现在,您可以将x86和x64 Oracle客户端无缝连接在一起,即x86应用程序将加载x86库,x64应用程序将加载x64库,而无需对系统进行任何进一步修改。

  • TNS_ADMIN环境变量(在注册表中分配TNS_ADMIN个条目)设置为公共位置可能是个明智之举,例如TNS_ADMIN=C:\Oracle\Common\network\admin

创建符号链接的命令:

cd C:\Windows\System32 mklink /d ora112 C:\Oracle\11.2\Client_x64 cd C:\Windows\SysWOW64 mklink /d ora112 C:\Oracle\11.2\Client_x86

注意:

两个符号链接必须具有相同的名称,例如ora112

尽管名称文件夹C:\Windows\System32包含x64库,但C:\Windows\SysWOW64包含x86(32位)库。不要困惑。

答案 1 :(得分:2)

我有同样的问题。同一台Windows 10计算机(单独的文件夹)上安装的32位和64位ORA客户端以及32位应用程序均停止工作。我所要做的只是编辑系统环境变量并删除ORACLE_HOME条目,然后重新启动。 Windows / Oracle根据注册表项进行其余操作。只需要将tnsnames.ora复制到两个安装中即可。