OCI安装错误记录(二)

由于Oracle11gR2X64在windows2008R264位环境下,并没有提供$ORACLE_HOME/lib32目录,再加上OCI8只支持在32位环境下安装的天然特性,http://itspace.iteye.com/blog/722876费了很大劲终于将OCI8成功装上。

引用
$ irb

irb(main):001:0>require'oci8'

=>true

irb(main

不了在使用时,却报如下错误

引用
$ ruby ruby_install_test.rb product

Checkgeneral_configStart.....

general_configcheckerror.

/usr/lib/ruby/gems/1.8/gems/ruby-oci8-1.0.2/lib/oci8.rb:52:in`init':OCILibraryInitializationError(OCIError)

from/usr/lib/ruby/gems/1.8/gems/ruby-oci8-1.0.2/lib/oci8.rb:52

from/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in`gem_original_require'

from/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in`require'

fromruby_install_test.rb:3

OCI8虽然装上,但是不能使用,也就意味着产品不可用。只能另外想办法。尝试将环境变量(包括ORACLE_HOME和LD_LIBRARY_HOME)设成client目录,再次执行,发现正常通过

引用
$ ruby ruby_install_test.rb

Checkgeneral_configStart.....

Checkgeneral_configend.

Checkmanager_configStart.....

Checkmanager_configend.

Checkdatabase.ymlStart.....

Checkdatabase.ymlend.

由此可知在,32位的client环境下,能运行正常。但是由于产品需求,必须运行在X64的ORACLE_HOME环境下,于是思考,在X64里面的环境变量PATH前面加上client路径,然后将client路径下的SQLPLUS移除。

引用
$ more .bash_profile

exportORACLE_HOME=c:/app/Administrator/product/11.2.0/dbhome_1

exportPATH=/cygdrive/c/app/Administrator/product/11.2.0/dbhome_1/bin:$PATH

exportPATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin

exportLD_LIBRARY_PATH=$ORACLE_HOME/lib

exportTEMP=c:/tmp

exportTMPDIR=c:/tmp

exportRUBYOPT=rubygems

exportSCRIPT_HOME=c:/dbra/app/shells

exportPATH=$PATH:$SCRIPT_HOME

exportRUBY_HOME=/cygdrive/c/dbra/app/ruby

exportWEB_HOME=/cygdrive/c/dbra/app/web

exportPATH=/cygdrive/c/app/Administrator/product/11.2.0/client_1:/cygdrive/c/dbra/app/shells:/cygdrive/c/oracle:$PATH

再次执行成功,终于解决了在11GR2X64环境下装OCI8的问题。不知道在aix,hp-ux下面会不会遇到类似问题,拭目以待,但至少提供了一种解决方法之道。

总结:

1、ORACLE11Gclient32bit在windows2008R2环境下安装之后没有SDK目录,这导致OCI8安装不成功,在安装完client成功之后,在其ORACLE_HOME目录中需要再次解压instantclient-sdk-win32-11.2.0.1.0.zip,再次安装OCI8即可成功。

2、如需安装其他节点,无须在其他节点再次安装client,只需要将client拷贝至其他节点即可,windows环境下也支持拷贝。

相关推荐