4 プロトコル・アドレス構成

ネットワーク・オブジェクトは、プロトコル・アドレスによって識別されます。接続が確立されると、クライアントとリクエストの受信者(リスナーまたはOracle Connection Manager)が同じプロトコル・アドレスで構成されます。

クライアントは、このアドレスを使用して接続リクエストを特定のネットワーク・オブジェクトが存在する場所に送信し、受信者はこのアドレスでリクエストのリスニングを行い、クライアント情報が自分の持っているアドレス情報に一致するかどうかに基づいて接続を許可します。

この章のトピックは、次のとおりです:

4.1 プロトコル・アドレス

プロトコル・アドレスは、ADDRESSADDRESS_LISTの要素で構成されています。

4.1.1 ADDRESS

用途

プロトコル・アドレスを定義します。

使用上の注意

このパラメータは、ADDRESS_LISTパラメータまたはDESCRIPTIONパラメータの下に配置します。DESCRIPTIONは、tnsnames.oraファイルまたはlistener.oraファイルで使用されます。

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

関連項目:

4.1.2 ADDRESS_LIST

用途

共通の特性を共有するプロトコル・アドレスのリストを定義します。

使用上の注意

複数のアドレスを指定する場合、このパラメータは必須ではありません。

 (ADDRESS_LIST=
  (LOAD_BALANCE=on)
  (ADDRESS=
   (PROTOCOL=tcp)
   (HOST=sales-server)
   (PORT=1521))
  (ADDRESS=
   (PROTOCOL=tcp)
   (HOST=hr-server)
   (PORT=1521)))

4.2 プロトコル・パラメータ

リスナーおよびOracle Connection Managerは、プロトコル・アドレスによって識別されます。

次の表に、Oracleプロトコル・サポートで使用するパラメータを示します。

表4-1 プロトコル固有のパラメータ

プロトコル パラメータ 説明

IPC

PROTOCOL

ipcを値として指定します。

IPC

KEYPATH

UNIX変数では、IPCプロトコルはUNIXドメイン・ソケットを使用し、このソケットはクライアント/サーバー通信用の内部ファイルを作成します。パラメータkeypathは、このファイルが作成される場所を指定します。keypathを使用する場合、クライアント側およびリスナー側でバージョン18以上の同じ値を使用してください。

IPC

KEY

サービスの一意の名前を指定します。サービス名またはサービスのOracleシステム識別子(SID)を使用することをお薦めします。

例:

(PROTOCOL=ipc)(KEY=sales)

名前付きパイプ

PROTOCOL

nmpを値として指定します。

名前付きパイプ

SERVER

Oracleサーバーの名前を指定します。

名前付きパイプ

PIPE

データベース・サーバーへの接続に使用されるパイプ名を指定します。これは、Named Pipesでサーバーに指定したものと同じPIPEキーワードです。これには任意の名前を指定できます。

例:

(PROTOCOL=nmp)(SERVER=sales)(PIPE=dbpipe0)

SDP

PROTOCOL

sdpを値として指定します。

SDP

HOST

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

SDP

PORT

リスニング・ポート番号を指定します。

例:

(PROTOCOL=sdp)(HOST=sales-server)(PORT=1521)
(PROTOCOL=sdp)(HOST=192.0.2.204)(PORT=1521)

TCP/IP

PROTOCOL

tcpを値として指定します。

TCP/IP

HOST

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

TCP/IP

PORT

リスニング・ポート番号を指定します。

例:

(PROTOCOL=tcp)(HOST=sales-server)(PORT=1521)
(PROTOCOL=tcp)(HOST=192.0.2.204)(PORT=1521)

SSL付きTCP/IP

PROTOCOL

tcpsを値として指定します。

SSL付きTCP/IP

HOST

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

SSL付きTCP/IP

PORT

リスニング・ポート番号を指定します。

例:

(PROTOCOL=tcps)(HOST=sales-server)(PORT=2484)
(PROTOCOL=tcps)(HOST=192.0.2.204)(PORT=2484)

Exadirect

PROTOCOL

値にexadirectを指定します。

Exadirect

HOST

インフィニバンド・インタフェースのIPアドレスを指定します。

Exadirect

PORT

リスニング・ポート番号を指定します。

例:

