我在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中并不那么简单。
如果有办法执行此操作,请在回答中进行描述,因为我需要逐步说明。
提前致谢。
答案 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_x86
和C:\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复制到两个安装中即可。