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

戻る
戻る
 
次へ
次へ
 

10 Oracle Net Listenerの構成と管理

Oracle Net Listenerは、データベース・サーバーで実行する個別のプロセスです。これは、クライアントからの接続要求を受け取り、データベース・サーバーへの要求を管理します。この章では、リスナーがクライアントの接続を受け入れる方法を説明します。

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

10.1 Oracle Net Listener構成の概要


注意:


リスナーのバージョンは、そのリスナーを介してサービスの提供を受けるすべてのOracle Databaseの最上位のバージョンと同等以上である必要があります。

リスナーは、1つ以上のリスニング用プロトコル・アドレス、サポートされるサービスの情報および実行時の動作を制御するパラメータで構成されます。リスナーの構成は、listener.oraとネーミングされた構成ファイルに格納されます。

すべての構成パラメータにはデフォルト値が設定されているため、構成前のリスナーを起動して使用できます。デフォルトのリスナーはLISTENERとネーミングされ、起動時はサービスがサポートされていないため次のTCP/IPプロトコル・アドレスのリスニングを行います。

(ADDRESS=(PROTOCOL=tcp)(HOST=host_name)(PORT=1521))


サポートされるサービス、すなわち、リスナーによりクライアントの要求が転送されるサービスは、listener.oraファイルに構成できます。あるいは、この情報をリスナーに動的に登録することもできます。この動的登録機能は、サービス登録と呼ばれます。この登録は、データベースの初期化パラメータ・ファイルに必要な構成を持つ各データベース・インスタンスのPMONプロセス(インスタンス・バックグラウンド・プロセス)によって実行されます。動的サービス登録では、listener.oraファイルでの構成は不要です。

サービス登録には次の利点があります。

10.2 インストール中のOracle Net Listener構成

Oracle Universal Installerは、ソフトウェアのインストール時にOracle Net Configuration Assistantを起動します。Oracle Net Configuration Assistantを使用して、Oracle Databaseのリスニング用プロトコル・アドレスおよびサービス情報を構成します。

Enterprise EditionまたはStandard Editionをデータベース・サーバーへインストールする際、Oracle Net Configuration Assistantは、自動的にリスナーを構成して、Oracle DatabaseのTCP/IPリスニング用プロトコル・アドレスを所有するLISTENERという名前を設定します。Customインストールでは、Oracle Net Configuration Assistantにより、リスナー名およびプロトコル・アドレスを構成するように求められます。

また、外部プロシージャ・コールのリスニングIPCプロトコル・アドレスは、インストレーション・タイプにかかわらず自動的に構成されます。

Oracle Net Configuration Assistantでは、外部プロシージャのサービス情報もlistener.oraファイルに自動的に構成されます。

例10-1では、listener.oraファイルの例を示します。LISTENERエントリでは、LISTENERという名前のリスナーのリスニング用プロトコル・アドレスが定義され、SID_LIST_LISTENERエントリでは、リスナーLISTENERが静的にサポートするサービス情報が提供されます。

例10-1 listener.oraファイルの例

LISTENER=
  (DESCRIPTION=
    (ADDRESS_LIST=
      (ADDRESS=(PROTOCOL=tcp)(HOST=sales-server)(PORT=1521))
      (ADDRESS=(PROTOCOL=ipc)(KEY=extproc))))
SID_LIST_LISTENER=
  (SID_LIST=
    (SID_DESC=
      (SID_NAME=plsextproc)
      (ORACLE_HOME=/oracle10g)
      (PROGRAM=extproc)))

IPCプロトコルを使用している場合は、同時IPC接続要求の最大数を、必要な接続要求数と一致するように指定することで、パフォーマンスを向上できます。たとえば、listener.oraでは、次のように値を指定できます。

listener_name=(description=(address=(protocol=ipc)(key=listener0)(queuesize=50)))

関連項目:


一意の名前によるリスナーの識別およびlistener.oraファイルでの複数のリスナー・エントリの作成については、『Oracle Database Net Servicesリファレンス』を参照してください。

10.3 Oracle Net Listener構成のカスタマイズ

デフォルトの構成またはインストールした構成が特定の環境に対して適切でない場合は、Oracle Net Managerを使用してlistener.oraの構成をカスタマイズできます。

この項で説明する、これらの構成に関する項目は、次のとおりです。

10.3.1 リスニング用プロトコル・アドレスの構成

