tnsnames.ora
tnsnames.ora
ファイル
ファイルの場所 Unix : $ORACLE_HOME/network/admin/tnsnames.ora Windows : %ORACLE_HOME%\network\admin\tnsnames.ora
クライアントとなるマシンからOracleデータベースサーバへ接続する為のネットサービス名が記述されるファイル。
ネットサービス名から、接続先となるサーバのホスト名、ポート番号、データベース名などを取得する。(接続時のネットサービス名の解決や接続方法に関しては sqlnet.ora ファイルで設定されているパラメータも影響する。)
また、データベースへ接続する為には、Oracleデータベースサーバ側でも、listener.ora ファイルによりクライアントの要求通りにリスナーの設定が行われ、リスナーが起動している必要がある。
tnsnames.ora ファイルの例1: orcl1 = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = hostname)(PORT = 1521)) (CONNECT_DATA = (SERVICE_NAME = oracledb1) ) )
tnsnames.ora ファイルの例2: orcl2 = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.11.100)(PORT = 1521)) ) (CONNECT_DATA = (SID = oracledb2) ) )
詳細
tnsnames.oraでは様々なパラメータを指定することで接続の方法を変更することができる
専用サーバ接続の指定の例: orcl3 = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = hostname)(PORT = 1521)) (CONNECT_DATA = (SERVER=dedicated) (SERVICE_NAME = oracledb1) ) )
共有サーバを指定する場合は dedicated の部分をshared にする
(共有サーバ接続にはデータベース側の設定も必要)
複数アドレス・リストの例: orcl4= (DESCRIPTION= (ADDRESS_LIST= (LOAD_BALANCE=on) (FAILOVER=off) (ADDRESS=(PROTOCOL = TCP)(HOST = hostname)(PORT = 1521)) (ADDRESS=(PROTOCOL = TCP)(HOST = hostname)(PORT = 1522)) ) (ADDRESS_LIST= (LOAD_BALANCE=off) (FAILOVER=on) (ADDRESS=(PROTOCOL = TCP)(HOST = hostname)(PORT = 1523)) (ADDRESS=(PROTOCOL = TCP)(HOST = hostname)(PORT = 1524)) ) (CONNECT_DATA= (SERVICE_NAME=oracledb1) ) )
上記では2つのアドレスリストがあり、最初のアドレス・リストには、クライアント・ロード・バランスが有り、接続時フェイルオーバー無しとなっている。2番目のプロトコル・アドレス・リストは、クライアント・ロード・バランスが無し、接続時フェイルオーバーが有りとなっている。この場合、クライアントは、最初に第1または第2のプロトコル・アドレスを無作為に試行し、次に、第3および第4のプロトコル・アドレスを順に試行する。
関連用語
ORACLE_HOME
listener.ora
sqlnet.ora
tnsping
専用サーバ
共有サーバ
ネットサービス名
ネーミングメソッド
リスナー