元のアドレス: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を使用して、ネットワーク通信を介してデータベースに接続します。
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