在已经运行64位Oracle数据库服务器的Windows Server上安装Oracle 32位客户端 [英] Installing Oracle 32-bit Client on Windows Server Already Running 64-bit Oracle Database Server

查看:157
本文介绍了在已经运行64位Oracle数据库服务器的Windows Server上安装Oracle 32位客户端的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I have 64-bit Oracle Database Server (11.2.0.3) installed on Windows 2008 R2, and naturally, it automatically installs the 64-bit client. I have to install an application onto this server that is 32-bit and requires the 32-bit Oracle client. (Don't Ask - I can't install the 64-bit version of this app, it won't work with the 64-bit client, and I can't install it on another server.)

现在,我已经尝试将32位客户端安装到另一个物理文件夹中,并在安装时为Oracle Base和Software Location选择了一个不同的值,并且安装也很好.并将32位客户端安装的BIN文件夹放在PATH状态mtn的开头.

Now i have tried installing the 32-bit Client into a different physical folder and selected a different value for the Oracle Base and Software Location when installing and it installed just fine. And it put the BIN folder of the 32-bit Client installation at the head of the PATH statemtn.

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

However, when i tried to run "SQLplus system/system" with the 32-bit version it gives me the "ORA-12560: TNS:protocol adapter error". When I go into the folder with the 64-bit sqlplus.exe and ran it (directly and not through PATH), the "system/system" credentials worked fine.

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

I copied the TNSNames folder from the Oracle Server's NETWORK/admin folder to the Oracle Client's NETWORK/admin folder, and rebooted the server. Same results.

这是我对Oracle进行故障排除知识的程度.

This is the extent of my troubleshooting knowledge for Oracle.

如何使32位客户端与64位Oracle Server在同一服务器上运行? 我知道在linux/Unix中,您只需将lib32文件夹放入64位客户端文件夹中并设置几个环境变量,但是我敢肯定,在Windows中并不是那么简单.

How can i get the 32-bit Client to run on the same server as the 64-bit Oracle Server? I know in linux/Unix, you simply put in the lib32 folder into the the 64-bit client folder and set a couple of environment variables, but i'm pretty sure it's not that simple in Windows.

如果有办法,请在回答时保持描述性,因为我将需要逐步说明.

If there is a way to do this, please be descriptive in you answer as I will need step-by-step instructions.

谢谢.

推荐答案

此处介绍了如何在一台计算机上安装32位和64位Oracle Client.按照说明进行操作,即可正常工作.

Here is an instruction how to install 32-bit and 64-bit Oracle Client on one machine. Follow the instruction, then it should work.

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

Assumptions: Oracle Home is called OraClient11g_home1, Client Version is 11gR2

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

下载Oracle x64 Client并将其安装到其他文件夹中,例如,安装到C:\Oracle\11.2\Client_x64

Download and install Oracle x64 Client into different folder, for example to C:\Oracle\11.2\Client_x64

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

Open command line tool, go to folder %WINDIR%\System32, typically C:\Windows\System32 and create a symbolic link ora112 to folder C:\Oracle\11.2\Client_x64 (see commands section below)

更改为文件夹%WINDIR%\ SysWOW64,通常为C:\Windows\SysWOW64,并创建指向文件夹C:\Oracle\11.2\Client_x86的符号链接ora112,(请参见下文)

Change to folder %WINDIR%\SysWOW64, typically C:\Windows\SysWOW64 and create a symbolic link ora112 to folder C:\Oracle\11.2\Client_x86, (see below)

修改PATH环境变量,将C:\Oracle\11.2\Client_x86C:\Oracle\11.2\Client_x64之类的所有条目替换为C:\Windows\System32\ora112以及它们的\bin子文件夹.注意:C:\Windows\SysWOW64\ora112不能在PATH环境中.

Modify the PATH environment variable, replace all entries like C:\Oracle\11.2\Client_x86 and C:\Oracle\11.2\Client_x64 by C:\Windows\System32\ora112, respective their \bin subfolder. Note: C:\Windows\SysWOW64\ora112 must not be in PATH environment.

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

If needed set your ORACLE_HOME environment variable to C:\Windows\System32\ora112

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

Open your Registry Editor. Set Registry value HKLM\Software\ORACLE\KEY_OraClient11g_home1\ORACLE_HOME to C:\Windows\System32\ora112. Using C:\Oracle\11.2\Client_x64 should also work.

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

Set Registry value HKLM\Software\Wow6432Node\ORACLE\KEY_OraClient11g_home1\ORACLE_HOME to C:\Windows\System32\ora112 (not C:\Windows\SysWOW64\ora112). Using C:\Oracle\11.2\Client_x86 should also work.

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

You are done! Now you can use x86 and x64 Oracle client seamless together, i.e. an x86 application will load the x86 libraries, an x64 application loads the x64 libraries without any further modification on your system.

TNS_ADMIN环境变量(注册表中的TNS_ADMIN条目)设置为一个公共位置(例如TNS_ADMIN=C:\Oracle\Common\network\admin

Probably it is a smart idea to set your TNS_ADMIN environment variable (resp. TNS_ADMIN entries in Registry) to a common location, for example 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

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.

Both symbolic links must have the same name, e.g. ora112.

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

Despite of their names folder C:\Windows\System32 contains the x64 libraries, whereas C:\Windows\SysWOW64 contains the x86 (32-bit) libraries. Don't be confused.

这篇关于在已经运行64位Oracle数据库服务器的Windows Server上安装Oracle 32位客户端的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