標籤: 應用程式 include oracle 伺服器
安裝unixodbc——以下操作在root使用者下操作
安裝過程和報錯處理我是參考及引用網路上的資源,也結合了自己的實際安裝環境
一、安裝unixodbc工具
1、下載unixodbc壓縮包(unixODBC-2.3.4.tar.gz),用ssh工具將其上傳linux伺服器。(:http://www.unixodbc.org/)
2、輸入以下命令,進行安裝:
#tar -zxvf unixODBC-2.3.4.tar.gz——解壓
#cd unixODBC-2.3.4——進入解壓後的安裝目錄
#./configure --prefix=/usr/local/unixODBC-2.3.4 --includedir=/usr/include --libdir=/usr/lib --bindir=/usr/bin --sysconfdir=/etc——對unixODBC-2.3.4軟體進行配置
#make——對unixODBC-2.3.4進行編譯
#make install——安裝unixODBC-2.3.4
ps:在Linux下安裝一個應用程式時,一般先運行指令碼configure,然後用make來編譯來源程式,在運行make install,最後運行make clean刪除一些臨時檔案(沒做過最後一步)。
二、安裝oracle資料庫的odbc驅動
1、下載、上傳並安裝以下兩同版本號碼的rpm軟體包
oracle-instantclient11.2-basic-11.2.0.1.0-1.i386.rpm
oracle-instantclient11.2-odbc-11.2.0.1.0-1.i386.rpm
: http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html
#rpm -ivh oracle-instantclient11.2-basic-11.2.0.1.0-1.i386.rpm ——安裝操作
#rpm -ivh oracle-instantclient11.2-odbc-11.2.0.1.0-1.i386.rpm——安裝操作
ps:下載32位或63位的rpm包,由linux系統來決定,用uname -a,可查看當前系統的型號
2、將/usr/lib/oracle/11.2/client/lib/* 拷貝到/usr/lib/目錄下——將oracle下動態串連共用庫拷貝到linux系統預設路徑下
3、執行ldconfig——將linux系統新增的oracle動態串連共用庫進行載入
4、在/usr/lib/oracle/11.2/NETwork/admin/ 下建立檔案tnsnames.ora ,如下:
ORCL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.162.35.137)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = ORCL)
)
)
其中ORCL為一個標識名,設定檔odbc.ini中的ServerName項要與之相對應,SERVICE_NAME後跟要訪問的資料庫名,HOST為資料庫所在主機IP地址,PORT為連接埠號碼。
ps:若之前已經有tnsnames.ora檔案,注意看下配置細節即可。
5、在/etc/profile中增加: export TNS_ADMIN=/usr/lib/oracle/11.2/network/admin/——配置新增的環境變數資訊
6、執行 . /etc/profile (注意前面的英文句號,點號後面有空格) 將環境變數註冊
三、檔案配置
主要是修改 /etc/ 下的兩個設定檔 odbc.ini 及 odbcinst.ini 。
1、在/etc/odbcinst.ini 中對各資料庫的驅動進行配置,一般格式如
[oraclezy]
Description = odbc for Oracle——描述
Driver = /usr/lib/libsqora.so.11.1——驅動程式
Setup = /usr/lib/liboraodbcS.so——設定
FileUsage = 1
[ODBC]
Trace=1——追蹤
Debug=1——調試
Pooling=No
ps:上述配置中的 Driver 及 Setup 後跟的欄位,可能由於版本不同,配置會略有不同,要以本機上的庫名或驅動名為準,可先用 ls 命令查看一下。
2、在 /etc/odbc.ini 中對應用程式要調用的ODBC介面進行配置,格式如下:
[oracle]
#odbcinst.ini中對應中括弧中的名字
driver = oraclezy
server = 192.168.1.167 or localhost
port = 1521
#tns的名字
ServerName = ORCL
UserID = root
password = 123456(以安裝oracle資料庫時註冊的使用者為主)
四、測試連接
完成以上操作後,執行iqsl oracle(以在odbc.ini的資料來源名為主) root(使用者) 123456(密碼) -v
即:isql oracle root 123456 -v
出現此介面,即安裝配置成功:
+---------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+---------------------------------------+
SQL>
五、odbc串連oracle資料庫報錯類型
1、ORA-12170:TNS:Connect timeout occurred:連線逾時,注意/etc/odbc.ini 設定檔中servername與tnsnames.ora是否一致
ps:我在安裝時,就只遇到一個報錯:
[01000][unixODBC][Driver Manager]Can‘t open lib ‘/usr/lib/oracle/10.2.0.4/client
/libsqora.so.10.1‘ : file not found
[ISQL]ERROR: Could not SQLConnect
處理方法:
原因是libsqora.so.11.1依賴的包沒有
參考連結:http://bbs.csdn.net/topics/390566189
1、使用如下命令查看依賴關係
# ldd /usr/lib/oracle/11.2/client64/lib/libsqora.so.11.1
linux-vdso.so.1 => (0x00007fff99b1d000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007fbcb52f1000)
libm.so.6 => /lib64/libm.so.6 (0x00007fbcb506c000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fbcb4e4f000)
libnsl.so.1 => /lib64/libnsl.so.1 (0x00007fbcb4c36000)
libclntsh.so.11.1 => /usr/lib/oracle/11.2/client64/lib/libclntsh.so.11.1 (0x00007fbcb22c6000)
libodbcinst.so.1 => not found (0x00007fbcb20b5000)
libc.so.6 => /lib64/libc.so.6 (0x00007fbcb1d23000)
/lib64/ld-linux-x86-64.so.2 (0x000000393aa00000)
libnnz11.so => /usr/lib/oracle/11.2/client64/lib/libnnz11.so (0x00007fbcb1955000)
libaio.so.1 => /lib64/libaio.so.1 (0x00007fbcb1754000)
libltdl.so.7 => /usr/lib64/libltdl.so.7 (0x00007fbcb154b000)
2、使用如下命令尋找libodbcinst.so.1的位置
#find / -name libodbcinst*
/usr/lib64/libodbcinst.so
/usr/lib64/libodbcinst.so.2
/usr/lib64/libodbcinst.so.2.0.0
/usr/lib/libodbcinst.so
/usr/lib/libodbcinst.so.2
/usr/lib/libodbcinst.so.2.0.0
確實沒有libodbcinst.so.1
3、解決該問題是實際操作
將/usr/lib64/libodbcinst.so.2、/usr/lib/libodbcinst.so.2分別複製
#cp /usr/lib/libodbcinst.so.2 /usr/lib/libodbcinst.so.1
#cp /usr/lib64/libodbcinst.so.2 /usr/lib64/libodbcinst.so.1
重新運行驗證命令即可
安裝unxiodbc軟體,串連oracle資料庫