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

Database 在已运行64位Oracle数据库服务器的Windows Server上安装Oracle 32位客户端,database,oracle,client,32-bit,Database,Oracle,Client,32 Bit,我在Windows 2008 R2上安装了64位Oracle数据库服务器(11.2.0.3),它自然会自动安装64位客户端。我必须在此服务器上安装一个32位的应用程序,它需要32位Oracle客户端。(不问-我无法安装此应用程序的64位版本,它无法与64位客户端一起工作,并且我无法在其他服务器上安装。) 现在,我尝试将32位客户端安装到不同的物理文件夹中,并在安装时为Oracle Base和软件位置选择了不同的值,并且安装得很好。它将32位客户端安装的BIN文件夹放在路径statemtn的开头

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

现在,我尝试将32位客户端安装到不同的物理文件夹中,并在安装时为Oracle Base和软件位置选择了不同的值,并且安装得很好。它将32位客户端安装的BIN文件夹放在路径statemtn的开头

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

我将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\u x86

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

  • 打开命令行工具,转到文件夹%WINDIR%\System32,通常是
    C:\Windows\System32
    ,并创建指向文件夹
    C:\Oracle\11.2\Client\u x64
    的符号链接
    ora112
    (请参阅下面的命令部分)

  • 更改到文件夹%WINDIR%\SysWOW64,通常是
    C:\Windows\SysWOW64
    ,并创建一个符号链接
    ora112
    ,指向文件夹
    C:\Oracle\11.2\Client\u x86
    (见下文)

  • 修改
    PATH
    环境变量,用
    C:\Windows\System32\ora112
    替换所有条目,如
    C:\Oracle\11.2\Client\u x86
    C:\Oracle\11.2\Client\u x64
    ,分别替换它们各自的
    \bin
    子文件夹。注意:
    C:\Windows\SysWOW64\ora112
    不能在路径环境中

  • 如果需要,将您的
    ORACLE\u HOME
    环境变量设置为
    C:\Windows\System32\ora112

  • 打开注册表编辑器。将注册表值
    HKLM\Software\ORACLE\KEY\u OraClient11g\u home1\ORACLE\u HOME
    设置为
    C:\Windows\System32\ora112
    。使用
    C:\Oracle\11.2\Client\u x64
    也可以工作

  • 将注册表值
    HKLM\Software\Wow6432Node\ORACLE\KEY\u OraClient11g\u home1\ORACLE\u HOME
    设置为
    C:\Windows\System32\ora112
    (而不是
    C:\Windows\SysWOW64\ora112
    )。使用
    C:\Oracle\11.2\Client\u x86
    也可以工作

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

  • TNS\u ADMIN
    环境变量(注册表中的resp.
    TNS\u ADMIN
    条目)设置为公共位置,例如
    TNS\u ADMIN=C:\Oracle\common\network\ADMIN

用于创建符号链接的命令:

cd C:\Windows\System32
mklink/d ora112 C:\Oracle\11.2\Client\u x64
cd C:\Windows\SysWOW64
mklink/d ora112 C:\Oracle\11.2\Client_x86

注:

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


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

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

这是superuser.com的问题。如果tnsnames.ora在连接描述CONNECT_数据部分中使用“sid”,请尝试使用“service_name”而不是它。是否有理由不作任何评论就进行否决表决。万一你不喜欢一个链接作为答案,我会把我的文字复制到这里。Wernfried,我是这个论坛的新手,所以如果我无意中否决了你的评论,我道歉,但是,我想我没有。不过,我有一个后续行动。在我的场景中,已经安装了Oracle 64位服务器(和客户端)。这是否有区别,因为您的方法似乎假定两个客户端都没有安装。您还建议在64位客户端之前安装32位客户端。对我来说,这是不可能的。只是不知道这是否会成为一个问题。非常感谢您的回复。我来试一试,看看会发生什么。这是一个通用指令,顺序不重要。安装Oracle客户端后,您甚至可以按任何顺序执行每一行。唯一重要的一点是:32位和64位