リスナーの追加プロトコル・アドレスの構成は、Oracle Enterprise Managerを使用します。

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

  2. 「管理」リストから「リスナー」を選択し、構成ファイルの場所を含むOracleホームを選択します。

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

    「リスナー」ページが表示されます。

  4. リスナーを選択し、「編集」をクリックします。

    リスナーの編集ページが表示されます。

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

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

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

    2. 「プロトコル」リストからリスナーがリスニングするように構成されているプロトコルを選択します。

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

      TCP/IP上でリスニングするためにリスナーを構成する場合は、デフォルトのポート1521を入力する必要があります。このポートを入力しない場合は、初期化パラメータ・ファイルにLOCAL_LISTENERパラメータを構成し、なんらかのネーミング・メソッドによってリスナー名を解決する必要があります。


      関連項目:


      使用しているコンピュータに複数のIPアドレスがあり、リスナーに使用可能なすべてのIPアドレスをリスニングさせる場合、TCP/IPまたはSSL付きTCP/IPを構成し、「ホスト」フィールドにコンピュータのホスト名を入力します。

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


      関連項目:


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

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

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

  6. その他のプロトコルについてもステップ5を繰り返します。


    注意:


    Oracle Net Managerを使用すると、追加のリスニング・アドレスの設定も行うことができます。詳細な操作方法は、オンライン・ヘルプを参照してください。

10.3.2 多数の同時接続要求の処理

リスナーによる同時接続要求の大量処理が予想される場合は、TCP/IPまたはIPCリスニング・エンドポイントに対してリスナー・キュー・サイズを指定できます。リスナー・キュー・サイズを指定するには、例10-2と同様に、プロトコル・アドレスの終端にあるQUEUESIZEパラメータに、予想される同時要求数を指定します。

例10-2 キュー・サイズ付きのlistener.oraファイル

LISTENER=
 (DESCRIPTION=
  (ADDRESS=(PROTOCOL=tcp)(HOST=sales-server)(PORT=1521)(QUEUESIZE=20)))

注意:


デフォルトの同時接続要求数は、オペレーティング・システムによって異なります。Solarisオペレーティング・システムとWindowsのTCP/IPのデフォルト値は、次のとおりです。
  • Solaris Operating System: 5

  • Windows XP Professional SP2: 10

  • Windows 2003 Server Enterprise Edition: 200


10.3.3 静的サービス情報の構成

リスナーはlistener.oraファイルの静的な構成情報を使用する前に、サービス登録を介して受信したデータベースやインスタンスの動的なサービス情報を使用します。

静的な構成は、外部プロシージャ、異機種間サービスのようなその他のサービスにも必要です。

表10-1では、listener.oraファイルに設定できる静的なサービス設定を説明します。

表10-1 listener.oraの静的なサービス設定

Oracle Net Managerのフィールド listener.oraファイルのパラメータ 説明

SID

SID_NAME

インスタンスのOracleシステム識別子(SID)を指定します。SID値は、初期化パラメータ・ファイルのINSTANCE_NAMEパラメータから取得できます。

サービス名

GLOBAL_DBNAME

データベース・サービスを識別します。

クライアントの接続要求を処理中に、リスナーはこのパラメータの値と、クライアント接続記述子のSERVICE_NAMEパラメータの値が一致するか試行します。クライアント接続記述子によってSIDパラメータが使用されている場合は、リスナーは値をマップしません。このパラメータは、主にOracle8リリース8.0データベース(動的なサービス登録が専用サーバーでサポートされていない場合)での構成に適しています。構成によっては、このパラメータは、Oracle8i以上のデータベース・サービスを使用する際に必要となる場合があります。

このパラメータの値は、通常、初期化パラメータ・ファイルのDB_NAMEパラメータおよびDB_DOMAINパラメータ(DB_NAME.DB_DOMAIN)の値の組合せから入手しますが、値にはクライアントがサービスを識別するのに使用する有効な名前を含めることができます。

Oracleホーム・ディレクトリ

ORACLE_HOME

UNIXでは、この設定はオプションです。インスタンスのOracleホームの場所を指定するときに使用します。このパラメータを設定しないと、リスナーに指定されているインスタンスのOracleホームが使用されます。

Windowsでは、この設定は無視されます。WindowsレジストリのHKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOMEIDにあるORACLE_HOMEパラメータで指定されているOracleホームが使用されます。



重要:

Oracle Real Application Clusters環境などで、接続時フェイルオーバーまたは透過的アプリケーション・フェイルオーバー(TAF)を使用している場合、GLOBAL_DBNAMEパラメータを設定しないでください。


関連項目:

  • Oracle Databaseの動的なサービス登録の構成については、「サービス登録の構成」を参照してください。

  • 外部プロシージャおよび異機種間サービスのリスナーを静的に構成する方法については、第13章「Oracle Net Servicesの拡張機能の使用」を参照してください。

  • Oracle Enterprise Managerの詳細は、『Oracle Enterprise Manager構成ガイド』を参照してください。


