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

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

関連項目:

ネーミング・メソッドの概要については、「ネーミング・メソッドの理解」を参照してください

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

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

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

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

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

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

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

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

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

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

構文要素 説明

//

//を使用して、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

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

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

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

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

instance_name

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

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

関連項目:

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

例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.1.1 簡易接続ネーミング・メソッドの例

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

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

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

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

ホスト名は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)))

8.1.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に進みます。リストされている場合は、ステップ7に進みます。

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

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

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

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

    NAMES.DIRECTORY_PATH=(ezconnect, tnsnames)

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

Oracle Database 12cのホスト・ネーミング・メソッドで提供されているように、ホスト名に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-2は、DESCRIPTIONに含まれる接続記述子にマップされるネットワーク・サービス名salesを示しています。DESCRIPTIONセクションにはプロトコル・アドレスが含まれており、接続先データベース・サービスを識別します。この例では、プロトコルはTCP/IP、ポートは1521です。

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

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

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

例8-3 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スキーマのリリースを確認します。

    関連項目:

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

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

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

ノート:

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

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

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

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

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

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

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

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

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

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

      宛先サービス名がOracle9iデータベース以降の場合は、「サービス名の使用」を選択し、「サービス名」フィールドにサービス名を入力します。

      関連項目:

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

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

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

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

      関連項目:

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

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

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

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

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

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

      関連項目:

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

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

      関連項目:

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

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

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

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

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

    関連項目:

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

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

ノート:

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

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

  1. Oracle Enterprise Manager Cloud Controlの「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管理」ページにアクセスします。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  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管理」ページにアクセスします。

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

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

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

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

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

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

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

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

次の手順では、Oracle Net Managerを使用して第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)
タスク6   リスナーの構成

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

関連項目:

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

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

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

CONNECT username@connect_identifier

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

関連項目:

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

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

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

関連項目:

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

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

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

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

ノート:

これらのタスクでは、ディレクトリ・サーバーがインストールされて実行中であると想定しています。

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

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

たとえば、tnsnames.oraファイルがドメイン構造example.comをサポートしていて、このドメインをディレクトリにレプリケートする場合は、図8-1に示すように、このディレクトリに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コンポーネントのエントリとともに、ネットワーク・オブジェクト・エントリが格納されます。図8-2cn=OracleContextは、dc=example,dc=comの下に作成されます。

図8-2 Oracleコンテキスト

図8-2の説明が続きます
「図8-2 Oracleコンテキスト」の説明

関連項目:

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

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

関連項目:

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

タスク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管理」ページにアクセスします。

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

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

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

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

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

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

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

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

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

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

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

    次の手順では、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.6 ディレクトリ・ネーミング・エントリの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.7 外部ネーミング・メソッドの構成

外部ネーミングとは、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)