亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Ubuntu16.04下怎么安裝Oracle數據庫的ODBC驅動

發布時間:2021-08-31 18:09:45 來源:億速云 閱讀:236 作者:chen 欄目:關系型數據庫

本篇內容介紹了“Ubuntu16.04下怎么安裝Oracle數據庫的ODBC驅動”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

在Ubuntu 16.04下要連接遠程的Oracle數據庫,有多種方式,本文介紹通過ODBC方式來實現客戶端遠程訪問Oracle數據庫。

1、要通過ODBC方式連接遠程數據庫,客戶端需要有ODBC管理程序,在Linux系統下,可以用以下命令檢查ODBC的環境和配置:

(1)檢查系統是否安裝ODBC管理程序:

csyy@server02:~$ dpkg -l | grep odbc

Desired=Unknown/Install/Remove/Purge/Hold

| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend

|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)

||/ Name                    Version      Architecture Description

+++-=======================-============-============-=========================

ii  libodbc1:amd64          2.3.7        amd64        ODBC library for Unix

ii  msodbcsql17             17.4.2.1-1   amd64        ODBC Driver for Microsoft(R) SQL Server(R)

ii  odbcinst                2.3.7        amd64        Helper program for accessing odbc ini files

ii  odbcinst1debian2:amd64  2.3.7        amd64        Support library for accessing odbc ini files

ii  unixodbc                2.3.7        amd64        Basic ODBC tools

ii  unixodbc-dev            2.3.7        amd64        ODBC libraries for UNIX (development files)

如果未找到ODBC管理程序,可用以下命令來安裝:

sudo apt-get install unixodbc

(2)檢查ODBC環境配置:

csyy@server02:~$ odbcinst

******************************************************************************

* unixODBC - odbcinst                                                        *

******************************************************************************

* Purpose:                                                                   *

*      An ODBC Installer and Uninstaller.                                    *

*      Updates system files, and increases/decreases usage counts but        *

*      does not actually copy or remove any files.                           *

* Syntax:                                                                    *

*      odbcinst Action Object Options                                        *

* Action:                                                                    *

*      -i         install                                                    *

*      -u         uninstall                                                  *

*      -q         query                                                      *

*      -j         print config info                                          *

*      -c         call SQLCreateDataSource                                   *

*      -m         call SQLManageDataSources                                  *

*      --version  version                                                    *

* Object:                                                                    *

*      -d driver                                                             *

*      -s data source                                                        *

* Options:                                                                   *

*      -f file name of template.ini follows this (valid for -i)              *

*      -r get template.ini from stdin, not a template file                   *

*      -n Driver or Data Source Name follows                                 *

*      -v turn verbose off (no info, warning or error msgs)                  *

*      -l system dsn                                                         *

*      -h user dsn                                                           *

* Returns:                                                                   *

*      0   Success                                                           *

*     !0   Failed                                                            *

* Please visit;                                                              *

*      http://www.unixodbc.org                                               *

*      pharvey@codebydesign.com                                              *

******************************************************************************

csyy@server02:~$ odbcinst -j

unixODBC 2.3.7

DRIVERS............: /etc/odbcinst.ini

SYSTEM DATA SOURCES: /etc/odbc.ini

FILE DATA SOURCES..: /etc/ODBCDataSources

USER DATA SOURCES..: /home/csyy/.odbc.ini

SQLULEN Size.......: 8

SQLLEN Size........: 8

SQLSETPOSIROW Size.: 8

從配置環境來看,ODBC驅動的配置文件是/etc/odbcinst.ini,系統DSN的配置文件是/etc/odbc.ini,文件DSN的配置文件是/etc/ODBCDataSources,而用戶DSN的配置文件則是$HOME/.odbc.ini。

2、下載并安裝oracle ODBC驅動程序:

進入官網https://www.oracle.com/database/technologies/instant-client/ linux-x86-64-downloads.html下載如下所需的安裝包。