リスナーを静的に構成するには、次の手順に従います。

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

  2. 「管理」リストから「リスナー」を選択し、構成ファイルを含むOracleホームを選択します。

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

    「リスナー」ページが表示されます。

  4. リスナーを選択し、「編集」をクリックします。

    リスナーの編集ページが表示されます。

  5. 「静的データベース登録」タブをクリックし、続いて「追加」をクリックします。

    「データベース・サービスを追加」ページが表示されます。必要な情報をフィールドに入力します。


    関連項目:


    各フィールドの説明は、表10-1「listener.oraの静的なサービス設定」を参照してください。

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


    注意:


    Oracle Net Managerを使用すると、静的なサービス情報の設定も行うことができます。詳細な操作方法は、オンライン・ヘルプの「Statically Configure Database Service Information」を参照してください。

    次の例は、sales.us.example.comというデータベース・サービスに対して静的に構成されたlistener.oraファイルからの抜粋です。

    SID_LIST_listener=
    (SID_LIST=
     (SID_DESC=
      (GLOBAL_DBNAME=sales.us.example.com)
      (SID_NAME=sales)
      (ORACLE_HOME=/u01/app/oracle/11g)))
    

10.3.4 デフォルトのOracle Net Listener管理

デフォルトでは、Oracle Net Listenerではセキュリティ上の理由からローカル管理のみが可能です。さらに、ポリシーとして、リスナーは起動したユーザーのみが管理でき、これはローカル・オペレーティング・システム認証によって適用されます。したがって、user1がリスナーを起動した場合、user1のみがリスナーを管理でき、リスナーの管理を試みるその他のユーザーはエラーを受け取ります。例外となるのはスーパーユーザーのみです。

リスナーについてはローカル管理のみを許可することをお薦めしています。 ただし、ユーザーがリスナーをリモート管理する必要がある、または別のユーザーがリスナーを管理する必要がある場合は、COSTパラメータまたはパスワードを使用できます。

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

10.3.4.1 COSTパラメータおよびその他のセキュア・トランスポートの使用

特定のトランスポートのセキュリティは、これが使用されるネットワークの特性に依存しています。非保護ネットワークで行っているリスナーのリモート管理に、高度なセキュリティが必要とされる場合は、リスナーにSSLプロトコル付きTCP/IPを使用する保護プロトコル・アドレスを構成できます。リスナーのプロトコル・アドレスが複数の場合は、SSLプロトコル・アドレス付きTCP/IPがlistener.oraファイルの先頭にリストされていることを確認してください。

セキュア・トランスポートのクラス(COST)パラメータは、安全と考えられるトランスポートのリストを指定する手段であり、リスナー管理に使用できます。COSTパラメータを使用しても、登録および制御以外の接続には影響しません。

COSTパラメータでは、そのインストールに対して安全と考えられるトランスポート、およびそのリスナーの管理にセキュア・トランスポートが必要かどうか、という2つの条件が識別されます。


関連項目:


4つの各COSTパラメータの詳細は、『Oracle Database Net Servicesリファレンス』を参照してください。

10.3.4.2 Oracle Net Listenerのパスワードの構成

Oracle Net Listener Control(lsnrctl)は、パスワードを含むOracle Net Listener構成を管理するためのコマンドライン・ユーティリティです。リスナーに対してパスワードを設定し、リスナーの起動または停止、サポートされるサービスのリストの表示またはリスナー制御構成に対する変更内容の保存など、リスナー管理操作にセキュリティを確保できます。ただし、前述のように、リスナーのローカル管理はローカル・オペレーティング・システムによりデフォルトで安全です。したがって、安全なローカル管理のためにはパスワードの設定は不要であり、推奨もされていません。

10.3.4.3 Oracle Net Listenerパスワードの変更

リスナーのパスワードを変更するには、リスナー制御ユーティリティのCHANGE_PASSWORDコマンドまたはOracle Enterprise Managerを使用して、listener.oraファイルのPASSWORDS_listener_nameパラメータの暗号化パスワードを設定または変更します。PASSWORDS_listener_nameパラメータの設定が非暗号化パスワードである場合は、パスワードを変更する前にlistener.oraファイルからそのパスワードを削除する必要があります。非暗号化パスワードが削除されていない場合は、暗号化パスワードを設定できません。

Oracle Enterprise Managerによる暗号化パスワードの設定と変更は次の手順に従います。

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

  2. 「管理」リストから「リスナー」を選択し、構成ファイルの場所を含むOracleホームを選択します。

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

    「リスナー」ページが表示されます。

  4. リスナーを選択し、「編集」をクリックします。

    リスナーの編集ページが表示されます。

  5. 「認証」タブをクリックします。

  6. 「リスナー操作にパスワードが必要」をクリックします。

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


    注意:


    Oracle Net Managerを使用すると、静的なサービス情報の設定も行うことができます。詳細な操作方法は、オンライン・ヘルプの「Configure Password Authentication for the Listener」を参照してください。

