分类: 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
这里的测试会给出出错的原因,所以错误比较好找。