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

Oracle Databaseインスタンスとクライアントの接続を構成する方法を学習します。

ネットワーク・オブジェクトは、プロトコル・アドレスによって識別されます。接続が確立されると、クライアントと要求の受信者(リスナーまたはOracle Connection Manager)が同じプロトコル・アドレスで構成されます。クライアントは、このアドレスを使用して特定のネットワーク・オブジェクトの場所に接続要求を送信します。受信者は、このアドレスで要求をリスニングして、クライアントの情報と一致するアドレス情報に基づいて接続を許可します。

4.1 プロトコル・アドレス

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

4.1.1 ADDRESS

ADDRESSネットワーク・パラメータは、ADDRESS_LISTまたはDESCRIPTIONパラメータの下のプロトコル・アドレスを指定します。

用途

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

使用上のノート

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

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

4.1.2 ADDRESS_LIST

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)

TLS付きTCP/IP

PROTOCOL

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

TLS付きTCP/IP

HOST

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

TLS付き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)

Websocket  

PROTOCOL

値としてwsを指定します。このプロトコルは、Webサーバーのバックエンド・データベース・サーバーとしてのみ使用します。

Websocket  

HOST

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

Websocket  

PORT

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

例:

(protocol=ws)(host=sales-server)(port=1524)

セキュアなWebSocket  

PROTOCOL

値としてwsを指定します。このプロトコルは、websocketプロトコルをサポートしているWebサーバーに接続するためにクライアント側で使用します。データベース・リスナーへのwebsocket接続を確立するようにWebサーバーを構成します。sqlnet.oraでウォレットを構成します。

WebサーバーでのマッピングにSQLNET.URIを使用します。

セキュアなWebSocket  

HOST

websocketをサポートするWebサーバーのホスト名またはIPアドレスを指定します。

セキュアなWebSocket  

PORT

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

例:

(protocol=wss)(host=sales-server)(port=1524)

4.3 お薦めするポート番号

クライアントとOracle Connection Managerの接続には、デフォルトのポート番号を使用することをお薦めします。

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

ポート 説明

1521

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

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

1521

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

1830

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

4.4 ポート番号の制限

この手順を使用して、1から1024の範囲のシステム・ポート番号を使用するようにリスナーを構成します。

Oracleは、1から65535のポート番号に対応しています。ただし、一般にポート番号1024未満は予約されています。権限が付与されたプロセスのみが、1024未満のポートで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から、指定したユーザーおよびグループ権限に変更されます。すべての操作は指定したユーザー権限またはグループ権限で実行されます(ただし、構成したエンドポイントのリスニングが必要なシステム・コールを除きます)。リスナーはrootユーザーに戻って予約済アドレス(1024未満のTCPポート番号など)をリスニングします。

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

    たとえば、mylsnrというリスナーをroot権限で実行し、ユーザーID (UID)が37555、グループ識別子(GID)が16、OSDBAグループdbaメンバーシップのOracleユーザーの権限を使用するには、プロンプトで次のコマンドを入力します。

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

    注意:

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

    • リスナー・プロセスをrootユーザーとして実行したままにしないでください。スーパーユーザーとしてプロセスを実行することは、セキュリティの危険があります。