LinuxはunixODBCを使用してOracleデータベースに接続します-私の意見

元のアドレス:https//blog.csdn.net/guotianqing/article/details/78886622

関連記事

Linux-下のOracleデータベース構成に接続する1. unixODBCのhttps://blog.csdn.net/lichangzai/article/details/40304077

2、接続構成の方法を使用するUNIXODBCORACLEデータベース---- https://www.cnblogs.com/young525/p/5873744.html

3.LinuxでUnixODBCを構成してOracleデータベースに接続します-https://www.eygle.com/archives/2005/01/linuxeieaeoeaun.html

4.unixODBCを使用してLinuxの下のoracle11gR2データベースにアクセスしました---- http://blog.sina.com.cn/s/blog_48c49d5d01017z1b.html

5.ルートでOracleプログラムを実行するとlibclntsh.so.11.1エラーソリューションが見つかりません---- https://blog.csdn.net/iw1210/article/details/8850335

6.発生した問題-perlスクリプトの実行時にDBIのODBCエラーレポートエラー:[unixODBC] [Driver Manager]データソース名が見つからず、デフォルトがありません---- https://blog.csdn.net/ zzq900503 / article /詳細/ 17352639

7、[IM002] [unixODBC] [Driver Manager]データソース名が見つかりません。isql経由で接続しようとすると、デフォルトのドライバー指定メッセージがありません---- https://stackoverflow.com/questions/34369436/im002unixodbcdriver-managerdata- source-name-not-found-and-no-default-driv

.soライブラリファイルがLinux-の下に見つけることができないという問題が解決8. https://blog.csdn.net/csdlwzy/article/details/84566401を

9、ZABBIX ODBC解決策を見つけることができませんOracleエラーlibsqora.so.XX.1に接続----ます。https: //blog.csdn.net/su377486/article/details/109064604

10.unixODBC接続が失敗しました---- https://bbs.csdn.net/topics/390566189

11、ORA-12541:TNS:リスナーなし解决方法---- https://blog.csdn.net/qq_44161999/article/details/105067346?utm_medium = distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1 。 control&depth_1-utm_source = distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1.control

I.概要

ODBCの概要

ODBC(Open Database Connectivity)は、DBMS(データベース管理システム)にアクセスするための標準API(アプリケーションプログラミングインターフェイス)メソッドを提供します。これらのAPIは、SQLを使用してほとんどのタスクを実行します。ODBC自体もSQL言語のサポートを提供し、ユーザーはSQLステートメントをODBCに直接送信できます。ODBCの設計者は、ODBCの独立性と開放性を最大限に高めるよう努めています。つまり、特定のプログラミング言語とは関係がなく、特定のデータベースシステムとは関係がなく、特定のオペレーティングシステムとは関係がありません。マイクロソフトは、1993年にDLLセットの形式で世界初のODBC製品をリリースし、現在、マイクロソフトオープンサービスアーキテクチャ(WOSA、Windowsオープンサービスアーキテクチャ)のデータベースの不可欠な部分になっています。MicrosoftのODBC製品は、実際にはODBCドライバーマネージャーであり、特定のODBCドライバーインターフェイスにODBCアプリケーションを提供します。

ODBCインターフェースは次のように定義されています。

  • アプリケーションがデータソースに接続し、SQLコマンドを実行し、結果を取得できるODBC関数呼び出しライブラリ
  • SQL-99仕様に基づくSQL文法
  • 標準エラーコードのセット
  • データソースに接続してログインするための標準的な方法
  • データ型の標準的な説明

ODBCモデルの構成

ODBCのモデル構成を次の図に示します。ODBCアプリケーションは、ODBC APIを介してドライバーマネージャーを呼び出します。ドライバーマネージャーは、MicrosoftドライバーマネージャーまたはunixODBCドライバーマネージャーのいずれかです。ドライバーマネージャーはまた、ODBC APIを介してODBCドライバーを呼び出し、ODBCドライバーはデータベースAPIを使用して、ネットワーク通信を介してデータベースに接続します。

ODBCモジュールの構成

OracleODBCドライバー

Oracle ODBC Driverは、Oracle Call Interface(Oracle Call Interface)クライアントおよびサーバーソフトウェアを使用して、要求を送信し、データソースから応答を受信します。Oracleネットワークサービス通信プロトコルは、OCIクライアントとOracleサーバー間の通信に使用されます。Oralce ODBCドライバーは、ODBC SQL構文とデータソースにアクセスできる構文の間の変換を担当し、通信は正常に実行されます。OracleODBCのドライバアーキテクチャを次の図に示します。

ここに写真の説明を書いてください

2つ目は、unixODBCをダウンロードしてインストールすることです。

公式アドレスからダウンロード http://www.unixodbc.org/download.html
ダウンロードファイル:unixODBC-2.3.4.tar.gz
インストール:

./configure --prefix=/usr/local/unixODBC --sysconfdir=/etc 
#默认安装路径为  /usr/local,通过 --prefix改变
#默认odbcinst安装在 {prefix}/etc,通过--sysconfdir改变到指定路径
make 
make install
  • 1
  • 2
  • 3
  • 4
  • 5

./configureのオプションと説明は次のとおりです。

