ヘッダーをスキップ
Oracle Database Net Services管理者ガイド
11g リリース1(11.1)
E05725-04
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

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

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

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

8.1 ネーミング・メソッドの構成の概要

サービスに接続するために、クライアントでは、接続文字列接続識別子が使用されます。この接続識別子は、接続記述子または接続記述子にマップする単純な名前でも構いません。接続記述子には次のものが含まれます。

単純な名前は、ネーミング・メソッドによって接続記述子に解決されます。ネーミング・メソッドは、次の手順で構成します。

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

  2. 接続記述子を単純な名前にマップします。

  3. そのネーミング・メソッドを使用するクライアントを構成します。

8.2 接続記述子の理解

接続記述子は、1つまたは複数のリスナーのプロトコル・アドレスおよび宛先サービスに対する接続情報により構成されます。

次の例では、salesという単純な名前にマップされた接続記述子を示します。

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

ADDRESS部分には、リスナー・プロトコル・アドレスが含まれ、CONNECT_DATA部分には、宛先サービス情報が含まれます。 この例では、宛先サービスは、sales.us.example.comという名前のデータベース・サービスです。

Oracle9iまたはOracle8iデータベース・サービスへの接続記述子を作成する際は、SERVICE_NAMEパラメータを使用して、そのサービス名を必ず指定する必要があります。オプションで、INSTANCE_NAMEパラメータを使用すれば、インスタンスを次のように特定できます。

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

これらのパラメータの値は、初期化パラメータ・ファイルのSERVICE_NAMESおよびINSTANCE_NAMEパラメータから取得されます。SERVICE_NAMESでは末尾に「S」が使用される点に注意してください。一般的に初期化パラメータ・ファイルのSERVICE_NAMESパラメータは、インストール中またはデータベース作成時に入力されたデータベース名とドメイン名が含まれる名前であるグローバル・データベース名です。 たとえば、sales.us.example.comには、salesのデータベース名とus.example.comのドメインがあります。初期化パラメータ・ファイルのINSTANCE_NAMEパラメータは、インストール中またはデータベース作成中に入力されたSIDが、デフォルトで設定されます。

Oracle Databaseの接続記述子を作成する際、SIDパラメータを使用して、そのサービスを識別します。次の例では、salesというSIDのOracle Databaseへの接続記述子を示します。

sales=
 (DESCRIPTION=
  (ADDRESS=(PROTOCOL=tcp)(HOST=sales-server)(PORT=1521)) 
  (CONNECT_DATA=
     (SID=sales)))

8.2.1 ネーミング・メソッド

表8-1では、Oracle Netがサポートするネーミング・メソッドを説明します。

表8-1 ネーミング・メソッド

ネーミング・メソッド 説明

簡易接続ネーミング

構成を行うことなく、データベース・サーバーにクライアントを接続できます。クライアントは、ホスト名、オプション・ポート、サービス名が含まれる簡単なTCP/IPアドレスの接続文字列を使用します。

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

この方法は、単純なTCP/IP環境にお薦めします。

関連項目: 「簡易接続ネーミング・メソッドの使用」

ローカル・ネーミング

クライアントのtnsnames.oraファイルに格納されたネット・サービス名を解決します。

ローカル・ネーミングは、変更が少ない少数のサービスを提供する単純な分散ネットワークに最も適しています。

関連項目: 「ローカル・ネーミング・メソッドの構成」

ディレクトリ・ネーミング

集中化されたLDAP準拠のディレクトリ・サーバーに格納されたデータベースのサービス名、ネット・サービス名またはネット・サービス別名を解決します。

関連項目: 「ディレクトリ・ネーミング・メソッドの構成」

外部ネーミング

サード・パーティ製のネーミング・サービスに格納されているサービス情報を解決します。

関連項目: 「外部ネーミング・メソッドの構成」



関連項目:


「ネーミング」

8.3簡易接続ネーミング・メソッドの使用

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

このネーミング・メソッドを利用することで、データベースへのTCP/IP接続を簡単に行えるようになります。これにより、クライアントは、データベースのホスト名に加え、次に示すようにオプションのポートやサービス名を使用してデータベース・サーバーに接続できるため、ホスト・ネーミング・メソッドの機能を拡張できます。

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

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

CONNECT username@host/ORCL
Enter password: password

表8-2では、簡易接続構文要素とそれぞれの説明を示しています。

表8-2 簡易接続ネーミング・メソッドのための接続識別子

構文要素 説明

//


オプション。URLに//を指定します。