CHANGE_PASSWORDコマンドにより新しい暗号化パスワードを設定するには、リスナー制御ユーティリティから次のコマンドを発行します。

LSNRCTL> CHANGE_PASSWORD
Old password: old_password
New password: new_secure_password
Reenter new password: new_secure_password
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=tpc)(HOST=sales-server)(PORT=1521)))
Password changed for LISTENER
The command completed successfully
LSNRCTL> SAVE_CONFIG

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=sales-server)(PORT=1521)))
Saved LISTENER configuration parameters.
Listener Parameter File   /oracle/network/admin/listener.ora
Old Parameter File   /oracle/network/admin/listener.bak
The command completed successfully

太字はユーザー入力を示します。入力時にはパスワードは表示されません。

CHANGE_PASSWORDコマンドにより暗号化パスワードを変更するには、次の手順に従います。

LSNRCTL> SET PASSWORD
Password: password
The command completed successfully
LSNRCTL> CHANGE_PASSWORD
Old password: old_password
New password: new_secure_password
Reenter new password: new_secure_password
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=tpc)(HOST=sales-server)(PORT=1521)))
Password changed for LISTENER
The command completed successfully
LSNRCTL> SAVE_CONFIG
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=sales-server)(PORT=1521)))
Saved LISTENER configuration parameters.
Listener Parameter File   /oracle/network/admin/listener.ora
Old Parameter File   /oracle/network/admin/listener.bak
The command completed successfully

関連項目:

  • パスワードの最低要件の詳細は、『Oracle Databaseセキュリティ・ガイド』を参照してください。

  • CHANGE_PASSWORDコマンドの詳細は、『Oracle Database Net Servicesリファレンス』を参照してください。


10.4 サービス登録の構成

サービス登録を行うことで、Oracle Databaseなどのプロセスにおいて、リスナーに対して使用できるサービスを識別できます。したがって、サービス登録はこれらのサービスのポートマッパとなります。 リスナーはlistener.oraファイルの静的な構成情報を使用する前に、サービス登録を介して受信したデータベースやインスタンスの動的なサービス情報を使用します。リスナーはlistener.oraファイルの静的な構成情報を使用する前に、サービス登録を介して受信したデータベースやインスタンスの動的なサービス情報を使用します。

動的サービス登録は、データベース初期化ファイルで構成します。動的サービス登録では、listener.oraファイルでの構成は不要です。ただし、リスナー構成がデータベース初期化ファイルと同期している必要があります。

この項で説明する、サービス登録に関連する構成に関する項目は、次のとおりです。

10.4.1 サービス登録の構成

サービス登録を正しく機能させるには、初期化パラメータ・ファイルに必ず次のパラメータが含まれている必要があります。

  • データベース・サービス名のSERVICE_NAMES

  • インスタンス名のINSTANCE_NAME

たとえば、次のように指定します。

SERVICE_NAMES=sales.us.example.com
INSTANCE_NAME=sales

SERVICE_NAMESパラメータの値は、デフォルトでグローバル・データベース名に設定されます。この名前は、インストール時またはデータベースの作成時に入力した、初期化パラメータ・ファイルのDB_NAMEパラメータおよびDB_DOMAINパラメータの値から構成されます。INSTANCE_NAMEパラメータの値は、インストール時またはデータベースの作成時に入力したSID値にデフォルトで設定されます。


関連項目:


SERVICE_NAMESパラメータおよびINSTANCE_NAMEパラメータの詳細は、『Oracle Databaseリファレンス』を参照してください。

10.4.2 ローカル・リスナーへの情報の登録

「Oracle Net Listener構成の概要」で説明したように、デフォルトのローカル・リスナーはLISTENERとネーミングされ、ポート1521でTCP/IPを使用してリスニングします。 デフォルトまたは非デフォルトのローカル・リスナーを使用して情報を登録できます。

10.4.2.1 デフォルトのローカル・リスナーへの情報の登録

デフォルトのPMONプロセスでは、TCP/IP、ポート1521のローカル・アドレス上のローカル・リスナーにサービス情報が登録されます。リスナー構成がデータベース構成と同期しているかぎり、PMONでは、別のノード上の非デフォルトであるローカル・リスナーまたはリモート・リスナーにサービス情報を登録できます。同期化とは、listener.oraファイル内のリスナーのプロトコル・アドレスおよび初期化パラメータ・ファイル内のリスナーの場所を指定することです。

10.4.2.2 非デフォルトのローカル・リスナーへの情報の登録

TCP/IPまたはポート1521を使用しないローカル・リスナーへPMONによって登録する必要がある場合は、初期化ファイルのLOCAL_LISTENERパラメータを構成して、ローカル・リスナーを指定します。

