ローカルネーミング tnsnames.ora の概要

tnsnames.ora は、ローカルネーミングパラメータで、
以下のようなネットサービスの接続が定義されているファイル。


【構文】サンプル

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = DBSERVER)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = ORCL)
    )
  )

1行目の ORCL はネットサービス名で接続文字列。
「 SQL> sqlplus hoge/hoge@ORCL 」 のようにアットマークの後に指定する。
SERVICE_NAME と分けて定義することもあるが、同じ値で統一していることが多い。

2行目の DESCRIPTION はネットサービス毎のパラメータをくくった枠と考えればよい。
使用する ADDRESS や CONNECT_DATA などを記載する。
上記以外にも LOAD_BALANCE、FAILOVER、ADDRESS_LIST などの様々なパラメータがある。

3行目の ADDRESS は TCP/IP などのプロトコルや DB サーバのホスト名、ポート番号。

4行目の CONNECT_DATA は接続モードやサービスを識別するパラメータをくくった枠と考えればよい。

5行目の SERVER は接続モードを記載する。DEDICATED なら専用サーバーモード、
SHARED なら、ディスパッチャを使用する共有サーバーモード。

6行目の SERVICE_NAME は接続識別子。

格納先ディレクトリ

tnsnames.ora は、Windows なら %ORACLE_HOME%\network\admin 。
または、環境変数 TNS_ADMIN やレジストリで指定したフォルダも可能。
Unix/Linux なら $ORACLE_HOME/network/admin 。

tnsping コマンドで定義を確認

tnsnames.ora に定義が有効であるかを確認する場合、tnsping コマンドを使用するとよい。

% tnsping ORCL

パラメータ・ファイルを使用しました:

エイリアスを解決するためにTNSNAMESアダプタを使用しました。
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)
(HOST = DBSERVER)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) 
(SERVICE_NAME = ORCL)))
OK (10ミリ秒)

失敗した場合は、”TNS-“から始まるエラー番号が返されるが、
原因は tnsnames.ora の定義不備、リスナー側の問題など様々。

【エラーの一例】
TNS-03505、TNS-12154、TNS-12170、TNS-12514、TNS-12535、TNS-12541


関連記事

人気ブログランキングへ

このページの先頭へ