代码改变世界

如何查看Oracle客户端版本

2014-11-10 15:36  潇湘隐者  阅读(82417)  评论(0编辑  收藏  举报

    在实际工作中,总会遇到一些需要查看、验证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

clip_image001

 

如果我要查看这个客户端版本是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

clip_image002

    Windows Server 2008 Oracle 64bit Client

clip_image003

     Windows Server 2012 Oracle 32bit Client

clip_image004

方法2: 查看安装的Oracle客户端版本

在%ORACLE_HOME%\inventory\ContentsXML目录下面找到comps.xml文件,例如我目前的测试服务器上路径为C:\Oracle_Client\Client64\product\11.2.0\client_1\inventory\ContentsXML\comps.xml

如果PLAT="NT_AMD64"表示安装的是64位的Oracle 客户端,如果PLAT="NT_X86"则表示安装的是32位的Oracle客户端。

Oracle 64bit Client

clip_image005

Oracle 32bit Client

clip_image006

 

方法3: 查看安装的Oracle客户端版本

如果操作系统是32位的,那么Oracle客户端也必定为32位,如果操作系统是64位操作系统,那么Oracle客户端则有可能为32位或64位,我们可以通过注册表来查看

例如,我在Windows Server 2012上安装了一个32位的Oracle 11g Client。 运行regedit进入注册表系统,在HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\下面,

你会发现下面没有注册信息,但是HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ORACLE下就能看到一些详细的注册表信息,如果安装的是64位的Oracle客户端,则注册表信息位于HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\下,而HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node下没有ORACLE目录。

clip_image007

clip_image008

 

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