共有サーバー環境では、初期化パラメータ・ファイルのDISPATCHERSパラメータのLISTENER属性を使用して、ディスパッチャを非デフォルトのローカル・リスナーに登録することもできます。PMONでは、ディスパッチャ情報のリスナーへの登録にLOCAL_LISTENERパラメータとLISTENER属性の両方が使用できるため、リスナーの値が同じ場合は、パラメータと属性の両方の指定は不要です。

LOCAL_LISTENERパラメータを次のように設定します。

LOCAL_LISTENER=listener_alias

LISTENER属性を次のように設定します。

DISPATCHERS="(PROTOCOL=tcp)(LISTENER=listener_alias)"

listener_aliasは、データベース・サーバー上にあるtnsnames.oraファイルなどのネーミング・メソッドによってリスナー・プロトコル・アドレスに解決されます。

たとえば、リスナーがポート1521ではなくポート1421上でリスニングするように構成されている場合、初期化パラメータ・ファイルのLOCAL_LISTENERパラメータを次のように設定します。

LOCAL_LISTENER=listener1

同一のリスナー例を使用して、LISTENER属性を次のように設定します。

DISPATCHERS="(PROTOCOL=tcp)(LISTENER=listener1)"

ローカルtnsnames.oralistener1を次のように設定します。

listener1=
 (DESCRIPTION=
  (ADDRESS=(PROTOCOL=tcp)(HOST=sales-server)(PORT=1421)))

注意:

  • LOCAL_LISTENERパラメータの動的な更新には、次のようにSQL文のALTER SYSTEMを使用します。

    ALTER SYSTEM SET LOCAL_LISTENER='listener_alias'
    

    次のような文でパラメータをNULLに設定すると、TCP/IP、ポート1521のデフォルトのローカル・アドレスが使用されます。

    ALTER SYSTEM SET LOCAL_LISTENER=''
    

    ALTER SYSTEM文の詳細は、『Oracle Database SQL言語リファレンス』を参照してください。

  • LISTENER属性はLOCAL_LISTENERパラメータに優先されます。その結果、SQL文のALTER SYSTEM SET LOCAL_LISTENERはこの属性の設定値に影響を与えません。


情報を別のローカル・リスナーに登録するには、次の手順に従います。

  1. ローカル・リスナーのプロトコル・アドレスを備えたlistener.oraファイルを構成します。

  2. 初期化パラメータ・ファイルのLOCAL_LISTENERパラメータを構成して、ローカル・リスナーを指定します。

    共有サーバーを使用している場合は、初期化パラメータ・ファイルのDISPATCHERSパラメータのLISTENER属性も使用できます。

  3. tnsnames.oraファイルを介して、LOCAL_LISTENER設定またはLISTENER設定のリスナー名の別名を解決します。

10.4.3 リモート・リスナーへの情報の登録

リモート・リスナーとは、あるコンピュータ上にあるリスナーのことで、別のコンピュータ上にあるデータベース・インスタンスに接続をリダイレクトします。 リモート・リスナーは通常、Oracle Real Application Clusters(Oracle RAC)環境で使用されます。 Oracle RACなどでは、リモート・リスナーへの登録は、共有サーバーまたは専用サーバーの環境用に構成できます。

10.4.3.1専用サーバー環境でのリモート・リスナーへの情報の登録

専用サーバー環境では、PMONバックグラウンド・プロセスを有効にしてリモート・リスナーに登録する必要があります。 これは、初期化パラメータ・ファイルのREMOTE_LISTENERパラメータを構成することにより実行します。 REMOTE_LISTENER初期化パラメータの構文は次のとおりです。

REMOTE_LISTENER=listener_alias

listener_aliasは、データベース・ホスト上にあるtnsnames.oraファイルなどのネーミング・メソッドによってリスナー・プロトコル・アドレスに解決されます。

REMOTE_LISTENER初期化パラメータを動的に更新するには、次のようにSQL文のALTER SYSTEM SETを使用します。 次の例のように、次のような文でパラメータをNULLに設定すると、PMONでは、以前に情報を登録したリモート・リスナーから情報の登録が解除されます。

ALTER SYSTEM SET REMOTE_LISTENER=''

関連項目:


ALTER SYSTEM SET文の詳細は、『Oracle Database SQL言語リファレンス』を参照してください。