oracle-instantclient11.2-odbc-11.2.0.4.0-1.x86_64.rpm

進行安裝

sudo alien -i oracle-instantclient11.2-odbc-11.2.0.4.0-1.x86_64.rpm

此處采用了rpm包來安裝Oracle for ODBC的驅動程序,也可通過zip包來安裝。

Oracle for ODBC驅動程序的安裝目錄是/usr/share/oracle/11.2/client64。

3、有關Oracle客戶端的安裝,可以參考:

http://blog.itpub.net/81227/viewspace-2668066/

4、配置Oracle 11gR2的ODBC:

root@server02:~# cd /usr/share/oracle/11.2/client64

root@server02:/usr/share/oracle/11.2/client64# ./odbc_update_ini.sh /

odbc_update_ini.sh參數說明:

參數1:unixODBC安裝路徑。

參數2:驅動安裝的絕對路徑(可選)。默認為運行腳本的路徑。

參數3:驅動名(可選),默認為Oracle 11g ODBC driver。

參數4:數據源名稱(可選)。

運行完成后,將在/etc/odbcinst.ini文件中添加有關Oracle for ODBC的驅動程序配置信息,名稱為Oracle 11g ODBC driver;同時,也會添加一個DSN條目到$HOME/.odbc.ini和/etc/odbc.ini,名稱為:OracleODBC-11g。

root@server02:/usr/share/oracle/11.2/client64# cat /etc/odbcinst.ini

[Oracle 11g ODBC driver]

Description     = Oracle ODBC driver for Oracle 11g

# Driver          = /usr/share/oracle/11.2/client64/libsqora.so.11.1

Driver          = /usr/lib/oracle/11.2/client64/lib/libsqora.so.11.1

Setup           =

FileUsage       =

CPTimeout       =

CPReuse         =

驅動程序的動態庫配置錯誤,不是在/usr/share目錄下,而是在/usr/lib目錄下。

root@server02:/usr/share/oracle/11.2/client64# cat /etc/odbc.ini

[OracleODBC-11g]

Application Attributes = T

Attributes = W

BatchAutocommitMode = IfAllSuccessful

BindAsFLOAT = F

CloseCursor = F

DisableDPM = F

DisableMTS = T

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

DSN = OracleDSN

EXECSchemaOpt =

EXECSyntax = T

Failover = T

FailoverDelay = 10

FailoverRetryCount = 10

FetchBufferSize = 64000

ForceWCHAR = F

Lobs = T

Longs = T

MetadataIdDefault = F

QueryTimeout = T

ResultSets = T

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

SQLGetData extensions = F

Translation DLL =

Translation ption = 0

DisableRULEHint = T

UserID =

配置完ODBC配置文件后,可以通過isql連接Oracle數據庫。

命令:isql <數據源名稱> <用戶名> <密碼> [-v]

下面講述一下在實際安裝過程中遇到的幾個問題。

問題1:關于驅動程序libsqora.so.11.1的路徑問題。

默認安裝配置后,配置文件中的文件是在/usr/share/oracle/11.2/client64路徑下,可實際檢查在此目錄中并未發現此文件。

Driver          = /usr/share/oracle/11.2/client64/libsqora.so.11.1

通過find命令查找,在/usr/lib/oracle/11.2/client64/lib目錄中發現此文件,故修改配置如下。

Driver          = /usr/lib/oracle/11.2/client64/lib/libsqora.so.11.1

問題2:初次執行isql命令,報“ORA-12162”和“ORA-12545”錯誤。

root@server02:~# isql OracleODBC-11g OracleUser OraclePassword -v

[S1000][unixODBC][Oracle][ODBC][Ora]ORA-12162: TNS:net service name is incorrectly specified

[ISQL]ERROR: Could not SQLConnect

查Oracle文檔,解釋為Oracle連接字符串不正確。

ORA-12162: TNS:net service name is incorrectly specified

 Cause: The connect descriptor corresponding to the net service name in TNSNAMES.ORA or in the directory server (Oracle Internet Directory) is incorrectly specified.