(PROTOCOL=exadirect)(HOST=sales-server)(PORT=2484)
(PROTOCOL=tcps)(HOST=192.0.2.204)(PORT=1522)

4.3 お薦めするポート番号

表4-2に、推奨されるポート番号をリストします。

表4-2 お薦めするポート番号

ポート 説明

1521

クライアントがリスナーに接続するためのデフォルトのリスニング・ポートです。

このポート番号は、公式の登録ポート番号(TCP/IPの場合は2483番、SSL付きTCP/IPの場合は2484番)に変更される可能性があります。

1521

クライアントがOracle Connection Managerに接続する際の、デフォルトで公式登録のリスニング・ポートです。

1830

管理コマンドがOracle Connection Managerに接続する際の、デフォルトで公式登録のリスニング・ポートです。

4.4 ポート番号の制限

Oracleでは、1から65535のポート番号を許可しています。ただし、多くのオペレーティング・システムで、1023以下のポート番号が予約されています。たとえば、あるオペレーティング・システムでは、特権プロセスのみが1023以下のポートでTCP接続をリスニングできます。

リスナーを1024未満のポート番号でリスニングするように構成する必要がある場合、次の手順を実行します。

注意:

使用するオペレーティング・システムによっては、別の手順が必要になることがあります。

  1. Oracle Net Configuration AssistantまたはOracle Net Managerを使用して、プロトコル・アドレスおよびその他の構成パラメータでリスナーを構成します。

  2. リスナーのあるマシンでrootユーザーとしてログインします。

  3. リスナーの実行可能ファイル(tnslsnr)および依存共有ライブラリのファイル所有権とアクセス許可を設定し、rootユーザーのみがこれらのファイルを変更できるようにします。

  4. これらのファイルへの(rootディレクトリから始まる)パス名に含まれている個々のディレクトリのアクセス権も、同じ所有権とアクセス権が設定されていることを確認します。

  5. rootユーザーとしてリスナーを起動します。

  6. システム・プロンプトに次のように入力します。

    tnslsnr listener_name -user user -group group
    

    このコマンドで使用されているオプションは、次のとおりです。

    表4-3 tnslsnrユーティリティのオプション

    オプション 説明

    listener_name

    リスナーの名前を指定します。省略すると、デフォルト名のLISTENERが使用されます。

    user

    スーパーユーザー(root)権限が必要ない場合にリスナーが使用する権限を持つユーザーを指定します。権限が必要な操作を実行した後、リスナーはroot権限を永遠に放棄し元に戻すことはできません。

    group

    スーパーユーザー(root)グループ権限が必要ない場合にリスナーが使用する権限を持つユーザーを指定します。権限が必要な操作を実行した後、リスナーはrootグループ権限を永遠に放棄し元に戻すことはできません。

    このステップで、リスナーが指定されたユーザーおよびグループに切り替わります。すべての操作は(構成されているエンドポイントをリスニングする必要のあるシステム・コールを除いて)、指定されたユーザー権限またはグループ権限で実行されます。リスナーはrootユーザーに戻って予約済アドレス(1023以下のTCPポート)をリスニングします。

    listener.oraに構成されているすべてのエンドポイントのリスニングを開始した後、リスナーは指定されたユーザーおよびグループに切り替わり、元に戻ることはありません。したがって、リスナーは最初のroot権限を放棄します。-userおよび-groupコマンドライン引数は、数値形式で指定されているユーザーおよびグループ識別子のみを受け入れます。

    たとえば、root権限を持つmylsnrというリスナーを実行し、このリスナーでグループ識別子が16のユーザー37555の権限を使用する場合は、オペレーティング・システムのコマンド・プロンプトに次のように入力します。

    tnslsnr mylsnr -user 37555 -group 16
    

    前述の例で、37555にはユーザーoracleユーザーの識別子、16にはdbaグループの識別子を指定してもかまいません。

  7. リスナーの起動後は、リスナー制御ユーティリティを使用してリスナーを管理できます。

    重要な注意事項:

    • リスナー・プロセスを実行するユーザーとしては、oracleユーザーを使用するか、オペレーティング・システム上で通常リスナー・プロセスを実行するユーザーを使用することをお薦めします。

    • セキュリティ上攻撃を受けやすくなるため、リスナー・プロセスをrootユーザーで実行しないでください。