専用サーバー環境でリモート・リスナーに情報を登録するには、次の手順に従います。

  1. リモート・リスナーのあるホストで、リモート・リスナーのプロトコル・アドレスを備えたlistener.oraファイルを構成します。

    たとえば、リモート・リスナーがホストsales2-serverのポート1521でリスニングするとします。

  2. リクエストをリダイレクトさせたいデータベースで、データベース初期化パラメータ・ファイルのREMOTE_LISTENERパラメータをリモート・リスナーの別名に設定します。

    たとえば、データベースがホストsales1-serverにあるとします。 sales1-server上のデータベースにリクエストをリダイレクトさせるには、ホストsales1-server上のデータベースの初期化ファイルのREMOTE_LISTENERパラメータを次のように設定します。

    REMOTE_LISTENER=listener_sales2
    
  3. データベース・ホストのtnsnames.oraファイルを介して、REMOTE_LISTENER設定のリスナー名の別名を解決します。

    たとえば、sales1-server上のtnsnames.oraで、次のようにリモート・リスナーの別名listener_sales2を解決できます。

    listener_sales2=
     (DESCRIPTION=
       (ADDRESS=(PROTOCOL=tcp)(HOST=sales2-server)(PORT=1521)))
    

関連項目:


10.4.3.2共有サーバー環境でのリモート・リスナーへの情報の登録

共有サーバー環境では、専用サーバー環境に対するものと同じ登録テクニックを使用できます。 あるいは、任意のリスナーにディスパッチャを登録するように初期化パラメータ・ファイルのDISPATCHERSパラメータのLISTENER属性を設定することもできます。

LISTENER属性はREMOTE_LISTENERパラメータに優先されます。 PMONでは、ディスパッチャ情報のリスナーへの登録にREMOTE_LISTENERパラメータとLISTENER属性が使用できるため、リスナーの値が同じ場合は、パラメータと属性の両方を指定する必要がありません。

LISTENER属性の構文は次のとおりです。

DISPATCHERS="(PROTOCOL=tcp)(LISTENER=listener_alias)"

共有サーバー環境でリモート・リスナーに情報を登録するには、次の手順に従います。

  1. リモート・リスナーのあるホストで、リモート・リスナーのプロトコル・アドレスを備えたlistener.oraファイルを構成します。

    たとえば、リモート・リスナーがホストsales2-serverのポート1521でリスニングするとします。

  2. リクエストをリダイレクトさせたいデータベースで、DISPATCHERSパラメータのLISTENER属性を構成します。

    たとえば、データベースがホストsales1-serverにあるとします。 sales1-server上のデータベースにリクエストをリダイレクトさせるには、ホストsales1-server上のデータベースの初期化ファイルのDISPATCHERパラメータを次のように設定します。

    DISPATCHERS="(PROTOCOL=tcp)(LISTENER=listeners_sales2)"
    
  3. データベース・ホストのtnsnames.oraファイルを介して、LISTENER属性のリスナー名の別名を解決します。

    たとえば、sales1-server上のtnsnames.oraで、次のようにリモート・リスナーの別名listener_sales2を解決できます。

    listeners_sales2=
     (DESCRIPTION=
       (ADDRESS=(PROTOCOL=tcp)(HOST=sales2-server)(PORT=1521)))
    

    関連項目:


    DISPATCHERS初期化パラメータの詳細は、『Oracle Databaseリファレンス』を参照してください。

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

LOCAL_LISTENERパラメータ、REMOTE_LISTENERパラメータまたはLISTENER属性に指定したリスナー名の別名は、tnsnames.oraにより解決します。

ネット・サービス名のエントリは、接続記述子のCONNECT_DATAセクションなしでプロトコル・アドレス用に作成する必要があります。 Oracle Enterprise ManagerとOracle Net Managerでは、CONNECT_DATA情報なしでtnsnames.oraファイルを構成できません。 このため、tnsnames.oraファイルを手動で変更することをお薦めします。

たとえば、LOCAL_LISTENERlistener1に設定され、listener1でポート1421上のTCP/IPが使用される場合、tnsnames.oraファイルのエントリを次のように表します。

listener1=
  (ADDRESS=(PROTOCOL=tcp)(HOST=sales-server)(PORT=1421))

注意:


複数のアドレスがサポートされていますが、接続時フェイルオーバー機能とクライアント・ロード・バランシング機能はサポートされていません。


関連項目:


複数のアドレス構成については、第13章「Oracle Net Servicesの拡張機能の使用」を参照してください。

10.5 リスナー管理

いったんリスナーを構成すると、リスナー制御ユーティリティまたはOracle Enterprise Managerを使用してリスナーを管理できます。この項では、次に示すようなリスナーに対する共通の管理作業の一部を説明します。

10.5.1 リスナーの起動と停止

リスナーの停止または起動には、リスナー制御ユーティリティまたはOracle Enterprise Managerを使用します。


注意:


リスナーは、作動中のコンピュータを再起動するたびに自動的に起動するよう構成できます。 自動再起動を確立する方法については、オペレーティング・システムのマニュアルを参照してください。

リスナー制御ユーティリティを使用したリスナーの起動または停止

コマンドラインからリスナーを停止するには、次のように入力します。

lsnrctl STOP [listener_name]