Action: If using local naming make sure there are no syntax errors in the corresponding connect descriptor in the TNSNAMES.ORA file. If using directory naming check the information provided through the administration used for directory naming.

ORA-12162: TNS:net服務名稱指定不正確

原因:與TNSNAMES.ORA或Oracle目錄服務器中的網絡服務名稱對應的連接描述符指定不正確。

操作:如果使用本地命名,請確保TNSNAMES.ORA文件中相應的連接描述符中沒有語法錯誤。如果使用目錄命名,請檢查通過用于目錄命名的管理提供的信息。

再仔細檢查Oracle TNS配置,未發現有配置錯誤。

再次上網查找,有講是“詭異的故障背后的原因竟然是那樣的基礎:ORACLE_SID沒有指定!”。

確認系統當前的ORACLE_HOME和ORACLE_SID環境變量:

root@server02:~# echo $ORACLE_HOME

/usr/lib/oracle/11.2/client64

root@server02:~# echo $ORACLE_SID

可見,此時只設置了ORACLE_HOME環境變量,但ORACLE_SID此時為空,這是該問題的真實原因嗎?

一般來說,Oracle客戶端是不需要設置ORACLE_SID環境變量的。

那就先試試看吧。

root@server02:~# export ORACLE_SID=orcl

root@server02:~# isql OracleODBC-11g OracleUser OraclePassword -v

[S1000][unixODBC][Oracle][ODBC][Ora]ORA-12545: Connect failed because target host or object does not exist

[ISQL]ERROR: Could not SQLConnect

一個“ORA-12162”問題剛解決,又來一個“ORA-12545”錯誤

ORA-12545: Connect failed because target host or object does not exist

 Cause: The address specified is not valid, or the program being connected to does not exist.

Action: Ensure the ADDRESS parameters have been entered correctly; the most likely incorrect parameter is the node name. Ensure that the executable for the server exists (perhaps "oracle" is missing.) If the protocol is TCP/IP, edit the TNSNAMES.ORA file to change the host name to a numeric IP address and try again.

ORA-12545:連接失敗,因為目標主機或對象不存在

原因:指定的地址無效,或者連接的程序不存在。

操作:確保地址參數輸入正確;最有可能不正確的參數是節點名。確保服務器的可執行文件存在(可能是“Oracle”丟失)。如果協議是TCP/IP,則編輯TNSNAMES.ORA文件,將主機名更改為數字IP地址,然后重試。

問題再次回到連接字符串上,指明問題原因是未指定連接字符串或連接字符串中的目標主機或對象不存在。

再次回到ODBC的配置上,發現了問題的根源,是系統安裝后會存在多個ODBC的DSN配置文件:/etc/odbc.ini(全局配置)和~/.odbc.ini(用戶配置),同名的DataSource造成了配置混亂。在修改ODBC數據源的配置時,直接在全局配置文件中修改了配置參數,并引用了原有的DSN名稱,造成了在全局配置文件(配置是正確的)和用戶配置文件(配置錯誤,未指定ServiceName參數)中的配置沖突,而優先級又是用戶配置高于全局配置,導致了ODBC的連接失敗。

改正配置參數后問題解決。

“Ubuntu16.04下怎么安裝Oracle數據庫的ODBC驅動”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

巴马| 子长县| 郑州市| 湖口县| 崇义县| 泽州县| 武穴市| 梅河口市| 德庆县| 敦化市| 沭阳县| 青川县| 东山县| 年辖:市辖区| 仪征市| 沁阳市| 永泰县| 九寨沟县| 武安市| 常山县| 萍乡市| 库伦旗| 和政县| 石泉县| 西贡区| 凉山| 喜德县| 四川省| 古蔺县| 彭山县| 苍溪县| 彭泽县| 达尔| 措勤县| 宜都市| 黄浦区| 香格里拉县| 获嘉县| 卓资县| 麻城市| 西林县|