URLまたはJDBCに接続するには、接続識別子の前にダブル・スラッシュ(//)を付けます。たとえば、次のように指定します。

scott@//sales-server
Enter password: password

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

SQL> CONNECT scott@sales-server
Enter password: password
SQL> CONNECT scott@//sales-server
Enter password: password

host

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

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

port

オプション。リスニング・ポートを指定します。

デフォルトは、1521です。

service_name

オプション。データベースのサービス名を指定します。

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

関連項目: DEFAULT_SERVICE_listener_nameパラメータの構成の詳細は、『Oracle Database Net Servicesリファレンス』を参照してください。

server

オプション。使用するデータベース・サーバーのタイプを指定します。

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

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

注意: Oracle Call Interfaceのマニュアルでは、serverconnect_typeと呼ばれています。

関連項目: DEFAULT_SERVICE_listener_nameパラメータの構成の詳細は、『Oracle Database Net Servicesリファレンス』を参照してください。

instance_name

アクセスするデータベース・インスタンスを識別するために使用します。

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

関連項目: INSTANCE_NAME初期化パラメータの構成の詳細は、『Oracle Database Net Servicesリファレンス』を参照してください。


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

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

例8-1の接続文字列は、クライアントをデータベース・サービスのsales.us.example.comに接続します。このとき、1521のリスニング・エンドポイントは、データベース・サーバーsales-serverにあります。

例8-1 簡易接続文字列

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

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

例8-1の接続文字列は、次のような接続記述子に変換されます。

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

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

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

この項で説明する項目は、次のとおりです。

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

例8-2に、ホストのみを指定する接続文字列を示します。ここでは、ホスト名はsales-serverです。

例8-2 ホスト指定の簡易接続文字列

sales-server

例8-2の接続文字列は、次のような接続記述子に変換されます。

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

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

例8-3に、ホストとポートの両方を指定する接続文字列を示します。ここでは、ホスト名はsales-server、ポート番号は3456です。

例8-3 ホストおよびポート指定の簡易接続文字列

sales-server:3456

例8-3の接続文字列は、次のような接続記述子に変換されます。

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

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

例8-4に、ホストおよびサービス名を指定する接続文字列を示します。ここでは、ホスト名はsales-server、サービス名はsalesです。

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

sales-server/sales

例8-4の接続文字列は、次のような接続記述子に変換されます。

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

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

例8-5に、ホスト、サービス名およびサーバーを指定する接続文字列を示します。 ここでは、ホスト名がsales-server、サービス名がsales、サーバーがdedicated、インスタンス名がinst1です。

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

sales-server/sales:dedicated/inst1

例8-5の接続文字列は、次のような接続記述子に変換されます。

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

8.3.1.5 ホストおよびインスタンス名指定の簡易接続文字列

例8-6に、ホストおよびインスタンス名を指定する接続文字列を示します。ここでは、ホスト名はsales-server、インスタンス名はinst1です。

例8-6 ホストおよびインスタンス名指定の簡易接続文字列

sales-server//inst1

例8-6の接続文字列は、次のような接続記述子に変換されます。

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

8.3.2 クライアントでの簡易接続ネーミングの使用

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

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

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

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

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

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

簡易接続ネーミング・メソッドが構成されていることを検証する手順は、次のとおりです。

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

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

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

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

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

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

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

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

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

    NAMES.DIRECTORY_PATH=(ezconnect, tnsnames)
    

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

Oracle Database 11gのホスト・ネーミング・メソッドで提供されているように、ホスト名にDNS別名をオプションとして構成できます。 ホスト・ネーミングでは、クライアントは、次のパターンを使用する接続文字列を使用します。

CONNECT username@DNSalias
Enter password: password

DNSの別名を構成するには、次の手順に従います。

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

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

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

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

    データベースがリスナーを検出できない場合は、次の例に示すように、GLOBAL_DBNAMEパラメータを使用してlistener.oraファイルを構成する必要があります。

    SID_LIST_listener=
    (SID_LIST=
     (SID_DESC=
      (GLOBAL_DBNAME=sales.example.com)
      (SID_NAME=sales)
      (ORACLE_HOME=/u01/app/oracle))
    
  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.4 ローカル・ネーミング・メソッドの構成

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

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

この例では、salesは、DESCRIPTIONに含まれる接続記述子にマップされるネット・サービス名です。DESCRIPTIONにはプロトコル・アドレスが含まれており、接続先データベース・サービスを識別します。

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

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

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

この項で説明する項目は、次のとおりです。

8.4.1.1 AdministratorまたはRun-timeインストレーション

Oracle Net Configuration Assistantでは、Oracle Databaseサービスへ接続するために、tnsnames.oraファイル中のネット・サービス名を構成するように求められます。

8.4.1.2 Customインストール

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

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

ネット・サービス名は、インストール後、いつでもtnsnames.oraファイルに追加できます。ローカル・ネーミング・メソッドを構成するには、次の作業を実行します。

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

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

タスク3: 構成情報の配布

タスク4: リスナーの構成

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


注意:


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

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

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

Oracle Enterprise Manager

Oracle Enterprise Managerを使用してtnsnames.oraファイルのネット・サービス名を構成する手順は次のとおりです。

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

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

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

    「ローカル・ネーミング」ページが表示されます。

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

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

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

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

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

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

      宛先サービスがOracle8i以降のリリースのデータベースの場合は、「サービス名の使用」を選択し、「サービス名」フィールドにサービス名を入力します。宛先サービスがOracle8データベースの場合は、「SIDの使用」を選択し、インスタンスのOracleシステム識別子を「SID」フィールドに入力します。


      関連項目:


      使用するサービス名文字列の詳細は、「接続記述子の理解」を参照してください。

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

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


      関連項目:


      共有サーバー構成の詳細は、第12章「ディスパッチャの構成」を参照してください。

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

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

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

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

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


      関連項目:


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

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


      関連項目:


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

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

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

  8. 「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. リリースの選択、宛先サービスの入力、またオプションでデータベース接続タイプの選択を実行します。

    宛先サービスがOracle8i以降のリリースのデータベースの場合は、Oracle8i以降を選択し、「サービス名」フィールドにサービス名を入力します。宛先サービスがOracle8データベースの場合は、Oracle8以前を選択し、インスタンスのOracleシステム識別子を「データベースSID」フィールドに入力します。


    関連項目:


    使用するサービス名文字列の詳細は、「接続記述子の理解」を参照してください。

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


    関連項目:


    共有サーバー構成の詳細は、第12章「ディスパッチャの構成」を参照してください。

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

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

  12. 「テスト」をクリックすると、そのネット・サービス名が機能するかどうかを確認できます。また、「終了」をクリックすると、「Netサービス名ウィザード」を終了できます。

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

    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. ウィザードのプロンプトとオンライン・ヘルプに従って、ネット・サービス名を作成します。

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

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

ローカル・ネーミングを第1番目のネーミング・メソッドに指定するには、次の手順に従います。

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

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

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

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

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

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

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

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

    NAMES.DIRECTORY_PATH=(tnsnames, hostname)
    

8.4.2.3 タスク3: 構成情報の配布

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

8.4.2.4 タスク4: リスナーの構成

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


関連項目:


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

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

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

CONNECT username@net_service_name
Enter password: password

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

ディレクトリ・ネーミング・メソッドでは、Oracle Internet DirectoryやMicrosoft Active DirectoryなどのLDAP準拠ディレクトリ・サーバーに含まれる接続記述子に接続識別子をマップします。ディレクトリでは、データベース・サービスおよびネット・サービス名の集中管理が提供され、サービスの追加または再配置が容易になります。

データベース・サービス・エントリは、インストール時にDatabase Configuration Assistantを使用して作成されます。ネット・サービス名とネット・サービス別名エントリは、Oracle Enterprise ManagerまたはOracle Net Managerを使用して作成できます。データベース・サービスのエントリとネット・サービス名のエントリのOracle Net属性を変更するには、Oracle Enterprise ManagerまたはOracle Net Managerを使用します。

クライアントは、データベースへの接続にこれらのエントリを使用できます。

この項で説明する項目は、次のとおりです。

8.5.1 ディレクトリ・ネーミング・メソッドの構成ステップ

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

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

タスク2: ネット・エントリの作成または変更

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

タスク4: リスナーの構成

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

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

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

  1. コンピュータにOracle Net Serviceソフトウェアの最新バージョンがインストールされていることを確認します。

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


    関連項目:


    ディレクトリ・サーバーの使用の構成手順は、『Oracle Internet Directory管理者ガイド』を参照してください。

8.5.1.2 タスク2: ネット・エントリの作成または変更

この項で説明する項目は、次のとおりです。

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


注意:


クライアントを構成する場合は、Database Configuration Assistantにより作成されたデータベース・サービス・エントリではなく、ネット・サービス名を使用するように構成できます。ネット・サービス名を作成するには、Oracle Enterprise Managerを使用します。

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

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

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

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

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

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

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

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

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

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

      宛先サービスがOracle9iまたはOracle8iデータベース用の場合は、「サービス名の使用」を選択し、「サービス名」フィールドにサービス名を入力します。宛先サービスがOracle8データベースの場合は、「SIDの使用」を選択し、インスタンスのOracleシステム識別子を「SID」フィールドに入力します。


      関連項目:


      使用するサービス名文字列の詳細は、「接続記述子の理解」を参照してください。

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

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


      関連項目:


      共有サーバー構成の詳細は、第12章「ディスパッチャの構成」を参照してください。

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

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

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

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

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


      関連項目:


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

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


      関連項目:


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

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

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

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

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


    関連項目:


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


注意:


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

ディレクトリへのデータベース登録が完了すると、Database Configuration Assistantによってディレクトリにデータベース・サービス・エントリが作成されます。デフォルトでは、このエントリに、プロトコル・アドレス経由のリスナーの場所を含むネットワーク・ルート情報が含まれます。この情報が削除された場合は再作成できます。また、既存のネットワーク・ルート情報も変更できます。

データベース・サービスのネットワーク・ルート情報を作成または変更するには、Oracle Enterprise Managerを使用します。

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

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

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

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

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

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

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

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

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


注意:

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

  • ネット・サービス別名を作成したり、アクセスするには、Oracleホームが少なくとも9.2にアップグレードされていることを確認してください。

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


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

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

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

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


    関連項目:


    ネット・サービス別名の概要については、「ネット・サービス別名のエントリ」を参照してください。

データベース・サービスのネットワーク・ルート情報を作成または変更するには、Oracle Enterprise Managerを使用します。

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

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

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

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

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

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

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

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

  7. 参照サービスの詳細セクションで、表8-3に記載されているフィールドに情報を入力します。

    表8-3 「ネット・サービス別名の作成」の「参照サービスの詳細」フィールド

    フィールド 説明

    Oracleコンテキスト

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

    参照サービス名

    データベース・サービスのDNまたはネット・サービス名を選択します。


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

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

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

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

ディレクトリ・ネーミングを第1番目のネーミング・メソッドに指定するには、次の手順に従います。

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

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

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

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

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

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

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

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

    NAMES.DIRECTORY_PATH=(ldap, tnsnames, hostname)
    

8.5.1.4 タスク4: リスナーの構成

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


関連項目:


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

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

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

CONNECT username@connect_identifier
Enter password: password

エントリのディレクトリの場所と一致しないディレクトリ・エントリがデフォルトに構成されているクライアントは、接続文字列中の接続識別子を使用できません。かわりに、これらの接続では、エントリの識別名またはその絶対名が必要です。


関連項目:


8.5.2 OracleNetAdminsグループの管理

OracleNetAdminscn=OracleOracleNetAdmins,cn=OracleContext,...)のメンバーには、Oracle Netのオブジェクトと属性に対する作成、変更および読取りのアクセス権限があります。Oracle Net Configuration Assistantは、Oracleコンテキストの作成時に、このグループに対するこれらのアクセス権を作成します。

この項で説明する項目は、次のとおりです。

OracleNetAdminsグループに対するアクセスの確立

OracleNetAdminsグループの所有者は、次の機能を実行できます。

  • OracleNetAdminsグループへのメンバーの追加または削除

  • OracleNetAdminsグループの所有者であるグループの追加または削除

デフォルトでは、OracleNetAdminsグループの所有者はOracleNetAdminsグループ自体です。つまり、OracleNetAdminsグループのメンバーは、他のメンバーをOracleNetAdminsグループに追加したり、グループから削除できます。OracleNetAdmins以外のグループがOracleNetAdminsの他のメンバーを追加または削除できるようにする場合は、OracleNetAdminsグループの所有者属性を別のグループに変更します。

所有者は、cn=scottなどの個別のユーザー・エントリではなく、グループ・エントリである必要があります。このグループ・エントリは、LDAPスキーマ・オブジェクト・クラスのGroupOfUniqueNamesorclPriviledgeGroupで構成されたグループ・エントリです。

OracleNetAdminsグループの所有者としてグループを追加する手順は、次のとおりです。

  1. 次の手順に従って、LDAP Data Interchange Format(LDIF)ファイルを作成します。

    1. 所有者として追加するグループを指定します。

      次のサンプルのLDIFファイルを使用できます。cn=OracleNetAdminsに適切な識別名(DN)を入力し、追加するグループのDNを入力します。

      dn: cn=OracleNetAdmins,cn=OracleContext,...
          changetype: modify
          add: owner
          owner: <DN of group to add>
      
    2. オプションで、所有者として削除するグループを指定します。

      dn: cn=OracleNetAdmins,cn=OracleContext,...
          changetype: modify
          add: owner
          owner: <DN of group to add>
      

      たとえば、次のLDIF構文を使用して、所有権をOracleNetAdminsグループからcn=ExampleSecurityAdminsという名前のグループに変更します。このグループは、Oracleコンテキストの内部でも外部でも構いません。この例では、Oracleコンテキストの外部にあります。

      dn: cn=OracleNetAdmins,cn=OracleContext,...
           changetype: modify
           add: owner
           owner: cn=ExampleSecurityAdmins
      
      dn: cn=OracleNetAdmins,cn=OracleContext,...
           changetype: modify
           delete: owner
           owner: cn=OracleNetAdmins,cn=OracleContext,...
      
  2. ユーザーを削除するには、コマンドラインから次のldapmodify構文を入力します。

    $ ldapmodify -h directory_host -p port -D binddn -q -f ldif_file
    

表8-4 ldapmodify引数

引数 説明

-h directory_host

ディレクトリ・サーバー・ホストを指定します。

-p port

ディレクトリ・サーバーのリスニングTCP/IPポートを指定します。このオプションを指定しない場合、デフォルト・ポート(389)が使用されます。

-D binddn

ディレクトリ管理者またはユーザーDNを指定します。

-q

単一のバインド・パスワードを次の行に入力するよう求められます。

-f ldif_file

入力ファイル名を指定します。


OracleNetAdminsグループへのユーザーの追加

ldapmodifyを使用してOracleNetAdminsグループへユーザーを追加する手順は、次のとおりです。

  1. OracleNetAdminsグループにユーザーを追加することを指定するLDIFファイルを作成します。

    次のサンプルのLDIFファイルを使用できます。cn=OracleNetAdminsに対する適切なDNおよび追加するユーザーを使用します。

    dn: cn=OracleNetAdmins,cn=OracleContext,...
    changetype: modify
    add: uniquemember
    uniquemember: <DN of user being added to group>
    
  2. ユーザーを追加するには、コマンドラインから次のldapmodify構文を入力します。

    $ ldapmodify -h directory_host -p port -D binddn -q -f ldif_file
    

OracleNetAdminsグループからのユーザーの削除

ldapmodifyを使用してOracleNetAdminsグループからユーザーを削除する手順は、次のとおりです。

  1. OracleNetAdminsグループからユーザーを削除することを指定するLDIFファイルを作成します。

    次のサンプルのLDIFファイルを使用できます。cn=OracleNetAdminsに対する適切なDNおよび削除するユーザーを入力します。

    dn: cn=OracleNetAdmins,cn=OracleContext,...
    changetype: modify
    delete: uniquemember
    uniquemember: <DN of user being deleted from group>
    
  2. ユーザーを削除するには、コマンドラインから次のldapmodify構文を入力します。

    $ ldapmodify -h directory_host -p port -D binddn -q -f ldif_file
    

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

この項では、tnsnames.oraファイルに格納されたデータをディレクトリ・サーバーにエクスポートする方法を説明します。

8.5.3.1 tnsnames.oraファイルからのネット・サービス名のエクスポート

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

tnsnames.oraファイルからデータをエクスポートする作業を次に示します。

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

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

タスク3: ディレクトリ・サーバーの使用の構成

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


注意:


これらの作業を行う前には、ディレクトリ・サーバーがインストールされ実行されている必要があります。

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

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

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

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

図8-1の説明は次にあります。
画像の説明

tnsnames.oraで現在使用しているドメイン構造をレプリケートできます。または、まったく別の構造を作成することもできます。まったく別の構造を導入すると、クライアントが接続文字列にネット・サービス名を入力する方法が変更されます。 このため、オラクル社は、構造を変更する前に相対名および絶対名を発行することをお薦めします。


関連項目:


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

タスク1で作成した各DITの位置の下に、Oracleコンテキストを作成します。Oracleコンテキストには、cn=OracleContextという相対識別名(RDN)が付けられます。Oracleコンテキストには、その他のOracleコンポーネントのエントリとともに、ネットワーク・オブジェクト・エントリが格納されます。 図8-2cn=OracleContextは、dc=example,dc=comの下に作成されます。

Oracleコンテキストを作成するには、Oracle Internet Directory Configuration Assistantを使用して、図8-2と同様のDIT構造を作成する必要があります。

図8-2 Oracleコンテキスト

図8-2の説明は次にあります。
画像の説明


関連項目:

  • Oracleコンテキストの詳細は、第4章「構成管理の概念」を参照してください。

  • Oracleコンテキストの作成手順は、『Oracle Internet Directory管理者ガイド』を参照してください。


タスク3: ディレクトリ・サーバーの使用の構成

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


関連項目:


ディレクトリ・サーバーの使用の構成手順は、『Oracle Internet Directory管理者ガイド』を参照してください。

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

tnsnames.oraファイルのネット・サービス名をディレクトリにエクスポートするには、Oracle Enterprise ManagerまたはOracle Net Managerを使用します。

Oracle Enterprise Manager

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

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

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

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

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

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

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

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

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

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

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

Oracle Net Manager

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

  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.5.4 ディレクトリ・ネーミング・サーバーでの複数のデフォルト・コンテキストの作成

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

orclCommonContextMap属性が定義されていない場合は、orclDefaultSubscriberがデフォルトとして使用されます。orclCommonContextMapが定義されている場合は、クライアントは、DNSドメインに関連付けられているデフォルトのoracleContextorclCommonContextMapから検索します。複数のデフォルト・コンテキストを有効にするには、デフォルトのoracleContextとして使用するドメインとDN間の関連付けリストを付けて、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エントリは、次のように改行を含めずに入力する必要があります。

orclCommonContextMap:(contextMap=(domain_map=(domain=us.example.com)(DN="
dc=example,dc=com"))(domain_map=(domain=uk.example.com)(DN="dc=sales,dc=com")))

関連項目:


コンテキストのマッピングのためにディレクトリを構成する方法は、『Oracle Internet Directory管理者ガイド』を参照してください。

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

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

ディレクトリ・ネーミング・エントリをローカルのtnsnames.oraファイルにエクスポートするには、次のようにOracle Enterprise Managerを使用します。

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

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

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

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

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

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

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

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

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

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

外部ネーミングとは、Oracle以外のネーミング・サービスに格納されるネット・サービス名をネットワーク・アドレスに解決する方法です。外部ネーミング・サービスには次のものが含まれます。

8.6.1 Network Information Service(NIS)

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

ユーザーが次のようなコマンドを指定した場合を考えます。

     sqlplus scott@payroll
Enter password: password

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

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

ユーザーが接続文字列を発行すると、NIS外部ネーミングはRPCコールを使用してypservプログラムに接続し、Oracleネット・サービス名のpayrollとマップの名前であるtnsnamesを渡します。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プラットフォーム固有のマニュアルを参照してください。


この項で説明する項目は、次のとおりです。

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

NIS外部ネーミングをサポートするようにサーバーを構成する前に、Oracle Databaseネット・サービス名を変換する必要があるNISサーバー上でNISが構築され、動作していることを確認してください。具体的には、NISのマニュアルを参照してください。

このタスクには、次の追加タスクが含まれます。

8.6.1.1.1 NISマップの既存セットへのtnsnamesマップの追加

NISマップの既存セットにtnsnamesマップを追加する手順は、次のとおりです。

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


    注意:


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

  2. tns2nisプログラムを使用して、tnsnames.oraファイルの内容をtnsnamesに変換します。


    注意:


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

    たとえば、引数を1つ付けてコマンドラインでtns2nisを実行します。

    tns2nis tnsnames.ora
    

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

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

  3. tnsnamesがNISサーバーにない場合は、tnsnamesをNISサーバーにコピーします。

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


    注意:


    この手順は、NISの管理担当者が行ってください。

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


    関連項目:

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

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

    # makedbm tnsnames /var/yp/'domainname'/tnsnames
    
8.6.1.1.2 tnsnamesマップが適切にインストールされていることの確認

次の形式でコマンドを入力することにより、NISサーバーをテストしてマップが適切にインストールされていることを確認できます。

ypmatch net_service_name tnsnames

たとえば、次のように入力できます。

ypmatch example.com tnsnames

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

99 (description=(address=(protocol=tcp)
 (host=garlic)(port=1999)))
 (connect_data=(service_name=dirprod)))

8.6.1.2 タスク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)
    

8.6.2 分散コンピューティング環境(DCE)セル・ディレクトリ・サービス(CDS)


関連項目:


セル・ディレクトリ・サービス(CDS)の構成方法の詳細は、『Oracle Database Advanced Security管理者ガイド』を参照してください。