listener_nameは、listener.oraファイルで定義したリスナーの名前です。LISTENERという名前のデフォルトのリスナーを使用している場合は、リスナーを識別する必要はありません。

コマンドラインからリスナーを起動するには、次のように入力します。

lsnrctl START [listener_name]

listener_nameは、listener.oraファイルで定義したリスナーの名前です。LISTENERという名前のデフォルトのリスナーを使用している場合は、リスナーを識別する必要はありません。

リスナー制御ユーティリティは、リスナーの起動に加えリスナーへの接続性を検証します。

Oracle Enterprise Managerを使用したリスナーの起動または停止

Oracle Enterprise Managerからリスナーを起動または停止するには、次の手順に従います。

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

  2. 「管理」リストから「リスナー」を選択し、構成ファイルの場所を含むOracleホームを選択します。

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

    「リスナー」ページが表示されます。

  4. リスナーを選択します。

  5. 「アクション」リストから「開始/停止」を選択します。

    「開始/停止」ページが表示されます。

  6. 選択したリスナーの現行ステータスに応じて、実行できる操作が「停止」または「開始」になります。「OK」をクリックして操作を実行します。

10.5.2 リスナーの現在のステータスの確定

リスナーの現在のステータスを表示するには、リスナー制御ユーティリティのSTATUSコマンドかOracle Enterprise Managerを使用します。ステータス出力により、リスナーの基本的なステータス情報、リスナー構成の設定の概要、リスニング用プロトコル・アドレスおよびリスナーに登録されたサービスの概要が提供されます。

リスナー制御ユーティリティを使用したリスナー・ステータスの判断

STATUSコマンドにより、リスナー構成の設定の概要、リスニング用プロトコル・アドレスおよびリスナーに登録されたサービスの概要など、リスナーの基本的なステータス情報が提供されます。

コマンドラインからリスナーのステータスを表示するには、次のように入力します。

lsnrctl STATUS [listener_name]

listener_nameは、listener.oraファイルで定義したリスナーの名前です。LISTENERという名前のデフォルトのリスナーを使用している場合は、リスナーを識別する必要はありません。

Oracle Enterprise Managerを使用したリスナー・ステータスの判断

Oracle Enterprise Managerからリスナーのステータスを表示するには、次の手順に従います。

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

  2. 「管理」リストから「リスナー」を選択し、構成ファイルの場所を含むOracleホームを選択します。

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

    「リスナー」ページが表示されます。

  4. リスナーを選択します。

  5. 「アクション」リストから「リスナー制御ステータスの表示」を選択します。

    「リスナー制御ステータス」ページが表示されます。

  6. 内容を表示して、「OK」をクリックします。

STATUSコマンドにより表10-2で説明しているセクションが出力されます。

表10-2 リスナー制御ユーティリティのSTATUSコマンド

出力セクション 説明

リスナーのステータス

次の項目を指定します。

  • リスナーの別名

  • リスナーのバージョン

  • 開始時刻と終了時刻

  • トレース・レベル

  • リスナーが、SNMPベースのネットワーク管理システムからの問合せに応答できるかどうか

  • 使用しているlistener.oraファイル

  • 構成の設定のロギングとトレース

  • listener.oraファイルにパスワードが設定されているか

リスニングのエンドポイント・サマリー

リスナーがリスニングするように構成されているプロトコル・アドレスをリストします。

サービスのサマリー

リスナーに登録されたサービスおよび各サービスに割り当てられたサービス・ハンドラのサマリーを表示します。

サービス

登録されたサービスを識別します。

インスタンス

サービスと関連付けられたインスタンスの名前とステータス、およびサービスと関連付けられたサービス・ハンドラの数を指定します。

ステータスは次のいずれかです。

  • READYステータスは、インスタンスが接続を受け入れられることを意味します。

  • BLOCKEDステータスは、インスタンスが接続を受け入れられないことを意味します。

  • READY/SECONDARYステータスは、これがOracle Real Application Clustersのプライマリ/セカンダリ構成のセカンダリ・インスタンスであり、接続を受け入れられることを意味しています。

  • UNKNOWNステータスは、インスタンスが、サービス登録を使用して動的に登録されているのではなく、listener.oraファイルに静的に登録されていることを意味します。このため、ステータスは不明です。


例10-3では、STATUSコマンドの出力例を示しています。

例10-3 リスナー制御ユーティリティのSTATUSコマンドの出力

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=net)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Solaris: Version 10.1.0.2.0
Start Date                15-NOV-2006 20:22:00
Uptime                    0 days 0 hr. 5 min. 22 sec
Trace Level               support
Security                  OFF
SNMP                      OFF
Listener Parameter File   /oracle/admin/listener.ora
Listener Log File         /oracle/network/log/listener.log
Listener Trace File       /oracle/network/trace/listener.trc
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=net)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=sales-server)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=sales-server)(PORT=2484)))

