我在Windows 2008 R2上安装了64位Oracle数据库服务器(11.2.0.3),自然地,它会自动安装64位客户端。我必须在该 32 位服务器上安装一个应用程序,并且需要 32 位 Oracle 客户端。 (不要问 - 我无法安装此应用程序的 64 位版本,它无法与 64 位客户端一起使用,而且我无法将其安装在另一台服务器上。)
现在,我尝试将 32 位客户端安装到不同的物理文件夹中,并在安装时为 Oracle Base 和软件位置选择了不同的值,并且安装得很好。并将 32 位客户端安装的 BIN 文件夹放在 PATH 状态的开头。
但是,当我尝试使用 32 位版本运行“SQLplus system/system”时,它给出了“ORA-12560:TNS:协议适配器错误”。当我进入包含 64 位 sqlplus.exe 的文件夹并运行它(直接而不是通过 PATH)时,“system/system”凭据工作正常。
我将 TNSNames 文件夹从 Oracle 服务器的 NETWORK/admin 文件夹复制到 Oracle 客户端的 NETWORK/admin 文件夹,然后重新启动服务器。结果相同。
这就是我对 Oracle 的故障排除知识的范围。
如何让 32 位客户端与 64 位 Oracle 服务器在同一服务器上运行?
我知道在 linux/Unix 中,您只需将 lib32 文件夹放入 64 位客户端文件夹中并设置几个环境变量,但我很确定在 Windows 中这并不那么简单。
如果有办法做到这一点,请在您的回答中进行描述,因为我需要分步说明。
提前致谢。
以下是如何在一台计算机上安装 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
(参见下面的命令部分)
-
更改至文件夹%WINDIR%\SysWOW64
, 通常C:\Windows\SysWOW64
并创建一个符号链接ora112
到文件夹C:\Oracle\11.2\Client_x86
, (见下文)
-
修改PATH
环境变量,替换所有条目,例如C:\Oracle\11.2\Client_x86
and C:\Oracle\11.2\Client_x64
by C:\Windows\System32\ora112
,各自的\bin
子文件夹。笔记:C:\Windows\SysWOW64\ora112
不得位于 PATH 环境中。
-
如果需要设置您的ORACLE_HOME
环境变量为C:\Windows\System32\ora112
-
打开注册表编辑器。设置注册表值HKLM\Software\ORACLE\KEY_OraClient11g_home1\ORACLE_HOME
to C:\Windows\System32\ora112
. Using C:\Oracle\11.2\Client_x64
也应该有效。
-
设置注册表值HKLM\Software\Wow6432Node\ORACLE\KEY_OraClient11g_home1\ORACLE_HOME
to C:\Windows\System32\ora112
(not 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
Notes:
两个符号链接必须具有相同的名称,例如ora112
.
尽管有他们的名字文件夹C:\Windows\System32
包含 x64 库,而C:\Windows\SysWOW64
包含 x86(32 位)库。不要感到困惑。
背景信息,为什么它有效:注册表重定向器 https://learn.microsoft.com/en-us/windows/win32/winprog64/registry-redirector?redirectedfrom=MSDN and 文件系统重定向器 https://learn.microsoft.com/en-us/windows/win32/winprog64/file-system-redirector?redirectedfrom=MSDN
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)