オプション 説明
–プレフィックス これは、unixODBCをインストールする場所を定義します。これを指定しない場合、デフォルトで/ usr / localになります。unixODBCをすべて単一のディレクトリに配置したくない場合は、–bindir、–sbindirなどの他の設定オプションを使用してより細かく制御できます。
–sysconfdir これは、unixODBC構成ファイルを保存する場所を定義します。これはデフォルトで/ etcになります。影響を受ける構成ファイルは、odbcinst.ini(ODBCドライバーが定義されている場所)、システムodbc.ini(システムデータソースが定義されている場所)、およびODBCDataSources(システムファイルDSNが格納されている場所)です。
–enable-gui QTが見つかった場合、デフォルトは「はい」です。GUI ODBC Administratorを構築する場合、odbctestとDataManagerはこれを「yes」に設定します(例:–enable-gui = yes)。GUIコンポーネントを構築するには、QTライブラリとヘッダーファイルが必要になります(後述)。おそらく–with-xも設定する必要があります。注unixODBC2.3.0では、–enable-driversのデフォルトが「no」に変更され、GUIコンポーネントが新しいプロジェクトに移動されました。
–enable-threads マシンでスレッドサポートが見つかった場合、デフォルトは「はい」です。最近のすべてのLinuxはglibcでpthreadをサポートするため、これをデフォルトのままにしておくのがおそらく最善です。
–enable-readline libreadlineとそのヘッダーがマシン上にある場合、デフォルトは「yes」です。これは主にunixODBCisqlプログラムにのみ影響します。readlineサポートが見つかった場合は、isqlのSQLプロンプトで入力されたテキストを編集できます。
–enable-drivers デフォルトは「はい」です。有効にすると、unixODBCに含まれるすべてのODBCドライバーがビルドされます。これには、MySQL、Postgres、MiniSQL、およびテキストファイルドライバーが含まれます。
–enable-iconv libiconvとそのヘッダーファイルがマシン上にある場合、これはデフォルトで「yes」になります。iconvを使用してビルドし、アクセスする場合、unixODBCはUnicode変換を実行できます。

3つ目は、OracleODBCドライバーをダウンロードしてインストールすることです。

ファイル
ダウンロードするには、公式のダウンロードアドレスは http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.htmlです。

Instantclient-basic-linux.x64-11.2.0.3.0.zip
Instantclient-odbc-linux.x64-11.2.0.3.0.zip

インストール:

unzip instantclient-basic-linux.x64-11.2.0.3.0.zip
unzip instantclient-odbc-linux.x64-11.2.0.3.0.zip
#注意,上述两个文件解压到同一目录下。
chmod 775 odbc_update_ini.sh
./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
#修改odbc目录的权限:
chown -R 775 /opt/odbc
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

第四に、環境変数を構成します

vi / etc / profile

参加する

export ORACLE_HOME=/opt/oracle 
export LD_LIBRARY_PATH=/opt/oracle/lib
  • 1
  • 2

設定をすぐに有効にする

source /etc/profile

5、リスナーとネットワーク環境を構成します

Oracleデータベースはローカルにインストールされないため、Oracleデータベースがインストールされているディレクトリから3つのファイルを取得する必要があります。

[root@localhost admin]# pwd 
/opt/oracle/network/admin 
[root@localhost admin]# ls 
 listener.ora  sqlnet.ora  tnsnames.ora #就这三个文件,放到这个目录下 
  • 1
  • 2
  • 3
  • 4

6、構成ファイルを編集します

tnsnames.oraファイル

BOSSDATA = 
  (DESCRIPTION = 
    (ADDRESS = (PROTOCOL = TCP)(HOST =192.168.1.107)(PORT = 1521))  #192.168.1.107  IP地址   ,端口号:1521 
    (CONNECT_DATA = 
      (SERVER = DEDICATED) 
      (SERVICE_NAME = bossdata)                                   #bossdata  全局数据名 
    ) 
  ) 

EXTPROC_CONNECTION_DATA = 
  (DESCRIPTION = 
    (ADDRESS_LIST = 
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1)) 
    ) 
    (CONNECT_DATA = 
      (SID = PLSExtProc) 
      (PRESENTATION = RO) 
    ) 
  ) 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

listener.oraファイル

SID_LIST_LISTENER = 
  (SID_LIST = 
    (SID_DESC = 
      (SID_NAME = PLSExtProc) 
      (ORACLE_HOME = \opt\oracle)#注意,这个是刚才配置的$ORACLE_HOME 
      (PROGRAM = extproc) 
    ) 
  ) 

LISTENER = 
  (DESCRIPTION_LIST = 
    (DESCRIPTION = 
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1)) 
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.107)(PORT = 1521))      #这个上面有说明 
    ) 
  ) 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

7、ドライブ構成を確認します

/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         = 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

8.テスト

試験方法:

isql <データソース名> <ユーザー名> <パスワード> -v

[root@bakdbserver ~]# isql OracleODBC-11g bi bi -v
+---------------------------------------+
| Connected!                            |
|                                       |
| sql-statement                         |
| help [tablename]                      |
| quit                                  |
|                                       |
+---------------------------------------+
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

テストは、データベースへの接続が成功したことを示しています。


参考資料:
http//www.unixodbc.org/download.html
http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html
https://www.easysoft.com/developer/interfaces /odbc/linux.html#introductionLinuxでunixODBCを
使用してOracleデータベースに接続する構成 http://blog.csdn.net/lichangzai/article/details/40304077linux
はOracleクライアント(instantclient)を個別にインストールします http:// blog.csdn .net / caomiao2006 / article / details / 11901123

 

// ================================================ =========

私のメモ::

1> odbcinst -j -----------このコマンドを使用して、odbc.ini + odbcinst.iniで使用されるファイルパスを確認してください。

2> libclntsh.so.11.1を見つけます

3> ldd /usr/local/lib/libsqora.so.11.1

4> isql -vORCLユーザー名パスワード

5>猫/ etc / profile

 

 

 

 

 

 

おすすめ

転載: blog.csdn.net/xqhrs232/article/details/113244873