Services Summary...
Service "sales.us.example.com" has 1 instance(s).
  Instance "sales", status READY, has 3 handler(s) for this service...
Service "hr.us.example.com" has 1 instance(s).
  Instance "hr", status READY, has 2 handler(s) for this service...
The command completed successfully

10.5.3 リスナーのサービスの監視

リスナー制御ユーティリティのSERVICESコマンドにより、リスナーに登録されたサービスやインスタンス、および各インスタンスに割り当てられたサービス・ハンドラの詳細情報が提供されます。

SERVICESコマンドにより表10-3で説明しているセクションが出力されます。

表10-3 リスナー制御ユーティリティのSERVICESコマンド

出力セクション 説明

サービス

登録されたサービスを識別します。

インスタンス

サービスに関連付けられたインスタンスの名前を指定します。

 


インスタンスが接続を受け入れられるかどうかは、ステータス・フィールドにより指示されます。

  • READYステータスは、インスタンスが接続を受け入れられることを意味します。

  • BLOCKEDステータスは、インスタンスが接続を受け入れられないことを意味します。

  • READY/SECONDARYステータスは、これがOracle Real Application Clustersのプライマリ/セカンダリ構成のセカンダリ・インスタンスであり、接続を受け入れられることを意味しています。

  • RESTRICTEDステータスは、そのインスタンスが制約のあるモードであることを示しています。リスナーは、このインスタンスへの接続をすべて阻止します。

  • UNKNOWNステータスは、インスタンスが、サービス登録を使用して動的に登録されているのではなく、listener.oraファイルに静的に登録されていることを意味します。このため、ステータスは不明です。

ハンドラ

サービス・ハンドラの名前を識別します。ディスパッチャは、D000からD999までネーミングされます。専用サーバーの名前は、DEDICATEDです。

このセクションでは、サービス・ハンドラの次の項目も識別されます。

  • established: このサービス・ハンドラが確立したクライアントの接続数

  • refused: このサービス・ハンドラが拒否したクライアントの接続数

  • current: 処理中のクライアントの接続数(すなわち、現在のロード)

  • max: サービス・ハンドラが扱う最大接続数(すなわち、最大ロード)

  • state: 次に示すハンドラの状態

    READY状態は、サービス・ハンドラが新しい接続を受け入れられることを意味します。

    BLOCKED状態は、サービス・ハンドラが新しい接続を受け入れられないことを意味します。

これに従って、サービス・ハンドラの追加情報では、サービス・ハンドラがディスパッチャ、ローカルの専用サーバーまたは別のノード上のリモートの専用サーバーであるのかなどが表示されます。


例10-4では、SERVICESコマンドの出力例を示しています。

例10-4 リスナー制御ユーティリティのSERVICESコマンドの出力

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=net)))
Services Summary...
Service "sales.us.example.com" has 1 instance(s).
  Instance "sales", status READY, has 3 handler(s) for this service...
    Handler(s):
      "DEDICATED" established:0 refused:0 state:ready
         LOCAL SERVER
      "D000" established:0 refused:0 current:0 max:10000 state:ready
         DISPATCHER <machine: sales-server, pid: 1689>
         (ADDRESS=(PROTOCOL=tcp)(HOST=sales-server)(PORT=52414))
      "D001" established:0 refused:0 current:0 max:10000 state:ready
         DISPATCHER <machine: sales-server, pid: 1691>
         (ADDRESS=(PROTOCOL=tcp)(HOST=sales-server)(PORT=52415))
Service "hr.us.example.com" has 1 instance(s).
  Instance "hr", status READY, has 2 handler(s) for this service...
    Handler(s):
      "DEDICATED" established:0 refused:0 state:ready
         LOCAL SERVER
      "D000" established:0 refused:0 current:0 max:10000 state:ready
         DISPATCHER <machine: sales-server, pid: 11326>
         (ADDRESS=(PROTOCOL=tcp)(HOST=sales-server)(PORT=58361))
The command completed successfully

この出力では、2つのデータベース・サービス、sales.us.example.comおよびhr.us.example.comがリスナーに登録されていることが示されています。

sales.us.example.comへのクライアントの接続要求は、D000およびD001とネーミングされた2つのディスパッチャと1つの専用サーバーにより処理されます。すべてのハンドラは、readyのステータスを所有していて、接続を受け取れることを示しています。

hr.us.example.comへのクライアントの接続要求は、D001とネーミングされた1つのディスパッチャと1つの専用サーバーにより処理されます。

10.5.4 リスナー・ログ・ファイルの監視

次の状況が認められた場合は、次のリスナー・ログ・ファイルの参照と監視を行います。