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