Chinaunix首页 | 论坛 | 博客
  • 博客访问: 55719
  • 博文数量: 16
  • 博客积分: 70
  • 博客等级: 民兵
  • 技术积分: 66
  • 用 户 组: 普通用户
  • 注册时间: 2012-08-07 09:54
文章分类
文章存档

2015年(11)

2014年(1)

2013年(2)

2012年(2)

我的朋友

分类: Oracle

2015-04-17 22:16:28

最近做一个项目,在RHEL 5下建立一个oracle数据库系统,用于存储集群的录音数据,其中数据库驱动用的是odbc,这里简单的记录下安装配置odbc的经过吧。


一、安装unixODBC

从,下载了unixODBC-2.3.0.tar.gz,解压之:tar zxvf unixODBC-2.3.0.tar.gz

在解压出的文件夹下,执行:

#./configure

#make

#make install。

郁闷的是无论进入/usr/local/bin还是/usr/bin下都找不到ODBCConfig,不行就查找下吧,find / -name "ODBCConfig",还是没有。郁闷,怎么回事呢?google baidu之,有人说是没装gt包的缘故,好吧,先装吧,下载unixODBC-gui-gtk-2.2.1-i386.rpm和unixODBC-gui-qt-2.2.1-i386.rpm,然后安装,重新安装unixODBC,结果还是找不到ODBCConfig,超级郁闷了。

那是不是unixODBC的版本不对呢,于是从下载了unixODBC-2.2.1.tar.gz,解压配置make make install之,omg,终于在/usr/local/bin下找到了ODBCConfig。

 

二、配置ODBC for oracle

2.1安装oracle instant client客户端

在下载oracle instant client的rpm安装包,zip包也可以:

                                    oracle-instanceclient11.2-basic*.rpm

                                    oracle-instanceclient11.2-devel*.rpm

                                    oracle-instanceclient11.2-odbc*.rpm

                                    oracle-instanceclient11.2-sqlplus*.rpm

由于以前装过instant client,所以强制安装,注意顺序:rpm --force -ivh *。

安装的默认位置分别在/usr/share/oracle/11.2/client,/usr/include/oracle/11.2/client,/usr/lib/oracle/11.2/client下,

设置环境变量之前,在/usr/lib/oracle/11.2/client下创建network/admin文件夹,在此文件夹下创建tnsnames.ora,其内容入下:

ORCL=

   (DESCRIPTION =

     (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.2)(PORT = 1521))

     (CONNECT_DATA =

        (SERVER = DEDICATED)

        (SERVICE_NAME = orcl)

     )

    )

 

在/usr/lib/oracle/11.2/client/network/admin文件下创建sqlnet.ora,输入:

NAME_DIRECTORY_PATH=(TNSNAMES,EZCONNECT)

 

设置环境变量:

#vi ~/.bashrc

在文件后面加入:

export ORACLE_HOME=/usr/lib/oracle/11.2/client

export ORACLE_SID=orcl

export TNS_ADMIN=$ORACLE_HOME/network/admin

export LD_LIBRARY_PATH=$ORACLE_HOME/lib

export SQLPATH=$ORACLE_HOME

PATH=$PATH:$ORACLE_HOME

export PATH

 

立即生效#source ~/.bashrc

由于已经在本机上装好了oracle server,下面测试下客户端是否安装成功:

#sqlplus /nolog

SQL>conn 

出现问题ora-12541,解决方法:

因为服务器没有打开监听,所以登录服务器,

$lsnrctl start

然后再登:

#sqlplus /nolog

SQL>conn 

OK,instant client安装成功。

 

2.2安装配置easysoft oracle-odbc driver

在下载odbc-oracle-3.3.0-linux-x86-glibc.tar

解压:#tar -xvf odbc-oracle-3.3.0-linux-x86-glibc.tar

进入安装目录,#./install

安装完毕之后,查看libodbcinst.so,libeslicshr_r.so,libessupp_r.so所在的文件夹分别为:

/usr/local/lib/,/usr/local/easysoft/lib,/usr/local/easysoft/lib

配置环境变量:

#vi ~/.bashrc

在后面加入:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

export SHLIB_PATH=/usr/local/easysoft/lib

export LIBPATH=/usr/local/easysoft/lib

退出使之立即生效:

#source ~/.bashrc

 

修改odbcinst.ini和odbc.ini文件,这两个文件是unixODBC用来配置odbc数据源和odbc驱动程序的

#vi /etc/odbcinst.ini

[ORACLE]

Description   = Easysoft ODBC Oracle Driver

Diver = /usr/local/easysoft/oracle/libesoracle.so

Setup = /usr/local/easysoft/oracle/libesoraclesetup.so

FileUsage = 1

CPTimeout =

CPReuse =

 

#vi /etc/odbc.ini

[ORACLE]

DBI_LONG_SIZE =

Driver = ORACLE

Database = //192.168.0.2;1521/orcl

User = system

Password = system

ENABLE_USER_CATALOG = 1

ENABLE_SYNONYMS = 1

METADATA_ID = 0

METADATA_DONT_CHANGE_CASE =

OCI_ATTR_PREFETCH_ROWS =

OCI_ATTR_PREFETCH_MEMORY =

DBI_LONG_SIZE =

DATA_TYPE_MAP =

PEPORT_LONGS =

NO_LOBS =

 

测试一下:

#cd /usr/local/easysoft/oracle

#./checksys -d ORACLE

这里的测试会给出出错的原因,所以错误比较好找。

阅读(3115) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~