1. 程式人生 > 其它 >Linux 下用unixODBC連線Oracle資料庫的配置

Linux 下用unixODBC連線Oracle資料庫的配置

  • 伺服器環境檢查
[root@db11g ~]# cat /etc/issue

Red Hat Enterprise Linux Server release 6.5 (Santiago)

Kernel \r on an \m

[root@db11g ~]# uname -a

Linux db11g 2.6.32-431.el6.x86_64 #1 SMP Sun Nov 10 22:19:54 EST 2013 x86_64 x86_64 x86_64 GNU/Linux

  • 準備介質

無論安裝與否,均需下載以下三個介質,下載時注意和伺服器平臺匹配(32位、64位)

  • unixODBC-2.3.0.tar.gz
  • instantclient-basic-linux.x64-11.2.0.3.0.zip
  • instantclient-odbc-linux.x64-11.2.0.3.0.zip

下載後,將三個介質傳至/opt/odbc/目錄下

  • 安裝unixODBC(root使用者執行)
[root@db11g ~]# cd /opt/odbc/

[root@db11g odbc]#tar xvf unixODBC-2.3.0.tar.gz

[root@db11g odbc]#cd /opt/odbc/unixODBC-2.3.0

[root@db11g odbc]#./configure

[root@db11g odbc]#make

[root@db11g odbc]#make install
  • 安裝Oracle ODBC(root使用者執行)
[root@db11g odbc]# cd /opt/odbc/

[root@db11g odbc]# unzip instantclient-basic-linux.x64-11.2.0.4.0.zip

[root@db11g odbc]# unzip instantclient-odbc-linux.x64-11.2.0.4.0.zip

兩個檔案均解壓到了instantclient_11_2下

[root@db11g odbc]# cd /opt/odbc/instantclient_11_2

[root@db11g odbc]# chmod 775 odbc_update_ini.sh

[root@db11g odbc]# ./odbc_update_ini.sh /usr/local

沒有任何提示表示安裝成功

odbc_update_ini.sh引數說明:
引數1:unixODBC DM安裝路徑。
引數2:驅動安裝的絕對路徑(可選)。預設為執行指令碼的路徑。
引數3:驅動名(可選),預設為Oracle 11g ODBC driver。
引數4:資料來源名稱(可選),預設為OracleODBC-11g。
執行完成後將新增一個DNS條目到$HOME/.odbc.ini , <DriverManager_HOME>/etc/odbcinst.ini,名稱為:OracleODBC-11g

  • 配置本地服務名
[root@db11g odbc]#cd $ORACLE_HOME/network/admin

[root@db11g odbc]#vi tnsnames.ora

例:

test =

(DESCRIPTION =

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

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = zyr11g)

)

)

  • 檢查驅動配置
[root@db11g odbc]#cat /usr/local/etc/odbcinst.ini

[Oracle 11g ODBC driver]

Description = Oracle ODBC driver for Oracle 11g

Driver = /u01/app/ora11g/product/11.2.0/db_1/odbc/utl/libsqora.so.11.1

Setup =

FileUsage =

CPTimeout =

CPReuse =

  • 配置oracle odbc配置(oracle使用者執行)
[root@db11g odbc]#vi ~/.odbc.ini

[OracleODBC-11g]

Application Attributes = T

Attributes = W

BatchAutocommitMode = IfAllSuccessful

BindAsFLOAT = F

CloseCursor = F

DisableDPM = F

DisableMTS = T

Driver = Oracle 11g ODBC driver #對應/usr/local/etc/odbcinst.ini中的驅動配置名稱

DSN = OracleODBC-11g

EXECSchemaOpt =

EXECSyntax = T

Failover = T

FailoverDelay = 10

FailoverRetryCount = 10

FetchBufferSize = 64000

ForceWCHAR = F

Lobs = T

Longs = T

MetadataIdDefault = F

QueryTimeout = T

ResultSets = T

ServerName =test #對應tnsnames.ora中配置的本地服務名

SQLGetData extensions = F

Translation DLL =

Translation ption = 0

DisableRULEHint = T

UserID =

  • 設定環境變數(oracle使用者執行)
[root@db11g odbc]#vi ~/.bash_profile

# .bash_profile

# Get the aliases and functions

if [ -f ~/.bashrc ]; then

. ~/.bashrc

fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH

export ORACLE_BASE=/u01/app/oracle

export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1

export ORACLE_UNQNAME=zyr11g

export ORACLE_SID=db11g

export LD_LIBRARY_PATH=/opt/odbc/instantclient_11_2:/usr/local/lib:$LD_LIBRARY_PATH

export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:/usr/local/bin:$PATH

  • 測試(oracle使用者執行)
[oracle@db11g ~]$ isql OracleODBC-11g cs cs -v

+---------------------------------------+

| Connected! |

| |

| sql-statement |

| help [tablename] |

| quit |

| |

+---------------------------------------+

SQL>

測試方法:

isql <資料來源名稱> <使用者名稱> <密碼> -v

資料來源名稱來自於oracle使用者下的~/.odbc.ini配置檔案

本文來自部落格園,作者:Eddie小陳,轉載請註明原文連結:https://www.cnblogs.com/orachen/p/15878806.html