在实际工作中,总会遇到一些需要查看、验证ORACLE客户端版本的问题,因为一台服务器可能装了多个Oracle客户端版本;也有可能你需要知道安装的版本是32位还是64位的。如何查看Oracle客户端(Oracle Client)的版本呢? 下面介绍一下在Windows、Linux下如何查看Oracle客户端版本的方法。
Windows平台:
方法1: 查看安装的Oracle客户端版本
如下所示,使用sqlplus -v命令,可以查到该客户端安装的 11.2.0.1.0的客户端版本。
C:Users>sqlplus -v
SQL*Plus: Release 11.2.0.1.0 Production
如果我要查看这个客户端版本是32bit还是64bit的呢,该如何查看,方法如下所示:
Step 1:运行sqlplus /nolog命令,如果你服务器安装了多个客户端版本,那么你应该进入对应安装目录的BIN目录后,运行该命令
C:Users>sqlplus /nolog
SQL*Plus: Release 11.2.0.1.0 Production on Mon Nov 10 11:32:23 2014
Copyright (c) 1982, 2010, Oracle. All rights reserved.
SQL>
Step 2:打开任务管理器,找到SQL*Plus进程,如果Oracle的客户端为32位,则在Image Name会标记为*32,那么如下图所示:
Windows Server 2008 Oracle 32bit Client
Windows Server 2008 Oracle 64bit Client
Windows Server 2012 Oracle 32bit Client
方法2: 查看安装的Oracle客户端版本
在%ORACLE_HOME%inventoryContentsXML目录下面找到comps.xml文件,例如我目前的测试服务器上路径为C:Oracle_ClientClient64product11.2.0client_1inventoryContentsXMLcomps.xml
如果PLAT="NT_AMD64"表示安装的是64位的Oracle 客户端,如果PLAT="NT_X86"则表示安装的是32位的Oracle客户端。
Oracle 64bit Client
Oracle 32bit Client
方法3: 查看安装的Oracle客户端版本
如果操作系统是32位的,那么Oracle客户端也必定为32位,如果操作系统是64位操作系统,那么Oracle客户端则有可能为32位或64位,我们可以通过注册表来查看
例如,我在Windows Server 2012上安装了一个32位的Oracle 11g Client。 运行regedit进入注册表系统,在HKEY_LOCAL_MACHINESOFTWAREORACLE下面,
你会发现下面没有注册信息,但是HKEY_LOCAL_MACHINESOFTWAREWow6432NodeORACLE下就能看到一些详细的注册表信息,如果安装的是64位的Oracle客户端,则注册表信息位于HKEY_LOCAL_MACHINESOFTWAREORACLE下,而HKEY_LOCAL_MACHINESOFTWAREWow6432Node下没有ORACLE目录。
Linux平台:
[oracle@ceglnx01 bin]$ sqlplus -v
SQL*Plus: Release 10.2.0.4.0 - Production
1:使用file命令查看32位还是64位客户端。
Oracle Client 32 bit
[oracle@db-server-01 ~]$ which sqlplus
/u01/app/oracle/product/10.2.0/db_1/bin/sqlplus
[oracle@db-server-01 ~]$ file /u01/app/oracle/product/10.2.0/db_1/bin/sqlplus
/u01/app/oracle/product/10.2.0/db_1/bin/sqlplus: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.2.5, dynamically linked (uses shared libs), not stripped
Oracle Client 64 bit
[oracle@db-server-02 ~]$ which sqlplus
/u01/app/oracle/product/10.2.0/db_1/bin/sqlplus
[oracle@db-server-02 ~]$ file /u01/app/oracle/product/10.2.0/db_1/bin/sqlplus
/u01/app/oracle/product/10.2.0/db_1/bin/sqlplus: ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped
或者
Oracle Client 32 bit
[oracle@db-server-01 logs]$ cd /u01/app/oracle/product/10.2.0/db_1/bin
[oracle@db-server-01 bin]$ file oracle
oracle: setuid setgid ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.2.5, dynamically linked (uses shared libs), not stripped
Oracle Client 64 bit
[oracle@db-server-02 ~]$ cd /u01/app/oracle/product/10.2.0/db_1/bin
[oracle@db-server-02 bin]$ file oracle
oracle: setuid setgid ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped
2: 通过查看$ORACLE_HOME下的lib或lib32目录,如果两个目录都存成,则为64位,如果只有lib目录.则为32位客户端。
[oracle@db-server-01 db_1]$ ls -d lib
lib
[oracle@db-server-01 db_1]$ ls -d lib*
lib lib32