6 tnsnames.oraファイル内のローカル・ネーミング・パラメータ
この章では、tnsnames.ora
ファイルの構成パラメータの完全なリストを提供します。この章のトピックは、次のとおりです:
6.1 ローカル・ネーミング・パラメータの概要
このtnsnames.ora
ファイルは、ローカル・ネーミング・メソッドの接続記述子にマップされるネットワーク・サービス名、またはリスナーのプロトコル・アドレスにマップされるネット・サービス名が含まれた構成ファイルです。
ネット・サービス名は、接続記述子に含まれているデータベース・ネットワーク・アドレスにマップされる別名です。接続記述子には、プロトコル・アドレスによるリスナーの位置、および接続先データベースのサービス名が含まれています。(他のデータベース・サーバーのクライアントである)クライアントとデータベース・サーバーは、アプリケーションとの接続時にネット・サービス名を使用します。
デフォルトで、tnsnames.ora
ファイルはORACLE_HOME/network/admin
ディレクトリに配置されます。Oracle Netは他のディレクトリに構成ファイルがないか確認します。たとえば、次の順序でtnsnames.ora
ファイルを確認します。
-
環境変数
TNS_ADMIN
で指定されたディレクトリ。指定されたディレクトリにファイルがない場合、ファイルは存在しないとみなされます。 -
TNS_ADMIN
環境変数が設定されていない場合、Oracle NetはORACLE_HOME/network/admin
ディレクトリを確認します。
ノート:
Microsoft Windowsでは、プロセスの環境で設定されている場合、TNS_ADMIN
環境変数が使用されます。TNS_ADMIN
環境変数が環境内で定義されていない場合、またはプロセスが環境を持たないサービスである場合、Microsoft WindowsではレジストリでTNS_ADMIN
パラメータがスキャンされます。
関連項目:
-
グローバル・サービス管理の詳細は、Oracle Database Global Data Services概要および管理ガイドを参照してください。
-
オペレーティング・システム固有のOracleドキュメントを参照してください。
6.2 tnsnames.oraの一般的な構文
tnsnames.ora
ファイルの基本的な構文は、例6-1のとおりです。
例6-1 tnsnames.oraファイルの基本的な書式
net_service_name= (DESCRIPTION=(ADDRESS=(
protocol_address_information
))
(CONNECT_DATA= (SERVICE_NAME=service_name
)))
この例では、DESCRIPTION
には接続記述子、ADDRESS
にはプロトコル・アドレス、CONNECT_DATA
にはデータベース・サービス識別情報が含まれています。
6.3 tnsnames.ora内の複数記述子
tnsnames.ora
ファイルには、1つ以上の接続記述子を持つネット・サービス名を含めることができます。各接続記述子には、1つ以上のプロトコル・アドレスを含めることができます。例6-2には、複数のアドレスを持つ2つの接続記述子が示されています。DESCRIPTION_LIST
は、接続記述子のリストを定義します。
例6-2 tnsnames.ora内に複数の接続記述子を持つネット・サービス名
net_service_name= (DESCRIPTION_LIST= (DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=sales1-svr)(PORT=1521)) (ADDRESS=(PROTOCOL=tcp)(HOST=sales2-svr)(PORT=1521)) (CONNECT_DATA= (SERVICE_NAME=sales.us.example.com))) (DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=hr1-svr)(PORT=1521)) (ADDRESS=(PROTOCOL=tcp)(HOST=hr2-svr)(PORT=1521)) (CONNECT_DATA= (SERVICE_NAME=hr.us.example.com))))
ノート:
Oracle Connection Managerを使用している場合、Oracle Net Managerでは、1つのネット・サービス名に対する複数の接続記述子の作成はサポートしていません。
6.4 tnsnames.ora内の複数アドレス・リスト
tnsnames.ora
ファイルは、それぞれ独自の特性を備えた複数のアドレス・リストを持つ接続記述子もサポートします。例6-3では、2つのアドレス・リストが示されています。最初のアドレス・リストでは、クライアント・ロード・バランシングと接続時フェイルオーバーなしが指定され、ADDRESS_LIST
内のプロトコル・アドレスにのみ作用します。2番目のプロトコル・アドレス・リストでは、クライアント・ロード・バランシングなしと接続時フェイルオーバーが指定され、ADDRESS_LIST
内のプロトコル・アドレスにのみ作用します。クライアントは、最初に第1または第2のプロトコル・アドレスを無作為に試行し、次に、第3および第4のプロトコル・アドレスを順に試行します。
例6-3 tnsnames.ora内の複数アドレス・リスト
net_service_name= (DESCRIPTION= (ADDRESS_LIST= (LOAD_BALANCE=on) (FAILOVER=off) (ADDRESS=(protocol_address_information
)) (ADDRESS=(protocol_address_information
))) (ADDRESS_LIST= (LOAD_BALANCE=off) (FAILOVER=on) (ADDRESS=(protocol_address_information
)) (ADDRESS=(protocol_address_information
))) (CONNECT_DATA= (SERVICE_NAME=service_name
)))
ノート:
-
Oracle Net Managerでは、1つの接続記述子に対する1つのプロトコル・アドレス・リストの作成のみをサポートします。
-
Oracle Net Servicesでは、
tnsnames.ora
のIFILEパラメータを、3段階までのネスト・レベルでサポートします。パラメータは、手動でファイルに追加されます。この構文の例を次に示します。IFILE=/tmp/listener_em.ora IFILE=/tmp/listener_cust1.ora IFILE=/tmp/listener_cust2.ora
詳細は、『Oracle Databaseリファレンス』を参照してください。
6.5 Oracle Connection Managerによる接続時フェイルオーバーとクライアント・ロード・バランシング
tnsnames.ora
ファイル内の接続記述子にOracle Connection Managerのプロトコル・アドレスが少なくとも2つ含まれている場合、接続時フェイルオーバーとロード・バランシングのパラメータをファイル内に含めることができます。
例6-4では、複数のOracle Connection Managerプロトコル・アドレスのフェイルオーバーが示されています。
例6-4 tnsnames.ora内の複数Oracle Connection Managerアドレス
sample1= (DESCRIPTION= (SOURCE_ROUTE=yes) (ADDRESS_LIST= (ADDRESS=(PROTOCOL=tcp)(HOST=host1)(PORT=1630)) # 1 (ADDRESS_LIST= (FAILOVER=on) (LOAD_BALANCE=off) # 2 (ADDRESS=(PROTOCOL=tcp)(HOST=host2a)(PORT=1630)) (ADDRESS=(PROTOCOL=tcp)(HOST=host2b)(PORT=1630))) (ADDRESS=(PROTOCOL=tcp)(HOST=host3)(PORT=1521))) # 3 (CONNECT_DATA=(SERVICE_NAME=sales.us.example.com)))
例6-4の構文では、次の処理が行われます。
-
次の記述によって、クライアントは、最初のOracle Connection Managerのプロトコル・アドレスに接続するように指示されます。
(ADDRESS=(PROTOCOL=tcp)(HOST=host1)(PORT=1630))
-
次に、最初のOracle Connection Managerは、別のOracle Connection Managerの第1プロトコル・アドレスに接続するように指示されます。第1プロトコル・アドレスへの接続に失敗した場合は、第2プロトコル・アドレスへの接続が試行されます。この順序は、次の構成によって指定されます。
(ADDRESS_LIST= (FAILOVER=on) (LOAD_BALANCE=off) (ADDRESS=(PROTOCOL=tcp)(HOST=host2a)(PORT=1630)) (ADDRESS=(PROTOCOL=tcp)(HOST=host2b)(PORT=1630)))
-
Oracle Connection Managerは、次のプロトコル・アドレスを使用してデータベース・サービスに接続します。
(ADDRESS=(PROTOCOL=tcp)(HOST=host3)(PORT=1521))
例6-5では、2つのOracle Connection Managerと2つのプロトコル・アドレスのクライアント・ロード・バランシングが示されています。
例6-5 tnsnames.ora内のクライアント・ロード・バランシング
sample2= (DESCRIPTION= (LOAD_BALANCE=on) # 1 (FAILOVER=on) (ADDRESS_LIST= (SOURCE_ROUTE=yes) (ADDRESS=(PROTOCOL=tcp)(HOST=host1)(PORT=1630)) # 2 (ADDRESS=(PROTOCOL=tcp)(HOST=host2)(PORT=1521))) (ADDRESS_LIST= (SOURCE_ROUTE=yes) (ADDRESS=(PROTOCOL=tcp)(HOST=host3)(port=1630)) (ADDRESS=(PROTOCOL=tcp)(HOST=host4)(port=1521))) (CONNECT_DATA=(SERVICE_NAME=sales.us.example.com))) # 3
例6-5の構文では、次の処理が行われます。
-
クライアントは、
ADDRESS_LIST
を無作為に選択し、選択したADDRESS_LIST
に障害がある場合、他方にフェイルオーバーするように指示されます。この指示は、LOAD_BALANCE
パラメータとFAILOVER
パラメータがon
に設定されていることで示されます。 -
ADDRESS_LIST
が選択されると、クライアントは、最初にそのADDRESS_LIST
に指定されているポート1630を使用するOracle Connection Managerプロトコル・アドレスを使用して、Oracle Connection Managerに接続します。 -
次に、Oracle Connection Managerは、
ADDRESS_LIST
に指定されているプロトコル・アドレスを使用してデータベース・サービスに接続します。
6.6 接続記述子の説明
各接続記述子は、DESCRIPTIONパラメータの中に組み込まれています。複数の接続記述子は、DESCRIPTION_LISTパラメータによって記述されます。これらのパラメータについては、この項で説明します。
6.6.1 DESCRIPTION
用途
接続記述子のコンテナを指定します。
使用上のノート
複数のDESCRIPTION
パラメータを使用する場合、それらをDESCRIPTION_LIST
パラメータの下に置きます。
例
net_service_name= (DESCRIPTION= (ADDRESS=...) (CONNECT_DATA=(SERVICE_NAME=sales.us.example.com)))
6.7 プロトコル・アドレス・セクション
tnsnames.ora
ファイルのプロトコル・アドレス・セクションは、リスナーのプロトコル・アドレスを指定します。リスナーのプロトコル・アドレスが1つのみの場合、ADDRESSパラメータを使用します。アドレスが複数ある場合は、ADDRESS_LISTパラメータを使用します。
6.7.1 ADDRESS
用途
単一のリスナー・プロトコル・アドレスを定義します。
使用上のノート
このパラメータは、ADDRESS_LIST
パラメータまたはDESCRIPTION
パラメータの下に配置します。
例
net_service_name=
(DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=sales-svr)(PORT=1521))
(CONNECT_DATA=(SERVICE_NAME=sales.us.example.com))
関連項目:
各プロトコルに使用する正しいパラメータの説明は、「プロトコル・アドレス構成」を参照してください
6.7.1.1 HTTPS_PROXY
用途
トンネリングSSLクライアント接続のHTTPプロキシ・ホスト名を指定します。
使用上のノート
クライアントはHTTP CONNECTメソッドを使用して、フォワードHTTPプロキシ上にセキュアな接続をトンネリングできます。これにより、クライアント側のファイアウォールにアウトバウンド・ポートをオープンする必要がなくなるため、パブリック・クラウド・データベースにアクセスしやすくなります。このパラメータはPROTOCOL=TCPS
が指定されている接続記述子に対してのみ適用可能です。これは、インターネットのホストに接続する必要があるイントラネット・ユーザーのWebブラウザ設定に似ています。クライアントの問合せによっては、フォワードWebプロキシ読取りタイムアウトをより高い値に増やしてください。そうしないと、フォワードWebプロキシがクライアントからのリクエストがないものと見なして接続をクローズします。
正常に接続できるかどうかは、特定のプロキシ構成によって決まります。データ転送のパフォーマンスは、プロキシの能力によって異なります。パフォーマンスが重要な本番環境ではこの機能を使用しないことをお薦めします。
組織のネットワーク構成およびセキュリティ・ポリシーによっては、HTTPプロキシのtnsnames.ora
を構成するのみでは不十分な場合があります。たとえば、一部のネットワークではHTTPプロキシのユーザー名とパスワードが必要となります。
18cより前のバージョンのOracle Clientでは、HTTPプロキシを介した接続はサポートされません。
HTTPプロキシを介さずに、関連するポートを使用してoraclecloud.com
ドメイン内のホストへのアウトバウンド接続を開くには、ネットワーク管理者に連絡してください。たとえば、ポート1522です。
デフォルト
なし
値
インターネットのホストへのアウトバウンド接続を行えるHTTPプロキシ・ホスト名。
例
HTTPS_PROXY=www-proxy.mycompany.com
6.7.2 ADDRESS_LIST
用途
プロトコル・アドレスのリストを定義します。
使用上のノート
リスナーのプロトコル・アドレスが1つのみの場合、ADDRESS_LIST
は不要です。
このパラメータは、DESCRIPTION
パラメータまたはDESCRIPTION_LIST
パラメータの下に配置します。
例
net_service_name=
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=tcp)(HOST=sales1-svr)(PORT=1521))
(ADDRESS=(PROTOCOL=tcp)(HOST=sales2-svr)(PORT=1521)))
(CONNECT_DATA=(SERVICE_NAME=sales.us.example.com)))
6.8 アドレス・リストのオプション・パラメータ
アドレスが複数の場合は、次のパラメータが使用可能です。
6.8.1 ENABLE
用途
コール元が終了したリモート・サーバーを検出する場合、通常、通知に2時間以上かかります。
使用上のノート
接続文字列内のDESCRIPTION
パラメータの下に(ENABLE=broken)
を埋め込むことにより、サポートされているTCP転送のキープアライブ機能をネット・サービス・クライアントに対して有効にできます。クライアント側では、tcp_keepalive
のデフォルト値はoff
です。オペレーティング・システムのTCP構成はプラットフォームによって異なりますが、実際のキープアライブ時間の詳細情報を定義します。
値
broken
例
net_service_name=
(DESCRIPTION=
(ENABLE=broken)
(ADDRESS=(PROTOCOL=tcp)(HOST=sales1-svr)(PORT=1521))
(ADDRESS=(PROTOCOL=tcp)(HOST=sales2-svr)(PORT=1521)))
(CONNECT_DATA=(SERVICE_NAME=sales.us.example.com))
前述の例には複数のアドレスが含まれていますが、ADDRESS_LIST
パラメータは使用されていません。これは、ADDRESS_LIST
パラメータは必須ではないためです。
6.8.2 FAILOVER
用途
複数のプロトコル・アドレスに対して接続時フェイルオーバーを使用可能または使用禁止にします。
使用上のノート
このパラメータをon
、yes
またはtrue
に設定すると、Oracle Netは、接続時に最初のプロトコル・アドレスに障害があった場合に別のアドレスにフェイルオーバーします。このパラメータをoff
、no
またはfalse
に設定すると、Oracle Netは、1つのプロトコル・アドレスを使用します。
このパラメータは、DESCRIPTION_LIST
パラメータ、DESCRIPTION
パラメータまたはADDRESS_LIST
パラメータの下に配置します。
ノート:
listener.ora
のSID_LIST_
listener_name
セクションには、GLOBAL_DBNAME
パラメータを設定しないでください。静的に構成されたグローバル・データベース名では、接続時フェイルオーバーは無効になります。
デフォルト
on
: DESCRIPTION_LIST
、DESCRIPTION
およびADDRESS_LIST
パラメータの場合
値
-
yes
|on
|true
-
no
|off
|false
例
net_service_name=
(DESCRIPTION=
(FAILOVER=on)
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=tcp)(HOST=sales1-svr)(PORT=1521))
(ADDRESS=(PROTOCOL=tcp)(HOST=sales2-svr)(PORT=1521)))
(CONNECT_DATA=(SERVICE_NAME=sales.us.example.com)))
6.8.3 LOAD_BALANCE
用途
複数のプロトコル・アドレスに対してクライアント・ロード・バランシングを使用可能または使用禁止にします。
使用上のノート
このパラメータをon
、yes
またはtrue
に設定すると、Oracle Netは、無作為の順序でアドレスのリストを進み、各種リスナーまたはOracle Connection Managerのプロトコル・アドレスにかかる負荷を均衡化します。パラメータをoff
、no
またはfalse
に設定すると、Oracle Netでは、接続に成功するまでプロトコル・アドレスを順番に試します。
このパラメータは、DESCRIPTION_LIST
パラメータ、DESCRIPTION
パラメータまたはADDRESS_LIST
パラメータの下に配置します。
デフォルト
on
: DESCRIPTION_LIST
の場合
値
-
yes
|on
|true
-
no
|off
|false
例
net_service_name=
(DESCRIPTION=
(LOAD_BALANCE=on)
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=tcp)(HOST=sales1-svr)(PORT=1521))
(ADDRESS=(PROTOCOL=tcp)(HOST=sales2-svr)(PORT=1521)))
(CONNECT_DATA=(SERVICE_NAME=sales.us.example.com))
6.8.4 RECV_BUF_SIZE
用途
セッションの受信操作に使用するバッファ領域をバイト数で指定します。
使用上のノート
このパラメータは、TCP/IP、SSL付きTCP/IP、SDPの各プロトコルでサポートされます。
このパラメータは、DESCRIPTION
パラメータの下またはプロトコル・アドレスの最後に配置します。
クライアントの接続記述子にこのパラメータを設定すると、クライアント側のsqlnet.ora
ファイルのRECV_BUF_SIZEパラメータが上書きされます。
ノート:
オペレーティング・システムによっては、他のプロトコルもこのパラメータをサポートしている場合があります。他のプロトコルの詳細は、オペレーティング・システムのマニュアルを参照してください。
デフォルト
このパラメータのデフォルト値は、オペレーティング・システムによって異なります。Linux 2.6オペレーティング・システムのデフォルト値は87380バイトです。
例
net_service_name
= (DESCRIPTION= (ADDRESS_LIST= (ADDRESS=(PROTOCOL=tcp)(HOST=sales1-server)(PORT=1521) (RECV_BUF_SIZE=11784)) (ADDRESS=(PROTOCOL=tcp)(HOST=sales2-server)(PORT=1521) (RECV_BUF_SIZE=11784)) (CONNECT_DATA= (SERVICE_NAME=sales.us.example.com)))net_service_name
= (DESCRIPTION= (RECV_BUF_SIZE=11784) (ADDRESS_LIST= (ADDRESS=(PROTOCOL=tcp)(HOST=hr1-server)(PORT=1521)) (ADDRESS=(PROTOCOL=tcp)(HOST=hr2-server)(PORT=1521))) (CONNECT_DATA= (SERVICE_NAME=hr.us.example.com)))
関連項目:
このパラメータの構成方法の詳細は、『Oracle Database Net Services管理者ガイド』を参照してください。
6.8.5 SDU
用途
ネットワークを介して送信されるデータ・パッケージの転送レートを、指定されたセション・データ・ユニット(SDU)・サイズで最適化するようにOracle Netに指示します。
使用上のノート
このパラメータは、DESCRIPTION
パラメータの下に配置します。
クライアントの接続記述子にこのパラメータを設定すると、クライアント側のsqlnet.ora
ファイルのDEFAULT_SDU_SIZE
パラメータが上書きされます。
デフォルト
8192バイト(8KB)
値
512から2097152バイト。
例
net_service_name
=
(DESCRIPTION=
(SDU=8192)
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=tcp)(HOST=sales1-server)(PORT=1521))
(ADDRESS=(PROTOCOL=tcp)(HOST=sales2-server)(PORT=1521)))
(CONNECT_DATA=
(SERVICE_NAME=sales.us.example.com))
6.8.6 SEND_BUF_SIZE
用途
セッションの送信操作に使用するバッファ領域をバイト数で指定します。
使用上のノート
このパラメータは、TCP/IP、SSL付きTCP/IP、SDPの各プロトコルでサポートされます。
このパラメータは、DESCRIPTION
パラメータの下またはプロトコル・アドレスの最後に配置します。
クライアントの接続記述子にこのパラメータを設定すると、クライアント側のsqlnet.ora
ファイルのSEND_BUF_SIZE パラメータが上書きされます。
ノート:
オペレーティング・システムによっては、他のプロトコルもこのパラメータをサポートしている場合があります。他のプロトコルの詳細は、オペレーティング・システムのマニュアルを参照してください。
デフォルト
このパラメータのデフォルト値は、オペレーティング・システムによって異なります。Linux 2.6オペレーティング・システムのデフォルト値は16KBです。
例
net_service_name
= (DESCRIPTION= (ADDRESS_LIST= (ADDRESS=(PROTOCOL=tcp)(HOST=sales1-server)(PORT=1521) (SEND_BUF_SIZE=11784)) (ADDRESS=(PROTOCOL=tcp)(HOST=sales2-server)(PORT=1521) (SEND_BUF_SIZE=11784))) (CONNECT_DATA= (SERVICE_NAME=sales.us.example.com)))net_service_name
= (DESCRIPTION= (SEND_BUF_SIZE=11784) (ADDRESS_LIST= (ADDRESS=(PROTOCOL=tcp)(HOST=hr1-server)(PORT=1521) (ADDRESS=(PROTOCOL=tcp)(HOST=hr2-server)(PORT=1521))) (CONNECT_DATA= (SERVICE_NAME=hr.us.example.com)))
関連項目:
このパラメータの構成方法の詳細は、『Oracle Database Net Services管理者ガイド』を参照してください。
6.8.7 SOURCE_ROUTE
用途
複数のプロトコル・アドレスによるルーティングを使用可能にします。
使用上のノート
このパラメータをon
またはyes
に設定すると、Oracle Netは、接続先に到達するまで順番に各アドレスを使用します。
Oracle Connection Managerを使用するには、クライアントからOracle Connection Managerへの第1接続、およびOracle Connection Managerからリスナーへの第2接続が必要です。
このパラメータは、DESCRIPTION_LIST
パラメータ、DESCRIPTION
パラメータまたはADDRESS_LIST
パラメータの下に配置します。
デフォルト
off
値
-
yes
|on
-
no
|off
例
net_service_name=
(DESCRIPTION=
(SOURCE_ROUTE=on)
(ADDRESS=(PROTOCOL=tcp)(HOST=cman-pc)(PORT=1630))
(ADDRESS=(PROTOCOL=tcp)(HOST=sales1-svr)(PORT=1521))
(CONNECT_DATA=(SERVICE_NAME=sales.us.example.com))
関連項目:
構成情報の詳細は、『Oracle Database Net Services管理者ガイド』を参照してください。
6.8.8 TYPE_OF_SERVICE
用途
Oracle RDBデータベースに使用するサービスのタイプを指定します。
使用上のノート
このパラメータは、アプリケーションがOracle RDBとOracleデータベース・サービスの両方をサポートし、この両者間のロード・バランシングをアプリケーションで行うようにする場合にのみ使用してください。
このパラメータは、DESCRIPTION
パラメータの下に配置します。
例
net_service_name=
(DESCRIPTION_LIST=
(DESCRIPTION=
(ADDRESS=...)
(CONNECT_DATA=
(SERVICE_NAME=generic)
(RDB_DATABASE=[.mf]mf_personal.rdb)
(GLOBAL_NAME=alpha5))
(TYPE_OF_SERVICE=rdb_database))
(DESCRIPTION=
(ADDRESS=...)
(CONNECT_DATA=
(SERVICE_NAME=sales.us.example.com))
(TYPE_OF_SERVICE=oracle11_database)))
6.9 接続データ・セクション
tnsnames.ora
ファイルの接続データ・セクションでは、接続先サービスの名前を指定します。次のパラメータが使用可能です。
6.9.1 CONNECT_DATA
用途
SERVICE_NAME
など、接続先サービスを定義します。
使用上のノート
このパラメータは、DESCRIPTION
パラメータの下に配置します。
CONNECT_DATA
には、次のパラメータも指定できます。
例
net_service_name= (DESCRIPTION= (ADDRESS_LIST= (ADDRESS=(PROTOCOL=tcp)(HOST=sales1-svr)(PORT=1521)) (ADDRESS=(PROTOCOL=tcp)(HOST=sales2-svr)(PORT=1521))) (CONNECT_DATA= (SERVICE_NAME=sales.us.example.com)))
6.9.1.1 SHARDING_KEY
用途
データベース・リクエストを特定のシャードにルーティングします。
使用上のノート
このパラメータは、CONNECT_DATA
パラメータの下に配置します。
例
net_service_name
=
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=...)
(ADDRESS=...))
(CONNECT_DATA=
(SERVICE_NAME=sales.us.example.com)
((SHARDING_KEY=40598230))))
関連項目:
SHARDING_KEY
パラメータの使用方法の詳細は、『Oracle Database Net Services管理者ガイド』を参照してください
6.9.1.2 SUPER_SHARDING_KEY
用途
データベース・リクエストをシャードの集合にルーティングします。
使用上のノート
このパラメータは、CONNECT_DATA
パラメータの下に配置します。
例
net_service_name
=
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=...)
(ADDRESS=...))
(CONNECT_DATA=
(SERVICE_NAME=sales.us.example.com)
((SHARDING_KEY=40598230)(SUPER_SHARDING_KEY=gold)))
関連項目:
SUPER_SHARDING_KEY
パラメータの使用方法の詳細は、『Oracle Database Net Services管理者ガイド』を参照してください
6.9.2 FAILOVER_MODE
用途
実行時に最初のリスナーが失敗した場合に別のリスナーにフェイルオーバーするようOracle Netに指示します。
使用上のノート
構成によっては、実行していたセッションまたはSELECT
文が自動的にフェイルオーバーされます。
この種類のフェイルオーバーは、透過的アプリケーション・フェイルオーバー(TAF)と呼ばれます。接続時フェイルオーバーのFAILOVERパラメータと混同しないでください。
このパラメータは、CONNECT_DATA
パラメータの下に配置します。
追加のパラメータ
FAILOVER_MODE
は、次のパラメータをサポートします。
-
BACKUP
: フェイルオーバー・ノードをネット・サービス名により指定します。フェイルオーバー・ノードに対しては個別のネット・サービス名を作成する必要があります。 -
TYPE
: フェイルオーバー・タイプを指定します。Oracle Call Interface(OCI)アプリケーションでは、デフォルトで3種類のOracle Netフェイルオーバー機能を使用できます。-
SESSION
: セッションをフェイルオーバーします。たとえば、ユーザーの接続が消失した場合、バックアップ上にそのユーザーの新規セッションが自動的に作成されます。このタイプのフェイルオーバーは、リカバリ選択を試行しません。 -
SELECT
: オープン・カーソルを持つユーザーはフェッチに失敗してもフェッチを継続できます。ただしこのモードでは、通常の検索操作を行うクライアント側にオーバーヘッドが生じます。 -
NONE
: これがデフォルトで、フェイルオーバー機能は使用されません。フェイルオーバーが実行されないように、明示的に指定することもできます。
-
-
METHOD
: 1次ノードからバックアップ・ノードへのフェイルオーバーの実行速度を指定します。-
BASIC
: フェイルオーバー時に接続を確立します。このオプションでは、フェイルオーバー時間までバックアップ・データベース・サーバーでの作業はほとんど不要です。 -
PRECONNECT
: 接続を事前に確立します。フェイルオーバーは高速に行われますが、バックアップ・インスタンスはサポートされた各インスタンスからの接続すべてをサポートできる必要があります。
-
-
TRANSACTION
: リカバリ可能なエラーの後、データベースで現行のデータベース・トランザクションが完了するようにします。このパラメータはCOMMIT_OUTCOME=TRUE
パラメータとともに使用します。 -
RETRIES
: フェイルオーバー後の接続試行回数を指定します。DELAY
が指定されている場合、RETRIES
は5回の試行回数にデフォルト設定されます。 -
DELAY
: 接続試行の間隔を秒数で指定します。RETRIES
が指定されている場合、DELAY
は1秒にデフォルト設定されます。
ノート:
コールバック関数が登録されている場合、RETRIES
パラメータおよびDELAY
パラメータは無視されます。
関連項目:
構成情報の詳細は、『Oracle Database Net Services管理者ガイド』を参照してください。
6.9.3 GLOBAL_NAME
用途
Oracle RDBデータベースを識別します。
使用上のノート
このパラメータは、CONNECT_DATA
パラメータの下に配置します。
例
net_service_name
=
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=...)
(ADDRESS=...))
(CONNECT_DATA=
(SERVICE_NAME=generic)
(RDB_DATABASE=[.mf]mf_personal.rdb)
(GLOBAL_NAME=alpha5)))
6.9.4 HS
用途
Oracle以外のシステムには異機種間サービスを介して接続するようにOracle Netに指示します。
使用上のノート
このパラメータは、CONNECT_DATA
パラメータの下に配置します。
デフォルト
なし
値
ok
例
net_service_name
=
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=...)
(ADDRESS=...))
(CONNECT_DATA=
(SID=sales6)
)
(HS=ok))
関連項目:
構成情報の詳細は、『Oracle Database Net Services管理者ガイド』を参照してください。
6.9.5 INSTANCE_NAME
用途
アクセスするデータベース・インスタンスを識別します。
使用上のノート
値は、初期化パラメータ・ファイルのINSTANCE_NAME
パラメータに指定されている値に設定します。
このパラメータは、CONNECT_DATA
パラメータの下に配置します。
例
net_service_name
=
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=...)
(ADDRESS=...))
(CONNECT_DATA=
(SERVICE_NAME=sales.us.example.com)
(INSTANCE_NAME=sales1)))
関連項目:
INSTANCE_NAME
の使用方法の詳細は、『Oracle Database Net Services管理者ガイド』を参照してください。
6.9.6 RDB_DATABASE
用途
Oracle RDBデータベースのファイル名を指定します。
使用上のノート
このパラメータは、CONNECT_DATA
パラメータの下に配置します。
例
net_service_name
=
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=...)
(ADDRESS=...))
(CONNECT_DATA=
(SERVICE_NAME=sales.us.example.com)
(RDB_DATABASE= [.mf]mf_personal.rdb)))
6.9.7 SERVER
用途
クライアントを特定タイプのサービス・ハンドラに接続するようにリスナーに指示します。
使用上のノート
このパラメータは、CONNECT_DATA
パラメータの下に配置します。
値
-
dedicated
: クライアントのリクエストが専用サーバーによって処理されるかどうかを指定します。
ノート:
-
クライアントが共有サーバー・プロセスでデータベースに接続するには、共有サーバーはデータベース初期化ファイルに構成されている必要があります。
-
sqlnet.ora
ファイルのUSE_DEDICATED_SERVERパラメータは、このパラメータよりも優先されます。
例
net_service_name
=
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=...)
(ADDRESS=...))
(CONNECT_DATA=
(SERVICE_NAME=sales.us.example.com)
(SERVER=dedicated)))
6.9.8 SERVICE_NAME
用途
アクセスするOracle Databaseデータベース・サービスを識別します。
使用上のノート
値は、初期化パラメータ・ファイルのSERVICE_NAMES
パラメータに指定されている値に設定します。
このパラメータは、CONNECT_DATA
パラメータの下に配置します。
例
net_service_name
=
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=...)
(ADDRESS=...))
(CONNECT_DATA=
(SERVICE_NAME=sales.us.example.com)))
関連項目:
SERVICE_NAME
パラメータの使用方法の詳細は、『Oracle Database Net Services管理者ガイド』を参照してください。
6.10 セキュリティ・セクション
tnsnames.ora
ファイルのセキュリティ・セクションでは、Oracleセキュリティ機能で使用するセキュリティに関連する次のパラメータを指定します。
6.10.1 SECURITY
用途
接続のセキュリティ・プロパティを変更します。このパラメータは、DESCRIPTION
パラメータの下に配置します。
使用上のノート
SECURITY
で使用できるパラメータは、SSL_SERVER_CERT_DNおよびAUTHENTICATION_SERVICEです。
例
net_service_name
=
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=tcp)(HOST=sales1-svr)(PORT=1521))
(ADDRESS=(PROTOCOL=tcp)(HOST=sales2-svr)(PORT=1521)))
(CONNECT_DATA=
(SERVICE_NAME=sales.us.example.com))
(SECURITY=
(SSL_SERVER_CERT_DN="cn=sales,cn=OracleContext,dc=us,dc=acme,dc=com")))
6.10.2 SSL_SERVER_CERT_DN
用途
データベース・サーバーの識別名(DN)を指定します。
使用上のノート
クライアントは、この情報を使用して、各サーバーに予定しているDNリストを取得し、データベース・サーバーのDNがそのサービス名と一致していることを確認します。
このパラメータをsqlnet.ora
のSSL_SERVER_DN_MATCHパラメータとともに使用して、サーバーDNの一致を可能にします。
例
net_service_name
=
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=...)
(ADDRESS=...))
(CONNECT_DATA=
(SERVICE_NAME=finance.us.example.com))
(SECURITY=
(SSL_SERVER_CERT_DN="cn=finance,cn=OracleContext,dc=us,dc=acme,dc=com")))
6.11 タイムアウト・パラメータ
/? 25800-1 IPv6?/
tnsnames.ora
ファイルのタイムアウト・セクションでは、TNS接続文字列を介してタイムアウトと再試行の構成を指定できます。次のパラメータを接続文字列のDESCRIPTION
レベルで設定できます。
6.11.1 CONNECT_TIMEOUT
用途
クライアントがOracle DatabaseへのOracle Net接続を確立するときのタイムアウト時間をms
、sec
またはmin
で指定します。
使用上のノート
このパラメータは、DESCRIPTION
パラメータの下に配置します。
CONNECT_TIMEOUT
で指定されたタイムアウト間隔は、TCP接続のタイムアウト間隔のスーパーセットです。これには、リクエストされたサービスを提供するデータベース・インスタンスに接続される時間が含まれていますが、TCP接続の期間は含まれません。値とユニットの間のスペースあり、なしにかかわらず、様々なタイムアウトを受け入れます。単位が指定されない場合、デフォルトの単位はsec
です。
タイムアウト間隔は、ADDRESS_LIST
内の各ADDRESS
およびホスト名にマッピングされている各IPアドレスに適用されます。
CONNECT_TIMEOUT
パラメータは、sqlnet.ora
パラメータのSQLNET.OUTBOUND_CONNECT_TIMEOUTと同等で、このパラメータより優先されます。
例
net_service_name
=
(DESCRIPTION=
(CONNECT_TIMEOUT=10 ms)(RETRY_COUNT=3)
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=tcp)(HOST=sales1-svr)(PORT=1521))
(ADDRESS=(PROTOCOL=tcp)(HOST=sales2-svr)(PORT=1521)))
(CONNECT_DATA=
(SERVICE_NAME=sales.us.example.com)))
6.11.2 RETRY_COUNT
用途
接続試行を終了するまでに、ADDRESS
リストを反復する回数を指定します。
使用上のノート
このパラメータは、DESCRIPTION
パラメータの下に配置します。
DESCRIPTION_LIST
を指定している場合、指定した再試行回数に基づいて、各DESCRIPTION
が反復されます。
例
net_service_name
=
(DESCRIPTION_LIST=
(DESCRIPTION=
(CONNECT_TIMEOUT=10)(RETRY_COUNT=3)
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=tcp)(HOST=sales1a-svr)(PORT=1521))
(ADDRESS=(PROTOCOL=tcp)(HOST=sales1b-svr)(PORT=1521)))
(CONNECT_DATA=(SERVICE_NAME=sales1.example.com)))
(DESCRIPTION=
(CONNECT_TIMEOUT=60)(RETRY_COUNT=1)
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=tcp)(HOST=sales2a-svr)(PORT=1521))
(ADDRESS=(PROTOCOL=tcp)(HOST=sales2b-svr)(PORT=1521)))
(CONNECT_DATA=(SERVICE_NAME=sales2.us.example.com))))
6.11.3 RETRY_DELAY
用途
接続に対する後続の再試行間の遅延を秒単位で指定します。このパラメータは、RETRY_COUNT
パラメータと組み合せることで機能します。
使用上のノート
このパラメータは、DESCRIPTION
パラメータの下に配置します。
DESCRIPTION_LIST
を指定している場合、指定した再試行回数と説明の特定の遅延に基づいて、各DESCRIPTION
が反復されます。
例
net_service_name
=
(DESCRIPTION_LIST=
(DESCRIPTION=
(CONNECT_TIMEOUT=10)(RETRY_COUNT=3)(RETRY_DELAY=2)
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=tcp)(HOST=sales1a-svr)(PORT=1521))
(ADDRESS=(PROTOCOL=tcp)(HOST=sales1b-svr)(PORT=1521)))
(CONNECT_DATA=(SERVICE_NAME=sales1.example.com)))
(DESCRIPTION=
(CONNECT_TIMEOUT=60)(RETRY_COUNT=2)(RETRY_DELAY=1)
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=tcp)(HOST=sales2a-svr)(PORT=1521))
(ADDRESS=(PROTOCOL=tcp)(HOST=sales2b-svr)(PORT=1521)))
(CONNECT_DATA=(SERVICE_NAME=sales2.us.example.com))))
6.11.4 TRANSPORT_CONNECT_TIMEOUT
用途
クライアントがOracle DatabaseへのOracle Net接続を確立するときのトランスポート接続タイムアウト時間をms
、sec
またはmin
で指定します。
使用上のノート
このパラメータは、DESCRIPTION
パラメータの下に配置されます。
TRANSPORT_CONNECT_TIMEOUT
パラメータは、クライアントがデータベース・サーバーへのTCP接続を確立する時間をms
、sec
またはmin
で指定します。値とユニットの間のスペースあり、なしにかかわらず、様々なタイムアウトを受け入れます。デフォルト値は60 seconds
です。単位が指定されない場合、デフォルトの単位はsec
です。
タイムアウト間隔は、ADDRESS_LIST
の記述内の各ADDRESS
およびホスト名にマッピングされている各IPアドレスに適用されます。TRANSPORT_CONNECT_TIMEOUT
パラメータは、sqlnet.ora
パラメータのTCP.CONNECT_TIMEOUTと同等で、このパラメータより優先されます。
例
net_service_name = (DESCRIPTION= (TRANSPORT_CONNECT_TIMEOUT=10 ms) (ADDRESS_LIST= (ADDRESS=(PROTOCOL=tcp)(HOST=sales1-svr)(PORT=1521)) (ADDRESS=(PROTOCOL=tcp)(HOST=sales2-svr)(PORT=1521))) (CONNECT_DATA= (SERVICE_NAME=sales.us.example.com)))
6.12 圧縮パラメータ
tnsnames.ora
ファイルの圧縮セクションでは、圧縮を有効にし、圧縮レベルを指定できます。次のパラメータを接続文字列のDESCRIPTION
レベルで設定できます。
6.12.1 COMPRESSION
用途
データ圧縮を有効または無効にします。
使用上のノート
このパラメータは、DESCRIPTION
パラメータの下に配置します。
クライアントの接続記述子にこのパラメータを設定すると、クライアント側のsqlnet.oraファイルのSQLNET.COMPRESSION
パラメータより優先されます。
デフォルト
off
値
-
on
: データ圧縮を有効にします。 -
off
: データ圧縮を無効にします。
例
net_service_name= (DESCRIPTION= (COMPRESSION=on) (ADDRESS_LIST= (ADDRESS= (PROTOCOL=tcp) (HOST=sales1-server) (PORT=1521)) (ADDRESS= (PROTOCOL=tcp) (HOST=sales2-server) (PORT=1521))) (CONNECT_DATA= (SERVICE_NAME=sales.us.example.com)))
6.12.2 COMPRESSION_LEVELS
用途
圧縮レベルを指定します。
使用上のノート
圧縮レベルは、両端でどのレベルを使用するかを確認し、1つのレベルを選択するためのネゴシエーション時に使用されます。このパラメータは、DESCRIPTION
パラメータの下に配置します。
このパラメータはCOMPRESSION
パラメータとともに使用します。クライアントの接続記述子にこのパラメータを設定すると、クライアント側のsqlnet.oraファイルのSQLNET.COMPRESSION_LEVELS
パラメータより優先されます。
デフォルト
low
値
-
low
: 低CPU使用率と低圧縮率を使用します。 -
high
: 高CPU使用率と高圧縮率を使用します。
例
net_service_name= (DESCRIPTION= (COMPRESSION=on) (COMPRESSION_LEVELS=(LEVEL=low)(LEVEL=high)) (ADDRESS_LIST= (ADDRESS=(PROTOCOL=tcp)(HOST=sales1-server)(PORT=1521)) (ADDRESS=(PROTOCOL=tcp)(HOST=sales2-server)(PORT=1521))) (CONNECT_DATA= (SERVICE_NAME=sales.us.example.com)))