8 ネーミング・メソッドの構成

データベース・サーバーに接続するクライアントの接続情報を構成する方法について説明します。

8.1 簡易接続ネーミング・メソッドの構成

簡易接続ネーミング・メソッドを使用すると、TCP/IP環境でtnsnames.oraファイルでサービス名を検索する必要がなくなります。さらに、このメソッドを使用するとネーミング・システムやディレクトリ・システムは必要ありません。

8.1.1 簡易接続ネーミング・メソッドの理解

簡易接続ネーミング・メソッドは、データベースへの簡単なTCP/IP接続を提供します。

概要

このネーミング・メソッドは、クライアントがデータベースのホスト名の他にオプションのポートとサービス名を使用してデータベースに接続できるようにすることで、ホスト・ネーミング・メソッドの機能を拡張します。


CONNECT username@[//]host[:port][/[service_name][:server_type][/instance_name]]
Enter password: password

この接続識別子は、次のような接続記述子に変換されます。

(DESCRIPTION= 
  (ADDRESS=(PROTOCOL=tcp)(HOST=host)(PORT=port))
  (CONNECT_DATA=
    (SERVICE_NAME=service_name)
    (SERVER=server_type)
    (INSTANCE_NAME=instance_name))
)

Oracle Databaseサーバーのインストールを「標準」モードで実行した場合、Oracleインスタンスで使用されるデフォルトのサービス名はデータベース名で、次の簡易接続構文を使用してそのインスタンスに接続できます。

SQLPLUS /nolog
SQL> CONNECT username@host/db_name
SQL> Enter password: password

簡易接続構文の例

次の例の接続文字列は、データベース・サーバーsales-server上のリスニング・エンドポイント1521を使用して、クライアントをデータベース・サービスのsales.us.example.comに接続します。
CONNECT scott@sales-server:1521/sales.us.example.com
CONNECT scott@//sales-server/sales.us.example.com
CONNECT scott@//sales-server.us.example.com/sales.us.example.com

各接続文字列の後に、データベース・サービスに接続するためのパスワードを入力する必要があります。

これらの接続文字列は、次の接続記述子に変換されます。
(DESCRIPTION= 
  (ADDRESS=(PROTOCOL=tcp)(HOST=sales-server)(PORT=1521))
  (CONNECT_DATA=
    (SERVICE_NAME=sales.us.example.com)))

簡易接続ネーミングのための接続識別子

次のリストに、簡易接続の構文要素とそれぞれの説明を示します:

構文要素 説明

//

//を使用して、URLまたはJDBC接続を指定します。

URLまたはJDBC接続の場合、必須です。接続識別子の前にダブル・スラッシュ(//)を付ける必要があります。たとえば:

scott@//sales-server
Enter password: password

SQL接続の場合、オプションです。接続識別子の前にダブル・スラッシュ(//)を付けることができます。たとえば、次の接続文字列は意味的に同じです。

SQL> CONNECT scott@sales-server
SQL> CONNECT scott@//sales-server

host

必須。データベース・ホスト・コンピュータのホスト名またはIPアドレスを指定します。

ローカル・オペレーティング・システム構成でドメイン指定のときは、ホスト名は、ドメインで修飾されます。

値としてIPv4またはIPv6アドレスを使用できます。IPv6アドレスまたはIPv6アドレスに解決されるホスト名は、[2001:0db8:0:0::200C:417A][salesdb]のように大括弧で囲む必要があります。

port

省略可能。リスニング・ポートを指定します。

デフォルトは、1521です。

service_name

省略可能。データベースのサービス名を指定します。

ユーザーがサービス名を指定した場合、リスナーはその特定のデータベースにユーザーを接続します。サービス名を指定しない場合、リスナーはlistener.oraファイルのDEFAULT_SERVICE_listener_nameパラメータで指定されたデータベースに接続します。リスナーについてDEFAULT_SERVICE_listener_nameが設定されておらず、ユーザーがサービス名を簡易接続構文の一部として明示的に指定していない場合、リスナーはエラーを戻します。

server_type

省略可能。使用するデータベース・サーバーのタイプを指定します。

このパラメータを指定すると、リスナーはクライアントを特定のタイプのサービス・ハンドラに接続します。

server_typeパラメータの値は、dedicatedsharedおよびpooledです。簡易接続構文でサーバーが指定されていない場合、リスナーによってサーバーのタイプが選択されます(共有サーバーが構成済の場合は共有サーバー、それ以外の場合は専用サーバーが使用されます)。

ノート: Oracle Call Interfaceのマニュアルでは、serverはconnect_typeと呼ばれています。

instance_name

省略可能。アクセスするデータベース・インスタンスを識別します。

インスタンス名は、初期化パラメータ・ファイルのINSTANCE_NAMEパラメータから取得できます。

8.1.2 簡易接続プラスについて

Oracle Database 19cリリースから、Oracle Databaseへの接続にアプリケーションで使用する簡易接続構文が機能強化されました。新しいバージョンは簡易接続プラスと呼ばれます。

簡易接続プラスでは、Oracle Databaseのアプリケーション構成と一般的なユースケースのデプロイメントが簡略化されます。簡易接続プラスでは、tnsnames.orasqlnet.oraなどのOracle Netパラメータ・ファイルを構成する必要がなくなりました。簡易接続プラスでは、TNS_ADMIN環境変数を設定する必要がなくなりました。

この新しい機能によって、Oracle Database Cloud Servicesへのクライアント接続がネットワーク・セキュリティにTLSを使用するため、クライアント構成が簡単になります。新しい構文は次のとおりです。

[[protocol:]//]host1{,host12}[:port1]{,host2:port2}[/[service_name][:server][/instance_name]][?parameter_name=value{&parameter_name=value}]

疑問符(?)は名前/値ペアの始まりを示します。アンパーサンド(&)は名前/値ペアの間のデリミタです。

プロトコルの指定のサポート: 簡易接続アダプタは、接続文字列の一部としてプロトコルの指定をサポートします。このプロトコルは、接続文字列内の各ホストに適用されます。

マルチホストまたはポート・サポート: 簡易接続アダプタは、接続文字列内の複数のホストまたはポートを受け入れることができるようになりました。これは、クライアント接続のロード・バランシングに役立ちます。

名前/値ペア: 簡易接続アダプタは、名前と値のペアのリストを受け入れることができます。名前/値の各ペアは、DESCRIPTIONレベルのパラメータとして追加されます。次の名前がサポートされています。

  • ENABLE
  • FAILOVER
  • LOAD_BALANCE
  • RECV_BUF_SIZE
  • SEND_BUF_SIZE
  • SDU
  • SOURCE_ROUTE
  • RETRY_COUNT
  • RETRY_DELAY
  • CONNECT_TIMEOUT
  • TRANSPORT_CONNECT_TIMEOUT

たとえば、次の構文はセッション・データ・ユニット(SDU)を指定します

salesserver1:1521/sales.us.example.com?sdu=16384

次のような接続記述子に変換されます。

(DESCRIPTION=
  (SDU=16384) 
  (ADDRESS=(PROTOCOL=tcp)(HOST=saleserver1)(PORT=1521))
  (CONNECT_DATA=(SERVICE_NAME=sales.us.example.com)))

同様に、次の構文は接続タイムアウト、トランスポート接続タイムアウト、および再試行回数の値を指定します

salesserver1:1521/sales.us.example.com?connect_timeout=60&transport_connect_timeout=30&retry_count=3

次のような接続記述子に変換されます。

(DESCRIPTION=
   (retry_count=3)
   (connect_timeout=60)(transport_connect_timeout=30)
   (ADDRESS=(PROTOCOL=tcp)(HOST=salesserver1)(PORT=1521))
   (CONNECT_DATA=(SERVICE_NAME=sales.us.example.com)))

セキュリティ属性: 次のSECURITY属性がTLSでサポートされています。

  • SSL_SERVER_DN_MATCH=on/off
  • SSL_SERVER_CERT_DN=longDN
  • WALLET_LOCATION=Wallet location

8.1.3 簡易接続ネーミング・メソッドの例

例は、簡易接続ネーミングの構文と、各文字列がどのように接続記述子に変換されるかを示しています。

表8-1 簡易接続ネーミングの例

ネーミング・オプション 接続文字列 接続記述子

ホスト指定の簡易接続文字列。

ホスト名はsales-serverです。

sales-server
(DESCRIPTION=
   (CONNECT_DATA=
       (SERVICE_NAME=))
   (ADDRESS=
       (PROTOCOL=TCP)
       (HOST=sales-server)
       (PORT=1521)))

ホストおよびポート指定の簡易接続文字列。

ホスト名はsales-server、ポートは3456です。

sales-server:3456
(DESCRIPTION=
   (CONNECT_DATA=
       (SERVICE_NAME=))
   (ADDRESS=
       (PROTOCOL=TCP)
       (HOST=sales-server)
       (PORT=3456)))

ホストおよびサービス名指定の簡易接続文字列。

ホスト名はsales-server、サービス名はsalesです。

sales-server/sales
(DESCRIPTION=
  (CONNECT_DATA=
     (SERVICE_NAME=sales))
  (ADDRESS=
     (PROTOCOL=TCP)
     (HOST=sales-server)
     (PORT=1521)))

IPv6アドレス指定の簡易接続文字列。

ホストのIPv6アドレスは2001:0db8:0:0::200C:417A、ポートは80、サービス名はsalesです。

[2001:0db8:0:0::200C:417A]:80/sales

IPv6ホスト名は大括弧で囲む必要があります。

(DESCRIPTION=
  (CONNECT_DATA=
      (SERVICE_NAME=sales)
  (ADDRESS=
      (PROTOCOL=TCP)
      (HOST=2001:0db8:0:0::200C:417A)
      (PORT=80)))

IPv6ホスト・アドレス指定の簡易接続文字列。

ホストはsales-server、ポートは80、サービス名はsalesです。

sales-server:80/sales
(DESCRIPTION=
  (CONNECT_DATA=
      (SERVICE_NAME=sales)
  (ADDRESS=
      (PROTOCOL=TCP)
      (HOST=sales-server)
      (PORT=80)))

ホスト、サービス名およびサーバー指定の簡易接続文字列。

ホスト名はsales-server、サービス名はsales、サーバーはdedicated、インスタンス名はinst1です。

sales-server/sales:dedicated/inst1
(DESCRIPTION=
  (CONNECT_DATA=
      (SERVICE_NAME=sales)
      (INSTANCE_NAME=inst1)
      (SERVER=dedicated))
  (ADDRESS=
      (PROTOCOL=TCP)
      (HOST=sales-server)
      (PORT=1521)))

ホストおよびインスタンス名指定の簡易接続。

ホスト名はsales-server、インスタンス名はinst1です。

sales-server//inst1
(DESCRIPTION=
   (CONNECT_DATA=
      (SERVICE_NAME=)
      (INSTANCE_NAME=inst1))
   (ADDRESS=
      (PROTOCOL=TCP)
      (HOST=sales-server)
      (PORT=1521)))

ノート: 簡易接続プラス機能では、このネーミング・オプションがサポートされています。

名前/値ペアのリストがある簡易接続アダプタ。

SDURETRY_COUNTCONNECT_TIMEOUT

ホストはsalesserver、ポートは1521、サービス名はsalesです。

salesserver1:1521/sales?SDU=8128&retry_count=3&connect_timeout=10
(DESCRIPTION=
(SDU=8128)(retry_count=3)(connect_timeout=10)
(ADDRESS=(PROTOCOL=tcp)(HOST=saleserver1)(PORT=1521)) (CONNECT_DATA=(SERVICE_NAME=sales)))

ノート: 簡易接続プラス機能では、このネーミング・オプションがサポートされています。

接続文字列に複数のホストまたはポートがある簡易接続アダプタ

ホストはsalesserver、ポートは1521、サービス名はsalesです。

salesserver1:1521,salesserver2,salesserver3:1522/sales
((DESCRIPTION=(LOAD_BALANCE=ON)
 (ADDRESS=(PROTOCOL=tcp)(HOST=sales-server1)(PORT=1521))
 (ADDRESS=(PROTOCOL=tcp)(HOST=sales-server2)(PORT=1522))
 (ADDRESS=(PROTOCOL=tcp)(HOST=sales-server3)(PORT=1522)))
 (CONNECT_DATA=(SERVICE_NAME=sales)))

ノート: 簡易接続プラス機能では、このネーミング・オプションがサポートされています。

接続文字列の一部にプロトコルの指定がある簡易接続アダプタ。

ホストはsalesserver、ポートは1521、サービス名はsalesです。

tcps://salesserver1:1521/sales
(DESCRIPTION=
(ADDRESS=(PROTOCOL=tcps)(HOST=salesserver1)(PORT=1521))
(SECURITY=(SSL_SERVER_DN_MATCH=TRUE))
(CONNECT_DATA=(SERVICE_NAME=sales)))

ノート: 簡易接続プラス機能では、このネーミング・オプションがサポートされています。

次のSECURITY属性がTLSでサポートされています。

ホストはsales-server、ポートは1521、サービス名はsalesです。

tcps://sales-server:1521/sales?ssl_server_cert_dn="cn=sales,cn=OracleContext,dc=us,dc=example,dc=com"&wallet_location="/tmp/oracle" (DESCRIPTION= (ADDRESS=(PROTOCOL=tcps)(HOST=salesserver)(PORT=1521)) (CONNECT_DATA=(SERVICE_NAME=sales))(SECURITY=(SSL_SERVER_DN_MATCH=TRUE)(SSL_SERVER_CERT_DN=cn=sales,cn=OracleContext,dc=us,dc=example,dc=com)(WALLET_LOCATION=/tmp/oracle)))

8.1.4 クライアントでの簡易接続ネーミングの構成

クライアントが簡易接続ネーミング・メソッドを使用する前に確認する必要がある要件および構成タスクについて学習します。

次の条件が満たされると、クライアントは、簡易接続ネーミングを使用して、Oracle Databaseに接続できます。

  • Oracle Net Servicesソフトウェアがクライアントにインストールされている。

  • Oracle TCP/IPプロトコルは、クライアントとデータベース・サーバーの両方でサポートされている。

  • 拡張接続記述子を必要とする機能がない。

外部プロシージャ・コール、異機種間サービスなどの追加の接続情報が必要な拡張機能を備えた大規模で複雑な環境には、簡易接続ネーミングは不向きです。このような場合は、別のネーミング・メソッドの使用をお薦めします。

簡易接続ネーミングは、インストール時に自動的に構成されます。使用前には、EZCONNECTsqlnet.oraファイルのNAMES.DIRECTORY_PATHパラメータで指定されていることを確認してください。このパラメータは、Oracle Netが接続識別子を接続記述子に解決する際に使用できるネーミング・メソッドの順序を指定します。

ノート:

Oracle Database 19cリリース2 (19.2)以降、プロトコルがTCPSに設定されている接続については、簡易接続の使用時にデフォルトでSSL_SERVER_DN_MATCHONに設定されます。SSL_SERVER_CERT_DNが設定されていない場合は、次の順序で部分DN一致を実行することで、クライアントからサーバーへの接続が正常に確立されます。
  1. 接続文字列のホスト名がサーバー証明書のホスト名と照合されます。
  2. 接続文字列のサービス名がサーバー証明書内のサービス名と照合されます。
SSL_SERVER_CERT_DNが設定されている場合は、完全DN一致によってクライアントからサーバーへの接続が正常に確立されます。

次の手順では、簡易接続ネーミング・メソッドが構成されていることを確認する方法について説明します。

  1. Oracle Net Managerを起動します。

  2. ナビゲータ・ペインで、「ローカル」を展開し、次に「プロファイル」を選択します。

  3. 右ペインのリストから、「ネーミング」を選択します。

  4. 「メソッド」タブをクリックします。

    「選択メソッド」リストにEZCONNECTがリストされていることを確認します。リストされていない場合は、ステップ5に進みます。リストされている場合は、ステップ7に進みます。

  5. 「使用可能なメソッド」リストから「EZCONNECT」を選択し、右矢印ボタンをクリックします。

  6. 「選択メソッド」リストで「EZCONNECT」を選択し、「上へ」ボタンを使用して選択済項目をリストの最上位に移動します。

  7. 「ファイル」メニューから「ネットワーク構成の保存」を選択します。

    sqlnet.oraファイルは、NAMES.DIRECTORY_PATHパラメータで更新され、次のようにhostnameが最初に表示されます。

    NAMES.DIRECTORY_PATH=(ezconnect, tnsnames)

8.1.5 DNS別名を使用するための簡易接続ネーミングの構成

ホスト・ネーミング・メソッドで提供されているように、ホスト名にDNS別名をオプションとして構成できます。

ホスト・ネーミングでは、クライアントは、次のパターンを使用する接続文字列を使用します。

CONNECT username@DNS_alias
Enter password: password

次の手順では、DNS別名の構成方法について説明します。

  1. リスナーにデータベース・サービスが登録されていることを確認します。

    データベースがリスナーを検出できる場合は、サービス名を含むデータベース・サービスに関する情報は、サービス登録中に動的にリスナーに登録されます。リスナーは、次の条件が満たされる場合に検出されます。

    • デフォルトの名前がLISTENERのリスナーが、ポート1521のTCP/IP上で実行されている場合

    • LOCAL_LISTENERパラメータが初期化ファイルに設定されている場合

    データベースでリスナーが見つからない場合は、リスナーの静的登録を構成できます。

  2. ホスト名解決環境を確立します。

    DNS、NISまたは集中管理されているTCP/IPホスト・ファイルの/etc/hostsなどのメカニズムを構成できます。たとえば、あるデータベースのsales.us.example.comというサービス名が、sales-serverという名前のコンピュータ上に存在する場合、/etc/hostsファイルのエントリは次のようになります。

    #IP address of server     host name       alias
    192.0.2.35              sales-server    sales.us.example.com
    

    サービス名のドメイン部分は、ネットワーク・ドメインと一致する必要があります。

  3. DNSの別名を使用してデータベースに接続します。

    前のステップの例を使用すると、クライアントは、次のように接続文字列でsales.example.comを使用できます。

    CONNECT username@sales.us.example.com
    Enter password: password
    

    クライアントとサーバーが同じus.example.comなどのドメインに所属していれば、クライアントは接続文字列にsalesを入力するだけでかまいません。

8.2 ローカル・ネーミング・メソッドの構成

ローカル・ネーミング・メソッドでは、ネットワーク・サービス名をtnsnames.oraファイルに追加します。各ネットワーク・サービス名は、接続記述子にマップされます。

例8-1は、DESCRIPTIONに含まれる接続記述子にマップされるネットワーク・サービス名salesを示しています。DESCRIPTIONセクションにはプロトコル・アドレスが含まれており、接続先データベース・サービスを識別します。この例では、プロトコルはTCP/IP、ポートは1521です。

例8-1 ホスト名を含む接続記述子

sales=
(DESCRIPTION= 
  (ADDRESS=(PROTOCOL=tcp)(HOST=sales-server)(PORT=1521))
  (CONNECT_DATA= 
     (SERVICE_NAME=sales.us.example.com)))

例8-2は、IPv6アドレスおよびポート番号1522で識別されるホストに接続するための有効なtnsnames.oraエントリを示しています。

例8-2 IPv6アドレスを含む接続記述子

salesdb =
  ( DESCRIPTION =
    ( ADDRESS=(PROTOCOL=tcp)(HOST=2001:0db8:1:1::200C:417A)(PORT=1522) )
    ( CONNECT_DATA = 
        (SERVICES_NAME=sales.example.com) )
  )

次の項目で説明するように、ローカル・ネーミングは、インストール中またはインストール後に構成できます。

関連項目:

IPv6のネットワーク接続

8.2.1 インストール中のtnsnames.oraファイル構成

Oracle Net Configuration Assistantを使用すると、クライアントに対するネットワーク・サービス名の構成が可能となります。Oracle Universal Installerは、ソフトウェアのインストール後にOracle Net Configuration Assistantを起動します。構成は、インストール・モードによって異なります。

  • 管理者またはランタイム・インストレーション: Oracle Net Configuration Assistantでは、Oracle Databaseサービスへ接続するために、tnsnames.oraファイルにネットワーク・サービス名を構成するように求められます。

  • カスタム・インストレーション: Oracle Net Configuration Assistantでは、使用するネーミング・メソッドを選択するように求められます。ローカル・ネーミングを選択した場合、Oracle Net Configuration Assistantでは、Oracle Databaseサービスへ接続するために、tnsnames.oraファイル中のネットワーク・サービス名を構成するように求められます。

8.2.2 インストール後のtnsnames.oraファイル構成

ネットワーク・サービス名は、インストール後、いつでもtnsnames.oraファイルに追加できます。

ローカル・ネーミング・メソッドを構成するには、次の作業を実行します。

ノート:

Oracle Netとの接続を構成する前に、基礎となるネットワーク接続が稼働している必要があります。

タスク1   ネット・サービス名の構成

ネットワーク・サービス名を構成するには、次のいずれかの方法を使用します。

それぞれの方法で同様の機能が提供されます。ただし、Oracle Net Managerにはsqlnet.oraファイルでの追加の構成オプションがあります。

  • Oracle Enterprise Manager Cloud Controlを使用したネット・サービス名の構成

    次の手順では、Oracle Enterprise Manager Cloud Controlを使用してtnsnames.oraファイルのネットワーク・サービス名を構成する方法について説明します。

    1. Oracle Enterprise Manager Cloud Controlの「Net Services管理」ページにアクセスします。

    2. 「管理」リストから「ローカル・ネーミング」を選択し、構成ファイルの場所が含まれるOracleホームを選択します。

    3. 「ローカル・ネーミング」ページが表示されます。データベース・サーバーへのログインを求められる場合があります。

    4. 「類似作成」をクリックします。

      「ネット・サービス名の作成」ページが表示されます。

    5. 「ネット・サービス名」フィールドに名前を入力します。

      ネットワーク・サービス名は、クライアントのドメインで修飾できます。sqlnet.oraファイルのパラメータNAMES.DEFAULT_DOMAINが設定されていると、ネットワーク・サービス名は自動的にドメインによって修飾されます。

    6. 「データベース情報」セクションで次のようにサービス・サポートを設定します。

      1. 宛先サービス名を入力します。

        関連項目:

        使用するサービス名文字列の詳細は、「接続記述子について」を参照

      2. データベース接続タイプを選択します。

        接続タイプには「データベースのデフォルト」のデフォルト設定をお薦めします。専用サーバーが初期化パラメータ・ファイルで構成されている場合、「専用サーバー」を選択し、共有サーバー構成を使用せずに、リスナーに専用サーバーを起動させることができます。共有サーバーが初期化パラメータ・ファイルで構成され、接続時に常に共有サーバーが使用されるようにする場合は、「共有サーバー」を選択します。

        関連項目:

        共有サーバーの構成の詳細は、共有サーバー・アーキテクチャの構成を参照してください。

    7. アドレス・セクションで次のようにプロトコル・サポートを設定します。

      1. 「追加」をクリックします。

        「アドレスの追加」ページが表示されます。

      2. 「プロトコル」リストからリスナーがリスニングするように構成されているプロトコルを選択します。このプロトコルも、クライアント上にインストールする必要があります。

      3. 提供されたフィールドで選択したプロトコルに対して適切なパラメータ情報を入力します。

        関連項目:

        プロトコル・パラメータの設定の詳細は、『Oracle Database Net Servicesリファレンス』を参照してください。

      4. (オプション)「拡張パラメータ」セクションを使用して、このセッションにおける送受信操作に必要なI/Oバッファ・スペース制限を「合計送信バッファ・サイズ」および「合計受信バッファ・サイズ」フィールドに指定します。

        関連項目:

        バッファ・スペースの詳細は、「I/Oバッファ・スペースの構成」を参照してください

      5. 「OK」をクリックします。

        プロトコル・アドレスは、アドレス・セクションに追加されます。

    8. 「OK」をクリックして、ネットワーク・サービス名を追加します。

      ネットワーク・サービス名が「ローカル・ネーミング」ページに追加されます。

    9. アドレスに対して接続時フェイルオーバーおよびクライアント・ロード・バランシング・オプションを選択します。

    10. 「OK」をクリックします。

    関連項目:

  • Oracle Net Managerを使用したネット・サービス名の構成

    次の手順では、Oracle Net Managerを使用してtnsnames.oraファイルのネットワーク・サービス名を構成する方法について説明します。

    1. Oracle Net Managerを起動します。

    2. ナビゲータ・ペインで、「ローカル」メニューから「サービス・ネーミング」を選択します。

    3. ツールバーで「+」をクリックするか、「編集」メニューから「作成」を選択します。

      「Netサービス名ウィザード」の「ようこそ」ページが表示されます。

    4. 「ネット・サービス名」フィールドに名前を入力します。

      ネットワーク・サービス名は、クライアントのドメインで修飾できます。sqlnet.oraファイルのパラメータNAMES.DEFAULT_DOMAINが設定されていると、ネットワーク・サービス名は自動的にドメインによって修飾されます。

    5. 「次へ」をクリックします。

      「プロトコル」ページが表示されます。

    6. リスナーがリスニングするように構成されているプロトコルを選択します。このプロトコルも、クライアント上にインストールする必要があります。

    7. 「次へ」をクリックします。

      「プロトコル設定」ページが表示されます。

    8. 提供されたフィールドで選択したプロトコルに対して適切なパラメータ情報を入力します。

      関連項目:

      プロトコル・パラメータの設定の詳細は、『Oracle Database Net Servicesリファレンス』を参照してください。

    9. 「次へ」をクリックします。

      「サービス」ページが表示されます。

    10. 宛先サービス名を入力し、オプションでデータベース接続タイプを選択します。

      オラクル社では、接続タイプには「データベースのデフォルト」のデフォルト設定の使用をお薦めします。専用サーバーが初期化パラメータ・ファイルで構成されている場合、「専用サーバー」を選択し、共有サーバー構成を使用せずに、リスナーに専用サーバーを起動させることができます。共有サーバーが初期化パラメータ・ファイルで構成され、接続時に常に共有サーバーが使用されるようにする場合は、「共有サーバー」を選択します。

      関連項目:

    11. 「次へ」をクリックします。

      「テスト」ページが表示されます。

    12. ネットワーク・サービス名が機能するかどうかを確認するには、「テスト」をクリックし、Netサービス名ウィザードを終了するには、「終了」をクリックします。

      「テスト」をクリックすると、Oracle Netは構成済の接続記述子情報を使用して、データベース・サーバーに接続します。このため、リスナーとデータベースを実行していなければテストを正常に実行できません。実行されていない場合は、テストの前に、「Oracle Net ListenerとOracle Databaseサーバーの起動」を参照してコンポーネントを起動してください。テスト中、ステータスとテスト結果を示す「接続テスト」ダイアログ・ボックスが表示されます。テストが成功すると、次のメッセージが表示されます。

      The connection test was successful.
      

      テストが成功した場合は、「閉じる」をクリックして「接続テスト」ダイアログ・ボックスを閉じてからステップ13に進みます。

      テストが正常終了しなかった場合は、次の処置を行ってください。

      1. データベースとリスナーが実行されていることを確認し、「テスト」をクリックします。

      2. 「ログインの変更」をクリックして、接続に使用するユーザー名とパスワードを変更し、「テスト」をクリックします。

    13. 「終了」をクリックして、「Netサービス名ウィザード」を終了します。

    14. 「ファイル」メニューから「ネットワーク構成の保存」を選択します。

      関連項目:

  • Oracle Net Configuration Assistantを使用したネット・サービス名の構成

    次の手順では、Oracle Net Configuration Assistantを使用してtnsnames.oraファイルのネットワーク・サービス名を構成する方法について説明します。

    1. Oracle Net Configuration Assistantを起動します。

      「ようこそ」ページが表示されます。

    2. 「ローカル・ネット・サービス名構成」を選択してから、「次へ」をクリックします。

      「ネット・サービス名の構成」ページが表示されます。

    3. 「追加」をクリックし、「次へ」をクリックします。

      「ネット・サービス名の構成」ページが表示されます。

    4. 「サービス名」フィールドにネット・サービス名を入力します。

    5. 「次へ」をクリックします。

    6. ウィザードのプロンプトとオンライン・ヘルプに従って、ネットワーク・サービス名を作成します。

タスク2   第1番目のネーミング・メソッドとしてのローカル・ネーミングの構成

sqlnet.oraファイルのNAMES.DIRECTORY_PATHパラメータで第1番目のネーミング・メソッドとして指定するローカル・ネーミングを構成します。このパラメータは、Oracle Netが接続識別子を接続記述子に解決する際に使用するネーミング・メソッドの順序を指定します。

第1番目のネーミング・メソッドとしてローカル・ネーミング・メソッドを構成するには、次のいずれかの方法を使用します。

それぞれの方法で同じ機能が提供されます。

Oracle Enterprise Manager Cloud Controlを使用したローカル・ネーミングの構成

次の手順では、Oracle Enterprise Manager Cloud Controlを使用して第1番目のネーミング・メソッドとしてローカル・ネーミングを指定する方法について説明します。

  1. Oracle Enterprise Manager Cloud Controlの「Net Services管理」ページにアクセスします。

  2. 「管理」リストから「ネットワーク・プロファイル」を選択します。

  3. 「実行」をクリックします。

  4. 「ネーミング・メソッド」を選択します。

  5. 「使用可能なメソッド」リストから「TNSNAMES」を選択します。

  6. 「移動」をクリックして、選択したメソッドを「選択したメソッド」リストに移動します。

  7. 「昇格」ボタンを使用してTNSNAMESをリストの最上位に移動します。

  8. 「OK」をクリックします。

Oracle Net Managerを使用したローカル・ネーミングの構成

次の手順では、Oracle Net Managerを使用して第1番目のネーミング・メソッドとしてローカル・ネーミングを指定する方法について説明します。

  1. Oracle Net Managerを起動します。

  2. ナビゲータ・ペインで、「ローカル」メニューから「プロファイル」を選択します。

  3. 右ペインのリストから、「ネーミング」を選択します。

  4. 「メソッド」タブをクリックします。

  5. 「使用可能なメソッド」リストから「TNSNAMES」を選択し、右矢印ボタンをクリックします。

  6. 「選択メソッド」リストで「TNSNAMES」を選択し、「上へ」ボタンを使用して選択済項目をリストの最上位に移動します。

  7. 「ファイル」メニューから「ネットワーク構成の保存」を選択します。

    sqlnet.oraファイルは、NAMES.DIRECTORY_PATHパラメータで更新され、次のようにtnsnamesが最初に表示されます。

    NAMES.DIRECTORY_PATH=(tnsnames, EZCONNECT)
タスク3   他のクライアントへの構成のコピー

クライアントを1台構成してから、tnsnames.orasqlnet.oraの構成ファイルを他のクライアントの同じ場所にコピーします。これによって、ファイルの一貫性が保たれます。その他に、Oracle Net Assistantをすべてのクライアント上で使用できます。

タスク4   リスナーの構成

サーバー上のリスナーは、ネットワーク・サービス名用に構成したものと同じプロトコル・アドレスを使用してリスニングするように構成する必要があります。デフォルトでリスナーは、ポート1521のTCP/IPプロトコルを使用するように構成されています。

関連項目:

リスナー構成の詳細は、「Oracle Net Listenerの構成と管理」を参照してください

タスク5   データベースへの接続

クライアントは、次の構文を使用してデータベースへ接続できます。

CONNECT username@net_service_name

8.3 ディレクトリ・ネーミング・メソッドの構成

ディレクトリ・ネーミング・メソッドでは、Oracle Internet DirectoryやMicrosoft Active DirectoryなどのLDAP準拠ディレクトリ・サーバーに含まれる接続記述子に接続識別子をマップします。

ディレクトリでは、データベース・サービスおよびネットワーク・サービス名の集中管理が提供され、サービスの追加または再配置が容易になります。

データベース・サービス・エントリはインストール時に作成されます。ネットワーク・サービス名のエントリとネットワーク・サービス別名のエントリを作成および変更し、データベース・サービス・エントリを変更するには、Oracle Enterprise Manager Cloud ControlおよびOracle Net Managerを使用します。クライアントは、データベースへの接続にこれらのエントリを使用できます。

ディレクトリ・ネーミング・メソッドを構成するには、次の作業を実行します。

タスク1   ディレクトリのバージョンの互換性の検証

ネットワーク・サービス名を作成しようとしているコンピュータから次の検証ステップを実行します。

  1. コンピュータにOracle Net Serviceソフトウェアの最新リリースがインストールされていることを確認します。リリース情報は、「ヘルプ」メニューの「情報」オプションにあります。

  2. Oracle Internet Directoryコンフィギュレーション・アシスタントを実行して、ディレクトリ・サーバー、Oracleコンテキスト、Oracleスキーマのリリースを確認します。

タスク2   ネット・サービス名のディレクトリへの作成

データベース・サービス・エントリではなくネットワーク・サービス名を使用するようにクライアントを構成できます。次の手順では、ネットワーク・サービス名の作成方法について説明します。

ノート:

  1. Oracle Enterprise Manager Cloud Controlの「Net Services管理」ページにアクセスします。「「Net Services管理」ページへのアクセス」を参照してください。

  2. 「管理」リストから「ディレクトリ・ネーミング」を選択し、ディレクトリ・サーバーのあるOracleホームを選択します。

  3. 「実行」をクリックします。

    「ディレクトリ・ネーミング」ページが表示されます。

  4. 「ネット・サービス名」タブをクリックします。

  5. 結果セクションの「作成」をクリックします。

    「一般」タブのある「ネット・サービス名の作成」ページが表示されます。

  6. 「ネット・サービス名」フィールドに名前を入力します。

  7. データベース情報セクションで次のようにサービス・サポートを設定します。

    1. 宛先サービス名を入力します。「接続記述子について」を参照してください。

    2. データベース接続タイプを選択します。オラクル社では、接続タイプには「データベースのデフォルト」の使用をお薦めします。初期化パラメータ・ファイルで共有サーバーが構成されている場合は、次のオプションを使用できます。

      • 共有サーバー構成を使用せずに、リスナーに専用サーバーを起動させるには、「専用サーバー」を選択します。

      • 接続時に常に共有サーバーが使用されるようにするには、「共有サーバー」を選択します。

      共有サーバー・アーキテクチャの構成」を参照してください。

  8. アドレス・セクションで次のようにプロトコル・サポートを設定します。

    1. 「追加」をクリックします。

      「アドレスの追加」ページが表示されます。

    2. 「プロトコル」リストから、リスナーがリスニングするように構成されているプロトコルを選択します。このプロトコルも、クライアント上にインストールする必要があります。

    3. 提供されたフィールドで選択したプロトコルに対して適切なパラメータ情報を入力します。Oracle Database Net Servicesリファレンスを参照してください。

    4. (オプション)「拡張パラメータ」セクションを使用して、このセッションにおける送受信操作に必要なI/Oバッファ・スペース制限を「合計送信バッファ・サイズ」および「合計受信バッファ・サイズ」フィールドに指定します。「I/Oバッファ・スペースの構成」を参照してください。

    5. 「OK」をクリックします。

      プロトコル・アドレスは、アドレス・セクションに追加されます。

  9. 「OK」をクリックして、ネットワーク・サービス名を追加します。

    ネットワーク・サービス名が「ネット・サービス名」タブの結果セクションに追加されます。

    複数のプロトコル・アドレスを構成する方法については、リスナー・プロトコル・アドレスのリスト作成を参照してください。CONNECT_DATAオプションを追加で構成するには、拡張接続データ・パラメータについてを参照してください。

タスク3   データベース・サービス・エントリに対する接続情報の変更

ディレクトリ・ネーミングへのデータベース登録が完了すると、ディレクトリにデータベース・サービス・エントリが作成されます。デフォルトでは、このエントリにはプロトコル・アドレスで表されたリスナーの位置を含む、ネットワーク・ルート情報が含まれています。この情報を再作成したり、既存のネットワーク・ルート情報を変更できます。

ノート:

OracleNetAdminsグループまたはOracleContextAdminsグループのメンバーであるユーザーのみが、ディレクトリ内のデータベース・サービスに関するネットワーク情報を変更できます。これらのグループにユーザーを追加したり削除したりするには、「ディレクトリ・サーバーのエントリを追加または変更できるユーザー」を参照してください。

次の手順では、データベース・サービスのネットワーク・ルート情報を作成または変更する方法について説明します。

  1. Oracle Enterprise Manager Cloud Controlの「Net Services管理」ページにアクセスします。「「Net Services管理」ページへのアクセス」を参照してください。

  2. 「管理」リストから「ディレクトリ・ネーミング」を選択し、ディレクトリ・サーバーのあるOracleホームを選択します。

  3. 「実行」をクリックします。データベース・サーバーおよびディレクトリ・サーバーへのログインを求められる場合があります。

    「ディレクトリ・ネーミング」ページが表示されます。

  4. 「データベース・サービス」タブをクリックします。

  5. 「簡易検索」セクションで「Oracleコンテキスト」と検索基準を選択し、Oracleコンテキストのネットワーク・サービス名を確認します。

    データベース・サービス名が結果セクションに表示されます。

  6. 結果セクションでデータベース・サービスを選択し、「編集」をクリックします。

タスク4   ネット・サービス別名の作成

ディレクトリ・サーバーのネット・サービス別名によって、クライアントはデータベース・サービスまたはネットワーク・サービス名を代替名で参照できます。たとえば、salesというネットワーク・サービス名に対してsalesaliasというネットワーク・サービス別名を作成できます。salesaliasCONNECT scott@salesaliasとして使用してデータベースに接続すると、salesの接続記述子情報に解決されて使用されます。

ネットワーク・サービス別名の主な使用方法は、次の2つです。

  • クライアントがデータベース・サービスまたはネットワーク・サービス名を別の名前で参照する手段としてネットワーク・サービス別名を使用する方法。

  • データベース・サービスの1つのOracleコンテキストでネットワーク・サービス別名を使用し、別のOracleコンテキストでネットワーク・サービス名を使用する方法。この方法によって、データベース・サービスまたはネットワーク・サービス名をディレクトリ・サーバーで一度定義すると、他のOracleコンテキストを使用するクライアントで参照できます。ネットワーク・サービス別名の概要については、ネット・サービス別名のエントリの理解を参照してください。

ノート:

  • OracleNetAdminsグループまたはOracleContextAdminsグループのいずれかのメンバーであるユーザーのみが、ディレクトリのネットワーク・サービス別名エントリを作成または変更できます。OracleNetAdminsグループにユーザーを追加したり削除したりするには、「ディレクトリ・サーバーのエントリを追加または変更できるユーザー」を参照してください。

  • ネットワーク・サービス別名を作成したり、アクセスするには、Oracleホームが少なくともリリース9.2.0.4であることを確認してください。

  • Microsoft Active Directoryではネット・サービス別名はサポートされていません。

  • ネットワーク・サービス別名を使用する場合は、クライアントに対してNLS_LANG環境変数が設定されていることを確認してください。

ネットワーク・サービス別名を作成するには、次のいずれかの方法を使用します。

それぞれの方法で同様の機能が提供されます。

Oracle Enterprise Manager Cloud Controlを使用したネットワーク・サービス別名の構成

次の手順では、Oracle Enterprise Manager Cloud Controlを使用してネットワーク・サービス別名を構成する方法について説明します。

  1. Oracle Enterprise Manager Cloud Controlの「Net Services管理」ページにアクセスします。「「Net Services管理」ページへのアクセス」を参照してください。

  2. 「管理」リストから「ディレクトリ・ネーミング」を選択し、ディレクトリ・サーバーのあるOracleホームを選択します。

  3. 「実行」をクリックします。

    「ディレクトリ・ネーミング」ページが表示されます。

  4. 「ネット・サービス別名」タブをクリックします。

  5. 結果セクションの「作成」をクリックします。

    「ネット・サービス別名の作成」ページが表示されます。

  6. 「ネット・サービス別名」フィールドに別名として名前を入力します。

  7. 参照サービスの詳細セクションで、フィールドに次の情報を入力します。

    • Oracleコンテキスト: データベース・サービスまたはネットワーク・サービス名のOracleコンテキストを、リストから選択するかフィールドに入力します。

    • 参照サービス名: データベース・サービスのDNまたはネットワーク・サービス名を選択します。

  8. 「OK」をクリックして、ネットワーク・サービス別名を追加します。

    ネットワーク・サービス別名が「ディレクトリ・ネーミング」ページに追加されます。

Oracle Net Managerを使用したネットワーク・サービス別名の構成

次の手順では、Oracle Net Managerを使用してネットワーク・サービス別名を構成する方法について説明します。

  1. Oracle Net Managerを起動します。「Oracle Net Managerを使用したOracle Net Servicesの構成」を参照してください。

  2. ナビゲータ・ペインで、「ディレクトリ」メニューから「サービス・ネーミング」を選択します。

  3. 「別名」を選択します。

  4. 「編集」メニューから「作成」を選択します。

  5. 「ネット・サービス別名」フィールドにネットワーク・サービス別名を入力します。

  6. Oracleコンテキストと名前を選択します。

  7. 「作成」をクリックします。

  8. 「ファイル」メニューから「ネットワーク構成の保存」を選択します。

タスク5   クライアント検索の第1番目のネーミング・メソッドとしてのLDAPの構成

sqlnet.oraファイルのNAMES.DIRECTORY_PATHパラメータで、使用する第1番目のネーミング・メソッドとしてディレクトリ・ネーミングを構成します。このパラメータは、Oracle Netが接続識別子を接続記述子に解決する際に使用するネーミング・メソッドの順序を指定します。LDAPを第1番目のネーミング・メソッドとして構成するには、次のいずれかの方法を使用できます。

Oracle Enterprise Manager Cloud Controlを使用したLDAPの構成

次の手順では、Oracle Enterprise Manager Cloud Controlを使用して第1番目のネーミング・メソッドとしてディレクトリ・ネーミングを指定する方法について説明します。

  1. Oracle Enterprise Manager Cloud Controlの「Net Services管理」ページにアクセスします。「「Net Services管理」ページへのアクセス」を参照してください。

  2. 「管理」リストから「ネットワーク・プロファイル」を選択します。

  3. 「実行」をクリックします。

  4. 「ネーミング・メソッド」を選択します。

  5. 「使用可能なメソッド」リストから「LDAP」を選択します。

  6. 「移動」をクリックして、選択したメソッドを「選択したメソッド」リストに移動します。

  7. 「昇格」ボタンを使用してLDAPをリストの最上位に移動します。

  8. 「OK」をクリックします。

Oracle Net Managerを使用したLDAPの構成

次の手順では、Oracle Net Managerを使用して第1番目のネーミング・メソッドとしてディレクトリ・ネーミングを指定する方法について説明します。

  1. Oracle Net Managerを起動します。「Oracle Net Managerを使用したOracle Net Servicesの構成」を参照してください。

  2. ナビゲータ・ペインで、「ローカル」メニューから「プロファイル」を選択します。

  3. 右ペインのリストから、「ネーミング」を選択します。

  4. 「メソッド」タブをクリックします。

  5. 「使用可能なメソッド」リストから「LDAP」を選択し、右矢印ボタンをクリックします。

  6. 「選択メソッド」リストで「LDAP」を選択し、「上へ」ボタンを使用して選択済項目をリストの最上位に移動します。

  7. 「ファイル」メニューから「ネットワーク構成の保存」を選択します。

    sqlnet.oraファイルは、NAMES.DIRECTORY_PATHパラメータで更新され、次のようにldapが最初に表示されます。

    NAMES.DIRECTORY_PATH=(ldap, tnsnames, hostname)
タスク6   リスナーの構成

サーバー上のリスナーは、ネットワーク・サービス名用に構成したものと同じプロトコル・アドレスを使用してリスニングするように構成する必要があります。デフォルトでリスナーは、ポート1521のTCP/IPプロトコルでリスニングするように構成されています。リスナー構成の詳細は、「Oracle Net Listenerの構成と管理」を参照してください。

タスク7   データベースへの接続

データベース・サービスやネットワーク・サービス名のディレクトリの場所と一致するディレクトリ・エントリがデフォルトに構成されているクライアントは、次の構文を使用してデータベースに接続できます。

CONNECT username@connect_identifier

エントリのディレクトリの場所と一致しないディレクトリ・エントリがデフォルトに構成されているクライアントは、エントリの識別名または完全修飾名を使用する必要があります。完全修飾名の使用方法については、ディレクトリ情報ツリーの理解を参照してください。

8.3.1 ディレクトリ・ネーミング・サーバーでの複数のデフォルト・コンテキストの作成

複数のデフォルト・コンテキストを有効にするには、デフォルトのoracleContextとして使用するドメインとDN間の関連付けリストを付けて、orclCommonContextMapを定義します。

クライアントに、複数のOracleコンテキストが含まれるディレクトリでの検出機能を使用させる必要がある場合は、基本のadminコンテキストにorclCommonContextMap属性を定義できます。この属性は、orclDefaultSubscriber属性をオーバーライドします。名前参照を実行すると、検出操作によって2つの属性値が戻され、クライアントはそれらの値に基づいて、使用するOracleコンテキストを決定します。

orclCommonContextMap属性が定義されていない場合、orclDefaultSubscriberがデフォルトとして使用されます。orclCommonContextMapが定義されている場合、クライアントは、DNSドメインに関連付けられているデフォルトのOracleコンテキストをorclCommonContextMapから検索します。

LDIFファイル・エントリの例を次に示します。

$ ldapmodify -v -h sales-server -p 1389 -D cn=orcladmin -q
 dn: cn=Common,cn=Products,cn=OracleContext
 replace: orclCommonContextMap
 orclCommonContextMap:
 (contextMap=
   (domain_map=(domain=us.example.com)(DN="dc=example,dc=com"))
   (domain_map=(domain=uk.example.com)(DN="dc=sales,dc=com"))
  )
  

改行を含めずにcontextMapエントリを入力する必要があります。

8.3.2 ローカル・ネーミング・エントリのディレクトリ・ネーミング・サーバーへのエクスポート

tnsnames.oraファイル内に格納されているデータをディレクトリ・サーバーにエクスポートする方法を説明します。これらのタスクでは、ディレクトリ・サーバーがインストールされて実行中であると想定しています。

tnsnames.oraファイルがすでに存在する場合、そのネットワーク・サービス名は、ディレクトリ・サーバーへエクスポートできます。エクスポート手順は、一度に1つのドメインに対して実行します。

タスク1   ディレクトリ・サーバーでの構造の作成

ディレクトリ・サーバーで、ネットワーク・サービス名をインポートする構造のディレクトリ情報ツリー(DIT)を作成します。Oracleコンテキストの先頭までの構造を作成します。

たとえば、tnsnames.oraファイルでドメイン構造example.comがサポートされており、ディレクトリ内にこのドメインをレプリケートする場合は、次の図に示すように、そのディレクトリにドメイン・コンポーネント・エントリdc=comおよびdc=exampleを作成します。

図8-1 ディレクトリ・サーバー内のexample.com

図8-1の説明が続きます
「図8-1 ディレクトリ・サーバー内のexample.com」の説明

現在tnsnames.oraで使用しているドメイン構造をレプリケートできます。または、完全に異なる構造を作成することもできます。完全に異なる構造を導入すると、クライアントが接続文字列にネットワーク・サービス名を入力する方法が変更されます。構造を変更する前に、相対ネーミングおよび完全修飾ネーミングを検討することをお薦めします。

タスク2   Oracleコンテキストの作成

Oracle Internet Directoryコンフィギュレーション・アシスタントを使用して、タスク1で作成した各DITの位置の下にOracleコンテキストを作成します。Oracleコンテキストには、cn=OracleContextの相対識別名(RDN)があります。Oracleコンテキストには、その他のOracleコンポーネントのエントリとともに、ネットワーク・オブジェクト・エントリが格納されます。次の図では、cn=OracleContextdc=example,dc=comの下に作成されます。

図8-2 Oracleコンテキスト

図8-2の説明が続きます
「図8-2 Oracleコンテキスト」の説明
タスク3   ディレクトリ・サーバーの使用の構成

Oracleコンテキストを作成する際に作業の一部として構成が終了していない場合、Oracleホームをディレクトリ・サーバーで使用できるように構成します。Oracleホームは、エクスポートを実行できる構成にする必要があります。

タスク4   ディレクトリ・サーバーへのオブジェクトのエクスポート

tnsnames.oraファイルに含まれるネットワーク・サービス名をエクスポートするには、Oracle Enterprise Manager Cloud ControlrまたはOracle Net Managerのいずれかを使用します。

  • Oracle Enterprise Manager Cloud Controlを使用したオブジェクトのエクスポート

    次の手順では、Oracle Enterprise Manager Cloud Controlを使用してオブジェクトをエクスポートする方法について説明します。

    1. Oracle Enterprise Manager Cloud Controlの「Net Services管理」ページにアクセスします。「「Net Services管理」ページへのアクセス」を参照してください。

    2. 「管理」リストから「ディレクトリ・ネーミング」を選択し、ディレクトリ・サーバーのあるOracleホームを選択します。

    3. 「実行」をクリックします。

      「ディレクトリ・ネーミング」ページが表示されます。

    4. 「ネット・サービス名」タブをクリックします。

    5. 関連リンク・セクションで「ディレクトリ・サーバーへのネット・サービス名のインポート」をクリックします。

      「ディレクトリ・サーバーへのネット・サービス名のインポート」ページが表示されます。

    6. 「Oracle Internet Directory Server接続先」セクションの「Oracleコンテキスト」リストから、選択したネットワーク・サービス名のエクスポート先であるOracleコンテキストを選択します。

    7. 「インポートするネット・サービス名」セクションで、ネットワーク・サービス名を選択します。

    8. 「追加」をクリックして、ネットワーク・サービス名をディレクトリに追加します。

      ネットワーク・サービス名が「ディレクトリ・ネーミング」ページに追加されます。

  • Oracle Net Managerを使用したオブジェクトのエクスポート

    次の手順では、Oracle Net Managerを使用してオブジェクトをエクスポートする方法について説明します。

    1. Oracle Net Managerを起動します。「Oracle Net Managerを使用したOracle Net Servicesの構成」を参照してください。

    2. エクスポートするtnsnames.oraファイルがOracle Net Managerにロードされていない場合は、「ファイル」メニューから「ネットワーク構成を開く」を選択して、ディレクトリにエクスポートするtnsnames.oraファイルを選択します。

    3. 「ツール」メニューから「ディレクトリ」を選択し、「ネット・サービス名のエクスポート」を選択します。

      ディレクトリ・サーバー移行ウィザードが起動します。

    4. 「次へ」をクリックします。

      tnsnames.oraファイルで、複数ドメインを持つネットワーク・サービス名が検出された場合は、「ドメインの選択」ページが表示されます。ステップ5に進みます。

      ネットワーク・サービス名がドメインで修飾されていない場合、「ネット・サービス名の選択」ページが表示されます。ステップ6に進みます。

    5. エクスポート用のネットワーク・サービス名のネットワーク・ドメインを選択して、「次へ」をクリックします。

      「ネット・サービス名の選択」ページが表示されます。

    6. エクスポートするリストからネットワーク・サービス名を選択して、「次へ」をクリックします。

      「接続先コンテキストの選択」ページが表示されます。

    7. 「接続先コンテキストの選択」ページで、次を実行します。

      1. 「ディレクトリ・ネーミング・コンテキスト」リストから、Oracleコンテキストを含むディレクトリ・エントリを選択します。ディレクトリ・ネーミング・コンテキストは、1つまたは複数のOracleコンテキストを含むディレクトリ・サブツリーの一部です。

      2. 「Oracleコンテキスト」リストから、選択したネットワーク・サービス名のエクスポート先であるOracleコンテキストを選択します。

      3. 「次へ」をクリックします。

      「ディレクトリ・サーバーの更新」ページがエクスポート操作のステータスで表示されます。

    8. 「終了」をクリックして、ディレクトリ・サーバー移行ウィザードを終了します。

8.3.3 ディレクトリ・ネーミング・エントリのtnsnames.oraファイルへのエクスポート

ディレクトリ・ネーミング・エントリの作成後、そのエントリをローカルのtnsnames.oraファイルにエクスポートし、さらにそのファイルをクライアントに配布します。ディレクトリ・サーバーが一時的に使用できないときは、クライアントはローカルに保存したファイルを使用できます。

次の手順では、ローカルtnsnames.oraファイルにディレクトリ・ネーミングのエントリをエクスポートする方法について説明します。

  1. Oracle Enterprise Manager Cloud Controlの「Net Services管理」ページにアクセスします。

  2. 「管理」リストから「ディレクトリ・ネーミング」を選択し、ディレクトリ・サーバーのあるOracleホームを選択します。

  3. 「実行」をクリックします。

    「ディレクトリ・ネーミング」ページが表示されます。

  4. 「ネット・サービス名」タブをクリックします。

  5. 「簡易検索」セクションで「Oracleコンテキスト」と検索基準を選択し、特定のOracleコンテキストのネットワーク・サービス名を確認します。

    ネットワーク・サービス名が結果セクションに表示されます。

  6. 結果セクションで、「tnsnames.oraに保存」をクリックします。

    「処理中: tnsnames.oraファイルの作成」ページが表示され、作成中であることが通知されます。

8.4 外部ネーミング・メソッドの構成

外部ネーミングとは、Network Information Service (NIS)のような、サード・パーティのネーミング・サービスに格納されるネットワーク・サービス名をネットワーク・アドレスに解決する方法です。システム・インフラストラクチャの一部としてNISを使用している組織や企業のために、NIS外部ネーミングを使用してNIS内にネットワーク・サービス名とアドレスを格納するオプションが用意されています。

たとえば、ユーザーがネットワーク・サービス名(payroll)に次のようなコマンドを入力する場合です。

	SQLPLUS scott@payroll

クライアント・プログラム(またはクライアント・プログラムとしての役割を果すデータベース・サーバー)を実行するノード上のNIS外部ネーミングは、ネットワーク上にあるNISサーバーに接続し、ネットワーク・サービス名をNISサーバーに渡します。NISサーバーはネットワーク・サービス名をOracle Netアドレスに解決し、このアドレスをクライアント・プログラムまたはサーバーに返します。次に、クライアント・プログラムはこのアドレスを使用してOracle Databaseに接続します。

NISサーバーは、名前要求を処理するypservと呼ばれるプログラムを実行します。ypservプログラムでは、マップと呼ばれる特殊なファイルに異なるタイプのデータが格納されます。たとえば、パスワードはpasswd.bynameと呼ばれるマップに格納されます。Oracle Databaseサービス名は、tnsnamesと呼ばれるマップに格納されます。

ユーザーが接続文字列を使用すると、NIS外部ネーミングはRPCコールを使用してypservプログラムに接続し、Oracleネットワーク・サービス名とマップの名前を渡します。ypservプログラムは、payrollなどの名前とネットワーク・サービス名のアドレスをtnsnamesマップ内で検索します。このアドレスはクライアントに返され、クライアント・プログラムはこのアドレスを使用してデータベース・サーバーに接続します。

ノート:

一部のプラットフォームでは、NIS外部ネーミング・メソッドを使用できません。adaptersコマンドを使用し、システムでNIS外部ネーミングを使用できるかどうかを確認してください。使用できる場合、次のようにOracle Netネーミング・メソッドの下にリストされます。

$ adapters

Installed Oracle Net naming methods are:

Local Naming (tnsnames.ora)
Oracle Directory Naming
Oracle Host Naming
NIS Naming

詳細は、Oracleプラットフォーム固有のマニュアルを参照してください。

この項の内容は次のとおりです。

タスク1   NIS外部ネーミングをサポートするようにNISサーバーを構成

NIS外部ネーミングをサポートするようにサーバーを構成する前に、Oracle Databaseネットワーク・サービス名を解決する必要があるNISサーバー上でNISが構築され、動作していることを確認してください。具体的には、NISのマニュアルを参照してください。このタスクを完了するには、tnsnamesマップを既存のNISマップに追加し、tnsnamesマップが正しくインストールされていることを確認してください。

  1. 「ローカル・ネーミング・メソッドの構成」の説明に従って、tnsnames.oraファイルを作成します。

    ノート:

    tnsnames.oraファイルのコピーは、なるべくORACLE_HOME/network/adminディレクトリに保管してください。このファイルを後でもう一度使用して、ネットワーク・サービス名をNISマップにロードする必要があります。

  2. 次のようなコマンドを使用してtns2nisプログラムを使用し、tnsnames.oraファイルの内容をtnsnamesマップに変換します。

    tns2nis tnsnames.ora
    

    tns2nisプログラムは、カレント・ディレクトリからtnsnames.oraファイルを読み込みます。tnsnames.oraファイルがカレント・ディレクトリにない場合は、フルパス名を使用してファイルの場所を指定します(/etc/tnsnames.oraORACLE_HOME/network/admin/tnsnames.oraなど)。

    これによりtnsnamesマップが、現行の作業ディレクトリに書き込まれます。

    ノート:

    tns2nisプログラムは、NIS外部ネーミングで提供されます。

  3. tnsnamesマップをNISサーバーにコピーします。

  4. NISプログラムのmakedbmを使用してtnsnamesマップをインストールします。

    ノート:

    このステップは、NISの管理担当者が実行する必要があります。

    makedbmプログラムは、tnsnamesマップをNISサーバーが読取り可能な2つのファイルにマップします。これらのファイルの位置は、オペレーティング・システムによって異なります。

    たとえば、Linuxでtnsnamesマップを生成してインストールするには、rootユーザーとしてコマンドラインから次のように入力します。

    # makedbm tnsnames /var/yp/'domainname'/tnsnames 
    

    関連項目:

    詳細は、Oracleのオペレーティング・システム固有のマニュアルを参照してください。

  5. 次のコマンドを使用して、tnsnamesが正しくインストールされていることを確認します。

    ypmatch net_service_name tnsnames 
    

    たとえば、次のコマンドを入力できます。

    ypmatch example.com tnsnames 
    

    次のようにアドレスの長さ(文字数)の付いたアドレスが戻されます。

    99 (description=(address=(protocol=tcp) (host=sales)(port=1999)))
       (connect_data=(service_name=dirprod)))
タスク2   クライアントの構成

クライアントを構成するには、sqlnet.oraファイルのNAMES.DIRECTORY_PATHパラメータに指定する第1番目のネーミング・メソッドとしてNISを構成します。このパラメータは、Oracle Netが接続識別子を接続記述子に解決する際に使用できるネーミング・メソッドの順序を指定します。

  1. Oracle Net Managerを起動します。

  2. ナビゲータ・ペインで、「ローカル」メニューから「プロファイル」を選択します。

  3. 右ペインのリストから、「ネーミング」を選択します。

  4. 「メソッド」タブをクリックします。

  5. 「使用可能なメソッド」リストから「NIS」を選択し、右矢印ボタンをクリックします。

  6. 「選択メソッド」リストで「NIS」を選択し、「上へ」ボタンを使用して選択済項目をリストの最上位に移動します。

  7. 「ファイル」メニューから「ネットワーク構成の保存」を選択します。

    sqlnet.oraファイルは、NAMES.DIRECTORY_PATHパラメータで更新され、次のようにnisが最初に表示されます。

    NAMES.DIRECTORY_PATH=(nis, hostname, tnsnames)