这个场景比较特殊,是一个客户遇到的问题触发我写的这篇文章。数据库服务器通常安装的都是64位的操作系统和64位的数据库软件。客户端使用的操作系统和客户端程序复杂度远比服务器要多很多,安装的客户端操作系统既可能是3 2位,也可能是64位,在32位的操作系统只能安装32位的数据库客户端软件。在64位的客户端操作系统可以安装32位和64位的数据库客户端软件,但是如果客户端使用pl/sql,那么只能安装32位的Oracle数据库客户端(pl/sql不支持64位的Oracle客户端),如果开发的软件只支持32位平台的,那么在64位的客户端操作系统可能也只能安装32位的Oracle数据库客户端软件,通过3 2位的Oracle 数据库客户端软件连接到64位的数据库。
这个项目要实现这样一个目的,开发的Java程序(C/S架构)只支持32位,那么必须通过配置32位的ODBC(必须安装32位的Oracle客户端,开发的Java程序无法加载64位的Oracle数据库客户端驱动)连接到64位的数据库环境,该程序必须确保在32位的客户端和64位的客户端操作系统都能正常使用,32位的客户端下运行是没问题的,这里讨论的就是在64位客户端下运行,通过32位ODBC连接数据库遇到的问题。讨论场景的服务器、客户端配置如下:服务器操作系统:Redhat Enterprise 5.4 x86_64bit
数据库服务器:Oracle 11gR2 RAC Database 64bit
客户端:Win7旗舰版x86_64bit
Oracle Database客户端:Oracle 11gR2 Database x86
Java JDK:jdk-6u31-windows-i586
下面对遇到的问题及解决方法进行讨论:
1.数据库支持的操作系统版本。
数据库运行在Linux环境,客户端都运行在Windows平台,首先明确Or acle数据库支持的Windows平台。
从上面的文档中可以看出Oracle的11gR2数据库产品是完全支持Windows 7的专业版、企业版和旗舰版,所以在这样的平台安装数据库和客户端都是没有问题的。
2.安装32位的Oracle Database客户端软件。