オラクルの接続方法

POINT

<要約>
・外部からオラクルに接続する方法は、主に3つある。
  方法1. tnsnames.oraによる接続
  方法2. tnsnames.oraに定義する情報を直接渡して接続する
  方法3. 簡易接続ネーミング・メソッドによる接続

・「方法1」が一般的。方法を使用して、DB接続する時のコマンド
  # sqlplus user/password@接続識別子
・接続識別子は、tnsnames.oraに記載されている。

DBの接続方法について再確認。
接続元のクライアント編と接続先のサーバ編の2つあり。
参考にさせてもらったURL:WalkingAlone


クライアント編(接続元)

クライアントからオラクルに接続する方法は3種類ある。

方法1:tnsnames.oraによる接続

接続方法

 コマンド :sqlplus user/password@接続識別子
 コマンド例:sqlplus user/pass@TEST
 (tnsnames.oraの中に接続先のHOST/PORT/SIDが記載されていて、その接続識別子がTESTだった場合)

 ポイント
  ・tnsnames.oraを事前に設定しておく必要がある。
  ・プログラムに接続情報を記載することなくデータベースに接続できることがメリット。

tnsnames.oraの格納先  

jdbc以外のプログラム言語で書かれたクライアントプログラムはデフォルトで以下の フォルダにあるtnsnames.ora を読み込む。

  unix系
   $ORACLE_HOME/network/admin/tnsnames.ora
  Windows
   %ORACLE_HOME%/NETWORK/ADMIN/tnsnames.ora

tnsnames.ora のサンプル記入例

 以下は「WIN1」という接続先hostに対してポート1521のリスナへ「ORCL102」という サービス名のデータベースに対して接続する「TEST」という接続識別子の設定。
 この記述があることでプログラムが接続する際、「TEST」という接続識別子だけでこのデータベースに接続することが可能になる。

tnsnames.ora 記入例

TEST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = WIN1)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = ORCL102)
)
)

 ※java(JDBC)に関しては、一般的にtnsnames.oraを読み込む設定はとらず、APサーバのプロパティファイル等に簡易接続ネーミング形式の接続情報を記載しておき接続情報を取得する。

tnsnames.ora に記載するサービス名、接続識別子の調べ方

1.sqlplusでログイン
$ sqlplus / as sysdba

2.SERVICE_NAME(サービス名)を確認。
SQL> select name from v$database;

3.SID(接続識別子)を確認
SQL> select instance_name from v$instance;

方法2:tnsnames.oraに定義する情報を直接渡して接続する

接続方法

sqlplus user/pass@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=WIN1)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=ORCL102)))

 ポイント
 ・tnsnames.oraを設定をせずに接続することができる。
 ・接続先情報の記載が異常に長い。あまり実用的ではない。

方法3:簡易接続ネーミング・メソッドによる接続

接続方法

 コマンド :hostname:port番号/サービス名
 コマンド例:sqlplus user/pass@localhost:1521/ORCL102

 ポイント
 ・tnsnames.oraを設定をせずに接続することができる。

サーバ編(接続先)

 外部からの接続を受け入れるためにはサーバ側にてTNSlistenerと呼ばれるプログラムの設定が必要。リスナを起動することでポートが開き、外部からのTCPプロトコルを利用したoracle net接続が受け入れられるようになる。

 リスナ側で設定する主な項目は以下となります。
  ・リスナ名
  ・HOST名(IP)
  ・ポート番号
  ・SIDまたはサービス名(service_name)

TNSlistener の格納先

 リスナの設定ファイルは、テキストファイルであるためテキストエディタで直接編集することができる。 リスナーはデフォルトで以下の設定ファイルを読み取る。

unix系
$ORACLE_HOME/network/admin/listener.ora
Windows
%ORACLE_HOME%/NETWORK/ADMIN/listener.ora

TNSlistener の記入例

以下は「LISTENER」というリスナ名で、1521番ポートを使用して「E:\oracle\product\10.2.0\db_1」にインストールしたoracleから起動する「ORCL102」というデータベースをリスナに認識させる設定。 「SID_LIST_LISTENER」の部分はデータベースの情報を明示的に設定している。

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = ORCL102)
(ORACLE_HOME = E:\oracle\product\10.2.0\db_1)
)
)

LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = WIN1)(PORT = 1521))
)
)

以上

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です