10 Oracle Connection Managerの構成と管理
Oracle Connection Managerは、データベースまたはプロキシ・サーバーに接続要求を転送するプロキシ・サーバーです。これはセッション・レベルで動作し、通常はデータベース・サーバーおよびクライアント・コンピュータとは別のコンピュータに常駐しています。
Oracle Connection Managerは、Oracle Database Enterprise Editionをインストールすると使用できるようになります。これはクライアント・システム上のカスタム・インストール・オプションです。Oracle Database Client 23ai以降では、Oracle Connection Managerをイメージ・ファイルとしてインストールして構成できます。詳細は、使用しているプラットフォーム固有のOracle Databaseのインストレーション・ガイドを参照してください。
- Oracle Connection Managerの設定
Oracle Connection Managerを設定するには、プロキシ・サーバー、データベースおよびクライアントを構成する必要があります。 - Traffic DirectorモードのOracle Connection Managerの構成
現在のOracle Database Client Interface (OCI)クライアントまたはサポートされている古いバージョンのOCIクライアント(Oracle Database 11gリリース2 (11.2)以降)で、Traffic DirectorモードのOracle Connection Managerに接続できます。 - 逆接続用のトンネリング・モードのOracle Connection Managerの構成
トンネリング・モードのOracle Connection Managerは、サーバーCMANとクライアントCMANの間のトンネル接続を確立します。クライアントは、サーバーcmanに接続することで、トンネル経由で逆接続を行うことができます。 - IPv4およびIPv6のブリッジとしてのOracle Connection Managerの使用
一部のデータベース接続環境では、クライアントとデータベースで異なるバージョンのIPプロトコルを使用できるため、完全な接続性が存在しません。この場合は、その接続での2つ以上のホップで、異なるバージョンのIPプロトコルが使用されています。 - Oracle Connection Managerを使用したサービス拒否攻撃の回避
Oracle Connection Manager (CMAN)が特定の時間間隔内に単一のIPアドレスから処理できるクライアント接続数に制限を適用できます。 - Oracle Connection Managerの起動および停止
Oracle Connection Managerを構成したら、Oracle Connection Manager制御(CMCTL)ユーティリティを使用してこれを起動および管理できます。 - CMCTL RESTインタフェースについて
CMCTL RESTインタフェースは、RESTインタフェースを使用してリモート・マシンからOracle Connection Manager (Oracle CMAN)インスタンスを管理するために役立ちます。HTTPSをサポートしているクライアントは、CMCTLと同等のコマンドを発行できます。各REST APIコールには、Basic
認証方式が指定されているWWW-Authenticate
HTTPSヘッダーが必要です。 - パッチ適用時のCMANセッションの移行
計画的な、停止時間なしのOracle CMANのアップグレードまたはパッチ適用の間に、確立されたクライアント/サーバー・セッションを、あるOracle Connection Manager (CMAN)インスタンスから別のOracle CMANインスタンスに移行できます。 - Oracle Connection Managerの機能拡張
Oracle Connection Managerにより、Oracle Database Serverに対するリクエストをプロキシ化し選別します。
関連トピック
親トピック: Oracle Net Servicesの構成と管理
10.1 Oracle Connection Managerの設定
Oracle Connection Managerを設定するには、プロキシ・サーバー、データベースおよびクライアントを構成する必要があります。
- cman.oraファイルについて
Oracle Connection Managerをホストするコンピュータを構成するには、cman.ora
ファイルのパラメータを設定します。 - Oracle Connection Managerホスト用のcman.oraファイルの構成
- Oracle Connection ManagerでのTransport Layer Securityの構成
Oracle Connection Manager (CMAN)サーバーでウォレットを作成し、cman.ora
ファイルでTransport Layer Security (TLS)付きTCP/IPのリスニング・エンドポイントおよびウォレットの場所を指定します。 - アクセス制御の有効化
- Oracle Connection Managerを使用する場合のクライアントの構成
- Oracle Connection Managerを使用する場合のOracle Databaseサーバーの構成
データベース・サーバーを構成する際には、リモートからOracle Connection Managerでデータベース情報を登録し、オプションでサーバーの多重化を構成します。
10.1.1 cman.oraファイルについて
Oracle Connection Managerをホストするコンピュータを構成するには、cman.ora
ファイルのパラメータを設定します。
cman.ora
ファイルは、Oracle Connection Managerをホストするコンピュータ上のORACLE_BASE_HOME/network/admin
ディレクトリにあります。cman.ora
ファイルがORACLE_BASE_HOME/network/admin
ディレクトリにない場合は、ORACLE_HOME/network/admin
ディレクトリでファイルを探します。cman.ora
ファイルが存在しない場合、Oracle Connection Managerは起動しません。このファイルには次のコンポーネントが含まれています。
- リスニング・エンドポイント
- アクセス制御ルール・リスト
- パラメータ・リスト
各Oracle Connection Manager構成は、1つの名前-値(NV)文字列内にカプセル化されており、その文字列は、前述のコンポーネントで構成されています。
1台のコンピュータで任意の数のOracle Connection Managerをホスティングでき、そのそれぞれのエントリがcman.ora
ファイルに保持されます。このファイルに複数のOracle Connection Managerを定義する場合は、完全修飾ホスト名を1つのみ設定することによって、デフォルトとして割り当てることができます。
クライアントとOracle Connection Manager制御ユーティリティ(CMCTL)の2つの接続に対して複数のルールを指定できます。変更を行う場合、次のガイドラインが適用されます。
- クライアント接続とCMCTL接続に対して、1つ以上のルールを入力する必要があります。ルールを省略すると、省略されたルール・タイプの全接続が拒否されます。
- Oracle Connection Managerでは、ワイルドカードをIPアドレスの一部として使用できません。ワイルドカードを使用する場合は、完全なIPアドレスのかわりとして使用してください。たとえば、クライアントのIPアドレスの場合は、(
SRV=*
)と指定します。 - Oracle Connection Managerでは、サブネット・アドレスの表記として
/nn
のみを使用できます。例10-1では、最初のルールの/24
が左端の24ビットで構成されるサブネット・マスクを表しています。クライアントIPアドレスの先頭の24ビットのみが、ルール内のIPアドレスと比較されます。
ノート:
Oracle Connection ManagerはIPv6アドレッシングをサポートしています。「IPv4およびIPv6のブリッジとしてのOracle Connection Managerの使用」を参照してください。例10-1に、CMAN1
というOracle Connection Managerの構成エントリが含まれるcman.ora
ファイルを示します。
例10-1 cman.oraファイルの例
CMAN1=
(CONFIGURATION=
(ADDRESS=(PROTOCOL=tcp)(HOST=proxysvr)(PORT=1521))
(RULE_LIST=
(RULE=(SRC=192.0.2.32/24)(DST=sales-server)(SRV=*)(ACT=accept)
(ACTION_LIST=(AUT=on)(MCT=120)(MIT=30)))
(RULE=(SRC=192.0.2.32)(DST=proxysvr)(SRV=cmon)(ACT=accept)))
(PARAMETER_LIST=
(MAX_GATEWAY_PROCESSES=8)
(MIN_GATEWAY_PROCESSSES=3)))
例10-1は、次のルールを示しています。
- 例の最初のルールでは、次のパラメータを設定しています。
- 2番目のルールでは、次のパラメータを設定しています。
SRC=192.0.2.32
およびDST=proxysvr
は同じサーバーを表し、Oracle Connection ManagerとCMCTLは同じコンピュータ上にある必要があることを示しています。
関連項目:
「アクセス制御の有効化」
表10-1は、cman.ora
ファイルのルール・レベル・パラメータを説明します。
表10-1 cman.oraファイルのルール・レベル・パラメータ
パラメータ | 説明 |
---|---|
SRC |
ソースのホスト名またはクライアントのIPアドレス。IPアドレスはサブネットで、 |
DST |
接続先のホスト名またはデータベース・サーバーのIPアドレス。IPアドレスはサブネットで、 |
SRV |
初期化パラメータ・ファイル( サービス名は、リスナーへの接続時に、接続記述子の一部としてクライアントによって指定されます。このサービス名は、ルール・リストに指定されたサービス名と比較されます。 |
ACT |
前述の3つのパラメータに基づいた、受信要求の受入れ、拒否または削除。 |
複数のルールをRULE_LISTに定義できます。最初に適合したRULE
のアクション(ACT
)が接続要求に適用されます。ルールが定義されていない場合はすべての接続が受け入れられます。
次の例では、クライアント・コンピュータclient1-pc
は、サービスsales.us.example.com
へのアクセスが拒否されますが、クライアント192.0.2.45
はサービスdb1
へのアクセスが許可されます。
(RULE_LIST=
(RULE=(SRC=client1-pc)(DST=sales-server)(SRV=sales.us.example.com)(ACT=reject))
(RULE=(SRC=192.0.2.45)(DST=192.0.2.200)(SRV=db1)(ACT=accept)))
関連項目:
Oracle Connection Managerパラメータの詳細は、『Oracle Database Net Servicesリファレンス』を参照してください。親トピック: Oracle Connection Managerの設定
10.1.2 Oracle Connection Managerホスト用のcman.oraファイルの構成
cman.ora
ファイルは手動で変更します。次の手順では、sqlnet.ora
ファイルにパラメータを設定する方法について説明します。
ORACLE_BASE_HOME/network/admin
ディレクトリにあるcman.ora
ファイルにナビゲートします。cman.ora
ファイルがORACLE_BASE_HOME/network/admin
ディレクトリにない場合は、ORACLE_HOME/network/admin
ディレクトリでファイルを探します。- テキスト・エディタを使用して
cman.ora
ファイルを開きます。 - リスニング・エンドポイント(ADDRESS)を構成します。
リスニング・エンドポイントでは、Oracle Connection Managerリスナーのプロトコル・アドレスを指定します。Oracle Connection Managerのモニタリング・プロセスCMONでは、このアドレスを使用してリスナーへのゲートウエイ・プロセスに関する情報を登録します。データベースはこのアドレスを使用して、Oracle Connection Managerノードでサービス情報を登録します。
Oracle Connection Managerのリスナーは、常にTCP/IPプロトコルでリスニングします。
(ADDRESS=(PROTOCOL=tcp)(HOST=proxysvr)(PORT=1521))
ノート:
Oracle Connection Managerは、TCP/IP(バージョン4およびバージョン6)などのプロトコルを使用してデータベースに接続できます。Oracle Database12cリリース2 (12.2)以降、TCPSプロトコルもサポートされています
- アクセス制御ルール・リスト(RULE_LIST)を構成します。
アクセス制御ルール・リストではリスナーにより、受入れ、拒否または削除される接続を指定します。
- パラメータ・リスト(PARAMETER_LIST)を構成します。
パラメータ・リストにより、Oracle Connection Managerの属性を設定します。パラメータの形式は次のとおりです。
親トピック: Oracle Connection Managerの設定
10.1.3 Oracle Connection ManagerでのTransport Layer Securityの構成
Oracle Connection Manager (CMAN)サーバーでウォレットを作成し、cman.ora
ファイルでTransport Layer Security (TLS)付きTCP/IPのリスニング・エンドポイントおよびウォレットの場所を指定します。
ノート:
Oracle Database 23ai以降、Oracle Wallet Manager (OWM)はサポートされなくなりました。orapki
コマンドライン・ツールを使用してOWMを置き換えることをお薦めします。
関連トピック
親トピック: Oracle Connection Managerの設定
10.1.4 アクセス制御の有効化
TCP/IP環境で指定されたデータベース・サーバーへのクライアント・アクセスを制御するには、RULE_LISTパラメータを使用します。このパラメータでフィルタリング・ルールを入力し、データベース・サーバーへの特定のクライアント・アクセスを許可または制限できます。
次の手順では、アクセス制御の構成方法を説明します。
親トピック: Oracle Connection Managerの設定
10.1.5 Oracle Connection Managerを使用する場合のクライアントの構成
Oracle Connection Managerでクライアントをデータベース・サーバーに転送するには、Oracle Connection Managerのプロトコル・アドレスを指定する接続記述子を使用して、tnsnames.ora
ファイルを構成します。このアドレスを使用して、クライアントからOracle Connection Managerコンピュータに接続できます。接続記述子は次のとおりです。
sales= (DESCRIPTION= (ADDRESS= (PROTOCOL=tcp) (HOST=cman-pc) (PORT=1521)) (CONNECT_DATA= (SERVICE_NAME=example.com)))
次の手順では、Oracle Connection Managerのプロトコル・アドレスを構成する方法について説明します。
-
Oracle Net Managerを起動します。
-
ナビゲータ・ペインで、「ディレクトリ」または「ローカル」メニューから「サービス・ネーミング」を選択します。
-
ツールバーで「+」をクリックするか、「編集」メニューから「作成」を選択します。
「Netサービス名ウィザード」の「ようこそ」ページが表示されます。
-
「ネット・サービス名」フィールドに名前を入力します。
-
「次へ」をクリックします。
「プロトコル」ページが表示されます。
-
Oracle Connection ManagerのTCP/IPプロトコルを選択します。
-
「次へ」をクリックします。
「プロトコル設定」ページが表示されます。
-
Oracle Connection Managerのポートとプロトコルを指定します。Oracle Connection Managerのデフォルトのポート番号は1521、プロトコルはTCP/IPです。
関連項目:
プロトコル・パラメータの設定については、『Oracle Database Net Servicesリファレンス』を参照してください。
-
「次へ」をクリックします。
「サービス」ページが表示されます。
-
「サービス名」フィールドにサービス名を入力し、接続タイプを選択します。
関連項目:
サービス名文字列の設定の詳細は、「接続記述子について」を参照
-
「次へ」をクリックします。
ノート:
この時点では接続のテストはできないため、「テスト」はクリックしないでください。
-
「終了」をクリックして構成を保存し、Netサービス名ウィザードを閉じます。
新規のネットワーク・サービス名とOracle Connection Managerプロトコル・アドレスが「サービス・ネーミング」フォルダに追加されます。
親トピック: Oracle Connection Managerの設定
10.1.6 Oracle Connection Managerを使用する場合のOracle Databaseサーバーの構成
データベース・サーバーの構成には、リモートからOracle Connection Managerでデータベース情報を登録する方法と、オプションでサーバーの多重化を構成する方法があります。
ノート:
Oracle Connection Managerに登録するデータベースがリモート・ノードにある場合は、cman.ora
のパラメータVALID_NODE_CHECKING_REGISTRATION
を構成してリモート登録を許可する必要があります。
- Oracle Connection Managerで使用するためのサービス登録の構成
データベース・サーバーがOracle Connection Managerと通信できるようにするには、tnsnames.ora
ファイルにサービス名のエントリが含まれ、初期化パラメータ・ファイル(init.ora)
に、Oracle Connection Managerのリスニング・アドレスを指定する記述子が含まれている必要があります。 - Oracle Connection Managerのセッションの多重化の有効化
Oracle Connection Managerでセッションの多重化を利用できるようにするには、初期化パラメータ・ファイル(init.ora
)内のDISPATCHERS
パラメータにPROTOCOL
およびMULTIPLEX
属性を設定します。
親トピック: Oracle Connection Managerの設定
10.1.6.1 Oracle Connection Managerで使用するためのサービス登録の構成
データベース・サーバーがOracle Connection Managerと通信できるようにするには、tnsnames.ora
ファイルにサービス名のエントリが含まれ、初期化パラメータ・ファイル(init.ora)
に、Oracle Connection Managerのリスニング・アドレスを指定する記述子が含まれている必要があります。
次の手順では、サービス登録を構成する方法について説明します。
-
tnsnames.ora
ファイルのサービス名エントリへのOracle Connection Manager別名を次のように解決します。cman_listener_address
= (DESCRIPTION= (ADDRESS_LIST= (ADDRESS=(PROTOCL=tcp) (HOST=proxy_server_name
)( PORT=1521))))たとえば、別名
listener_cman
は、tnsnames.ora
ファイル内の次のエントリに解決されます。listener_cman= (DESCRIPTION= (ADDRESS_LIST= (ADDRESS=(PROTOCOL=tcp)(HOST=proxyserver1)(PORT=1521))))
-
init.ora
ファイルのOracle Connection Managerの別名を次のように指定します。この別名は、ステップ1のtnsnames.ora
ファイルで指定した別名です。REMOTE_LISTENER=
cman_listener_address
このアドレスはTCP、ポート1521であり、データベース・サーバーのTCP、ポート1521のデフォルト・ローカル・リスニング・アドレスではないため、別名を指定する必要があります。
たとえば、ホスト
proxyserver1
で動作しているOracle Connection Managerリスナーのステップ1で指定した別名は、init.ora
ファイル上で次のようになっている場合があります。REMOTE_LISTENER=
listener_cman
-
データベースがリモート・ノードに存在する場合、
cman.ora
のREGISTRATION_INVITED_NODES
を構成します。たとえば:(registration_invited_nodes=sales.us.example.com,10.245.129.60)
-
初期化パラメータ・ファイルがOracle Connection Managerの別名で構成されると、リスナー登録(LREG)プロセスは、Oracle Connection Managerリスナーとしてデータベース情報を登録できます。変更を登録するには、次のコマンドを使用します。
SQL> ALTER SYSTEM REGISTER
10.1.6.2 Oracle Connection Managerのセッションの多重化の有効化
Oracle Connection Managerでセッションの多重化を利用できるようにするには、初期化パラメータ・ファイル(init.ora
)内のDISPATCHERS
パラメータにPROTOCOL
およびMULTIPLEX
属性を設定します。
たとえば:
DISPATCHERS="(PROTOCOL=tcp)(MULTIPLEX=on)"
次の表では、様々なレベルの多重化を設定するパラメータを示します:
表10-2 セッションを多重化するパラメータ
属性 | 説明 |
---|---|
|
ディスパッチャがリスニング・エンドポイントを生成するときに使用するネットワーク・プロトコルです。 |
|
このパラメータは、次のようにセッションの多重化に使用します。
|
10.2 Traffic DirectorモードのOracle Connection Managerの構成
現在のOracle Database Client Interface (OCI)クライアントまたはサポートされている古いバージョンのOCIクライアント(Oracle Database 11gリリース2 (11.2)以降)で、Traffic DirectorモードのOracle Connection Managerに接続できます。
- Traffic DirectorモードのOracle Connection Managerについて
Traffic DirectorモードのOracle Connection Managerは、サポートされているデータベース・クライアントとデータベース・インスタンスとの間に配置されているプロキシです。 - Traffic DirectorモードのOracle Connection Manager用のcman.oraファイルの構成
cman.ora
構成ファイル内のTDM=YES
設定を使用してTraffic DirectorモードのOracle Connection Managerを設定できます。 - Traffic DirectorモードのOracle Connection Managerのプロキシ認証用のウォレットの構成
Traffic DirectorモードのOracle Connection Managerは、cman.ora
ファイルで構成されている必要があるウォレットを使用してデータベースに接続します。 - Traffic DirectorモードのOracle Connection Managerによる外部パスワード・ストアの使用の有効化
ステップには、Oracleウォレットの作成と、そのウォレット内の各データベース・サービスのためのデータベース接続資格証明の作成があります。 - Traffic DirectorモードのOracle Connection Managerのプロキシ認証用のデータベースの構成
Traffic DirectorモードのOracle Connection Managerを介してアプリケーションが接続しているすべてのデータベースには、ユーザー(tdm
など)が存在する必要があります。 - Traffic DirectorモードのOracle Connection Managerでのサービス登録の構成
サービス登録を構成するには、tnsnames.ora
ファイル内にサービス名エントリを含めます。また、init.ora
ファイル内に、Oracle Connection Managerのリスニング・アドレスを指定する記述子を含めます。 - Traffic DirectorモードのOracle Connection Managerのプロキシ常駐接続プーリングの構成
Traffic DirectorモードのOracle Connection Manager (CMAN-TDM)では、プロキシ常駐接続プーリング(PRCP)がサポートされています。PRCPは、データベース・サービスごと(デフォルト設定)、またはPDB全体に構成できます。 - 計画外イベントのためのTraffic DirectorモードのOracle Connection Managerの構成
Traffic DirectorモードのOracle Connection Managerでは、暗黙的に、高速アプリケーション通知(FAN)イベントがサブスクライブされます。このためには、oraaccess.xml
でevents
を有効にする必要があります - 計画済停止イベントのためのTraffic DirectorモードのOracle Connection Managerの構成
Traffic DirectorモードのOracle Connection Managerでは、暗黙的に、高速アプリケーション通知(FAN)イベントがサブスクライブされます。このためには、oraaccess.xml
でevents
を有効にする必要があります - サービス・アフィニティのTraffic DirectorモードのOracle Connection Managerの構成
着信接続要求をルーティングするためのデフォルトの負荷分散メカニズムを変更するように、Traffic DirectorモードのOracle Connection Managerを構成します。 - Traffic DirectorモードのOracle Connection ManagerでのTransport Layer Securityの構成
Traffic DirectorモードのOracle Connection Managerサーバー(CMAN-TDM)でウォレットを作成し、cman.ora
ファイルでTransport Layer Security (TLS)付きTCP/IPのリスニング・エンドポイントおよびウォレットの場所を指定します。 - Traffic DirectorモードのOracle Connection Managerの制限事項
これらの機能は、Traffic DirectorモードのOracle Connection Manager (CMAN-TDM)では、すべてのドライバでサポートされていません。
10.2.1 Traffic DirectorモードのOracle Connection Managerについて
Traffic DirectorモードのOracle Connection Managerは、サポートされているデータベース・クライアントとデータベース・インスタンスとの間に配置されたプロキシです。
- 接続モード
Traffic DirectorモードのOracle Connection Managerでは、プールされた操作モードとプールされていない操作モードがサポートされます。 - パフォーマンスおよびセキュリティ
Traffic DirectorモードのOracle Connection Managerでは、クライアント接続をデータベースにルーティングできるため、高可用性および接続の多重化機能が提供されます。また、強化されたセキュリティ機能をサポートし、計画済および計画外のデータベース停止に対してアプリケーションの停止時間をゼロにします。 - データベース・リンク
Traffic DirectorモードのOracle Connection Managerでは、高可用性およびデータベースへのフェイルオーバーを拡張するデータベース・リンクがサポートされます。 - サービスごとおよびPDBごとの接続プール
プロキシ常駐接続プーリング(PRCP)では、Traffic DirectorモードのOracle Connection Manager (CMAN-TDM)サーバー上に接続プールが提供されます。CMAN-TDMを構成して、サービスごとまたはPDBごとにプールされた接続を確立できます。 - 暗黙的接続プーリング
アプリケーション接続プールを使用しないクライアント・アプリケーションでは、アプリケーション・レベルの変更やプーリングAPIのコールが不要な接続プーリング機能を利用できます。
関連トピック
10.2.1.1 接続モード
Traffic DirectorモードのOracle Connection Managerでは、プールされた操作モードとプールされていない操作モードがサポートされます。
-
プールされた接続モード:
次のデータベース・クライアント・リリースを使用するアプリケーションがサポートされます。
-
OCIおよびオープン・ソース・ドライバ(11.2.0.4以降)
-
JDBC (12.1以降)
-
ODP.NET (12.2以降)
また、アプリケーションでは、データベース常駐接続プール(DRCP)を認識する必要があります。これは、アプリケーションの接続文字列で指定するということです(
SERVER=POOLED
)。 -
-
プールされていない接続(または専用)モード:
データベース・クライアント・リリース11.2.0.4以降を使用するアプリケーションがサポートされます。このモードでは、接続の多重化などの一部の機能は使用できません。
ノート:
Traffic DirectorモードのOracle Connection Managerを使用したクライアントからデータベースへの接続では、クライアントとデータベースのバージョンが、サポートされている組合せである必要があります。10.2.1.2 パフォーマンスおよびセキュリティ
Traffic DirectorモードのOracle Connection Managerでは、クライアント接続をデータベースにルーティングできるため、高可用性および接続の多重化機能が提供されます。また、強化されたセキュリティ機能をサポートし、計画済および計画外のデータベース停止に対してアプリケーションの停止時間をゼロにします。
透過的パフォーマンスおよび接続の多重化
-
文キャッシュ、行のプリフェッチおよび結果セット・キャッシュがすべての操作モードで自動的に有効になります。
-
プロキシ常駐接続プーリング(PRCP、データベース常駐接続プーリングのプロキシ・モード)を使用したデータベース接続の多重化(プール・モードのみ)。PRCPでは、Oracle Call Interface (OCI)のセッション・プーリング機能を使用します。
PRCPは、ターゲット・データベースへの少数のサーバー接続で構成される接続プールを使用して、ルーティングされる多数のクライアント接続に対して接続サービスを提供します。PRCPは、データベース層での接続負荷(接続時のメモリー使用量)を軽減し、データベースとTraffic DirectorモードのOracle Connection Managerの間で実行時ロード・バランシングを提供します。
高可用性
-
Traffic DirectorモードのOracle Connection Managerの複数インスタンス: アプリケーションはクライアント側の接続時ロード・バランシングまたはロード・バランサ(BIG-IPやNGINXなど)を使用して高度なスケーラビリティを実現できます。
-
Traffic DirectorモードのOracle Connection Managerのインスタンスのローリング・アップグレード
-
計画済停止におけるクライアントからTraffic DirectorモードのOracle Connection Managerへの既存の接続のクローズ
-
Oracle Databaseリリース18c以降のクライアントへのインバンド通知。以前のリリースのクライアントの場合、現在のリクエストのレスポンスとともに通知が送信されます。
セキュリティと分離
-
TCP/TCPSとプロトコルの変換をサポートするデータベース・プロキシ
-
IPアドレス、サービス名およびTLSウォレットに基づくファイアウォール
-
マルチテナント環境でのテナントの分離
-
DoS攻撃とファジング攻撃からの保護
-
オンプレミス・データベースとOracle Cloudの間のデータベース・トラフィックのセキュア・トンネリング
アプリケーション停止時間ゼロ
- 計画済データベース・メンテナンスまたはプラガブル・データベース(PDB)の再配置:
-
プール・モードでは、Traffic DirectorモードのOracle Connection Managerは、計画済停止のOracle Notification Service(ONS)イベントに応答し、作業をリダイレクトします。要求が完了すると、Traffic DirectorモードのOracle Connection Managerのプールから接続がドレインされます。また、サービスの再配置もサポートされます。
PDBが再配置されると、ONSが構成されていなくても、Traffic DirectorモードのOracle Connection Managerはインバンド通知に応答します(サーバーの場合のみ)。
-
プールされていないモードまたは専用モードでは、クライアントからのリクエスト境界情報は受信しません。Traffic DirectorモードのOracle Connection Managerは、多くのアプリケーションの計画済停止をサポートしています(リクエストまたはトランザクションの境界を越えて単純なセッション状態やカーソル状態のみを保持する必要がある場合)。これには、次の操作が含まれます。
-
トランザクション境界でサービスまたはPDBを停止するか、継続的なアプリケーション可用性を利用してリクエスト境界でサービスを停止します。
-
Traffic DirectorモードのOracle Connection Managerは、TAFのフェイルオーバーのリストアを利用して、再接続して単純な状態をリストアします。
-
-
- 計画外のデータベース停止:
プールされたモードとプールされていない(専用)モードの両方で、Traffic DirectorモードのOracle Connection Managerは、TAFのフェイルオーバーのリストアを利用して単純なセッション状態またはカーソル状態をリストアし、
SELECT
文と最初のDML
文をリプレイすることで、大部分が読取りのアプリケーションの計画外停止をサポートします。
10.2.1.3 データベース・リンク
Traffic DirectorモードのOracle Connection Managerでは、高可用性およびデータベースへのフェイルオーバーを拡張するデータベース・リンクがサポートされます。
- 固定ユーザー: ユーザーは、データベース・リンクの作成時に指定されたユーザー名とパスワードを使用して、リモート・データベースに接続します。
- 接続ユーザー: ユーザーは、データベース・リンクにアクセスするユーザーの資格証明を使用してリモート・データベースに接続します。これらの資格証明には、ユーザー名とパスワード、または外部(Kerberosチケットなど)があります。
次のシナリオでは、Traffic Directorモードでデータベース・リンクを使用できます。
- シナリオ1:
クライアントがデータベースに直接接続する場合
このシナリオでは、固定ユーザー・データベース・リンクと接続ユーザー・データベース・リンクの両方が機能します。
- シナリオ2:
クライアントがTraffic Directorモードを使用してデータベースに接続する場合
このシナリオでは、固定ユーザー・データベース・リンクのみが機能します。接続ユーザー・データベース・リンクが機能しないのは、TDMとデータベース間のセッションがプロキシ・ユーザー・セッションであるためです。セキュリティ上の理由で、プロキシ・ユーザー・セッションはデータベース・リンクで許可されません。
ノート:
データベース・リンクがTDMと連携するようにするには、TDMが特定のデータベース・サービスのプロキシ常駐接続プール(PRCP)モードで実行されていない必要があります。
10.2.1.4 サービスごとおよびPDBごとの接続プール
プロキシ常駐接続プーリング(PRCP)は、Traffic DirectorモードのOracle Connection Manager (CMAN-TDM)サーバーに接続プールを提供します。CMAN-TDMを構成して、サービスごとまたはPDBごとにプールされた接続を確立できます。
サービスごとのPRCP
サービスごとのPRCPでは、接続文字列に指定されたSERVICE_NAME
パラメータに基づいて、リクエストされたデータベース・サービス用の単一の専用プールがCMAN-TDMによって作成されます。クライアント・アプリケーションが新しい接続をリクエストすると、このサービス・プールのプールされた接続がCMAN-TDMはによって確立されます。アプリケーションがこのサービスへの接続を要求するたびに、CMAN-TDMはそのサービス・プールから一致する接続を返します。
たとえば、指定されたサービス名がService1_PDB1
およびService2_PDB1
である着信接続要求の場合、CMAN-TDMでは、2つのサービス・プール(つまり、Service1_PDB1
接続をサポートするPRCP_for_Service1_PDB1
と、Service2_PDB1
接続をサポートするPRCP_for_Service2_PDB1
)が作成されます。
PDBごとのPRCP
PDBごとのPRCPは、サービスごとのPRCPと同じような方法で機能します。このモードでは、クライアント・アプリケーションが新しい接続を要求すると、同様にCMAN-TDMが、接続文字列で指定されたSERVICE_NAME
パラメータ値に基づいて、要求されたサービスへのプールされた接続を確立します。ただし、このサービスの専用プールを作成するかわりに、そのPDBに登録されているすべてのサービスに対する接続をサポートするマルチサービスPDBプールが作成されます。使用可能なすべてのOracle Connection Manager Gateway (CMGW)で、ロード・バランシングに基づいて、サービスまたはPDBへの接続要求を受け入れることができます。
たとえば、Service1_PDB1
およびService2_PDB1
(両方ともPDB1
で実行されている)への着信接続要求の場合、CMAN-TDMでは、単一のPDBプール(Service1_PDB1
接続とService2_PDB1
接続の両方をサポートするPRCP_for_PDB1
)が作成されます。
-
複数のサービス・プールを単一のPDBプールに統合することで、CMGW上の接続プールの数を削減します。これは、データベースのパフォーマンスの最適化に役立ちます。
-
TDM_PERPDB_PRCP_CONNFACTOR
値および各PDBに割り当てられたOCPU数に基づいて、PDBプールの最大サイズを動的に決定およびリフレッシュします。PDBごとのPRCP構成は、PDB管理者がPRCP構成のCMAN-TDMホストにアクセスする必要がなく、データベース側でPRCPを構成および監視できるAutonomous Databasesなどのマルチテナント環境で特に役立ちます。
ノート:
サービスごとのモードとPDBごとのモード間を切り替えることはお薦めしません。そうすると、再構成後に開始されるゲートウェイにのみ変更が適用されます。プール・サイズ構成設定
-
サービスごとのPRCPの場合、CMAN管理者は、初期PRCP構成時にCMAN-TDMホストの
oraaccess.xml
に<session_pool> MAX_SIZE
値を指定します。 -
PDBごとのPRCPモードでは、プールのサイズ設定はより自律的です。CMAN管理者は、
TDM_PERPDB_PRCP_CONNFACTOR
パラメータを使用してcman.ora
ファイルに接続ファクタを指定します。PDBごとのPRCP設定では、
TDM_PERPDB_PRCP_CONNFACTOR
パラメータの値と各PDBに自動的に割り当てられるOracle Compute Unit (OCPU)の数に基づいて、PDBごとのPRCPプールの最大サイズが決定されます。バックグラウンド・プロセスでは、これらの値が自動的にフェッチされ、プールのサイズが変更されます。この導出された最大サイズ値は、oraaccess.xml
ファイルで構成された<session_pool> MAX_SIZE
パラメータをオーバーライドします。OCPU数をフェッチできる許容CMANインスタンスをリストするには、
sqlnet.ora
のパラメータTCP.ALLOWED_PROXIES
をOracle Databaseサーバーに設定する必要があります。
V$TDM_STATSビュー
PDBごとのPRCPモードでは、PDB管理者がデータベースのV$TDM_STATS
ビューを問い合せて、CMAN-TDMの使用状況統計を表示できます。このビューでは、すべてのインバウンド接続の集計データ(プール内のセッションを取得したクライアント・リクエストの数、アクティブなクライアント接続の数、ビジーと空きのサーバー接続の数、最大到達接続数など)を分析できます。このビューは、CMAN-TDMの監視およびチューニングに役立ちます。
個別のバックグラウンド・スレッドが各CMGWから統計データをフェッチし、定期的にPDBにアップロードします。この時間間隔は、cman.ora
のパラメータTDM_STATS_FREQUENCY
を使用して設定できます。
10.2.1.5 暗黙的接続プーリング
アプリケーション接続プールを使用しないクライアント・アプリケーションでは、アプリケーション・レベルの変更やプーリングAPIのコールが不要な接続プーリング機能を利用できます。
概要
Oracle Database 23ai以降、プロキシ常駐接続プーリング(PRCP)は暗黙的な接続プーリングをサポートしています。この機能により、アプリケーションが明示的に接続を解放しない場合でも、アプリケーションの起動およびデータベース操作の終了時に、アプリケーション接続との間で実行時にPRCPサーバーを自動的に割り当てることができます。
暗黙的な接続プーリングでは、クライアントからの明示的なセッション・プールAPIコールがなくても、PRCPからのデータベース・セッションがアプリケーション接続に対して自動的にマップおよびマップ解除されます。PRCPは、暗黙的にリクエスト境界の終了(セッションのステートレス)を検出し、セッションを接続プールに解放します。たとえば、トランザクションの場合、アプリケーションは、ステートレス・セッションのプールから使用可能なセッションを暗黙的に使用または再利用でき、トランザクションの完了後にセッションを解放してプールに戻します。
暗黙的な接続プールは、必要なPRCPプールのサイズの削減に役立ちます。Oracle Call Interface (OCI)セッション・プールやJava Database Connectivity (JDBC) Oracle Universal Connection Pool (UCP)など、接続プールを使用しないアプリケーションで、優れたスケーラビリティと効率的なデータベース・リソースの使用を実現します。
文境界とトランザクション境界
暗黙的接続プーリングでは、時間境界を使用してセッションを解放し、接続プールに戻します。時間境界とは、アプリケーション・セッションが解放されてプールに戻される、アプリケーションのライフ・サイクル内の時点です。
暗黙的な接続プーリングを有効にするには、POOL_BOUNDARY
パラメータを接続文字列、簡易接続構文またはtnsnames.ora
ファイルで設定します。このパラメータを使用して、次のいずれかの時間境界を指定します:
-
STATEMENT
: セッションが暗黙的にステートレスであるときに、セッションをPRCPプールに解放します。 -
TRANSACTION
: トランザクションが暗黙的または明示的に終了したとき、またはトランザクションが使用不可でセッションがステートレスであるときに、セッションをPRCPプールに解放します。
次の点に注意してください:
-
セッション内のすべてのオープン・カーソルが完了までフェッチされ、アクティブなトランザクション、一時表または一時LOBがない場合、セッションは暗黙的にステートレスになります。プールへの解放により、アクティブなカーソル、一時表および一時LOBがクローズされます。
-
文の実行後または一時LOBの作成後に、
TRANSACTION
境界内でコミットまたはロールバックを実行した場合は、次のようになります:-
その後のフェッチ操作で、
ORA-01001
などの無効カーソル関連エラーが発生する場合があります。 -
その後に一時LOBを使用すると、
ORA-22922
が発生する場合があります。 -
永続LOBの操作は、暗黙的なリリース後でも続行できます。ただし、別のインスタンスで暗黙的な操作が実行されると、
ORA-43887
エラーが発生する場合があります。そのような場合は、操作を再試行する必要があります。
-
10.2.2 Traffic DirectorモードのOracle Connection Manager用のcman.oraファイルの構成
cman.ora
構成ファイル内のTDM=YES
設定を使用してTraffic DirectorモードのOracle Connection Managerを設定できます。
Oracle Connection Manager (CMAN)は、Oracle Real Application Clusters (Oracle RAC)データベースとRAC以外のデータベースの両方のための標準Oracle Netプロキシです。Traffic DirectorモードのOracle Connection Managerとして機能するCMANを構成するには、cman.ora
ファイル内にtdm
パラメータとtdm_threading_model
パラメータを追加する必要があります。
Traffic DirectorモードのOracle Connection Managerが接続するデータベースには、アプリケーション・ユーザーとして接続できるよう、CONNECT THROUGH
権限を付与された tdmなどのユーザーが存在する必要があります。Traffic DirectorモードのOracle Connection Managerはプロキシ認証を使用し、このユーザーとして接続します。
cman.ora
構成
CMAN_1= (CONFIGURATION= (ADDRESS_LIST= (ADDRESS=(PROTOCOL=tcp)(HOST=TDMHOST)(PORT=1522)) ) (RULE_LIST= (RULE=(SRC=*)(DST=*)(SRV=*)(ACT=accept)) ) (PARAMETER_LIST= (TDM=YES) (TDM_THREADING_MODE=DEDICATED) (MAX_GATEWAY_PROCESSES=8) (MIN_GATEWAY_PROCESSSES=3) ) ) wallet_location = (SOURCE= (METHOD=File) (METHOD_DATA= (DIRECTORY=wallet_location) ) ) SQLNET.WALLET_OVERRIDE = TRUE
ノート:
パラメータWALLET_LOCATION
は、Oracle DatabaseサーバーのOracle Database 23aiでの使用は非推奨です。Oracle Databaseクライアントおよびリスナーでの使用は非推奨ではありません。Oracle Databaseサーバーの場合は、WALLET_LOCATION
を使用するかわりに、WALLET_ROOT
システム・パラメータの使用をお薦めします。
10.2.3 Traffic DirectorモードのOracle Connection Managerのプロキシ認証用のウォレットの構成
Traffic DirectorモードのOracle Connection Managerは、cman.ora
ファイルで構成する必要があるウォレットを使用してデータベースに接続します。
このウォレットには、Traffic DirectorモードのOracle Connection Managerでプロキシ認証に使用されるtdmユーザーのユーザー名およびパスワード情報が含まれています。このtdmユーザーは、Traffic DirectorモードのOracle Connection Managerが接続するすべてのデータベースに存在する必要があります。
次の設定では、Traffic DirectorモードのOracle Connection Managerからのすべてのアウトバウンド接続で、プロキシ認証用に指定された場所のウォレットの資格証明を使用します。
WALLET_LOCATION=
(SOURCE=
(METHOD=FILE)
(METHOD_DATA=
(DIRECTORY=wallet_location)
)
)
SQLNET.WALLET_OVERRIDE=TRUE
ノート:
パラメータWALLET_LOCATION
は、Oracle DatabaseサーバーのOracle Database 23aiでの使用は非推奨です。Oracle Databaseクライアントおよびリスナーでの使用は非推奨ではありません。Oracle Databaseサーバーの場合は、WALLET_LOCATION
を使用するかわりに、WALLET_ROOT
システム・パラメータの使用をお薦めします。
ウォレットは、各サービスに構成されている必要があります。新しいサービスが追加された場合、同じウォレットを使用して新しいサービス用の資格証明を指定する必要があります。
ノート:
新しいサービスが追加され、この新しいサービス用の資格証明がウォレットに追加されるたびに、変更を有効にするためにOracle Cloud Traffic Managerを再起動する必要があります。10.2.4 Traffic DirectorモードのOracle Connection Managerによる外部パスワード・ストアの使用の有効化
ステップには、Oracleウォレットの作成と、そのウォレット内の各データベース・サービスのためのデータベース接続資格証明の作成があります。
ステップ1: コマンドラインで次の構文を使用して、Traffic DirectorモードのOracle Connection Managerでウォレットを作成します。
mkstore -wrl wallet_location -create
wallet_location
は、ウォレットを作成して格納するディレクトリのパスです。
orapki wallet create -wallet wallet_location -auto_login
Enter password: password
Enter password again: password
自動ログイン機能を使用すると、パスワードの指定なしにTraffic DirectorモードのOracle Connection Managerからウォレットの内容にアクセスできます。
ステップ2: コマンドラインで次の構文を使用して、ウォレットにデータベース接続の資格証明を作成します。
mkstore -wrl wallet_location -createCredential db_service_name username password
wallet_location
は、ステップ1でウォレットを作成したディレクトリのパスです。db_service_name
は、アプリケーションがOracle Connection Managerに接続するときに接続文字列で使用するサービス名です。usernameとpasswordは、tdmのユーザー名とパスワードです。
ノート:
mkstore
ウォレット管理コマンドライン・ツールは、Oracle Database 23aiでは非推奨であり、将来のリリースで削除される可能性があります。ウォレットの管理には、orapki
コマンドライン・ツールの使用をお薦めします。
Traffic DirectorモードのOracle Connection Managerを使用してアクセスする必要があるデータベース・サービスごとに、このステップを繰り返します。
TLS (TCPS)
付きTCP/IP
構成の場合、Traffic DirectorモードのOracle Connection Managerウォレットがすでに作成されてています。この場合、ステップ1をスキップして、TCPS
構成に使用したのと同じ場所を、mkstore
のwallet_location
に指定できます。
ノート:
-
指定されたデータベースのすべてのサービス間で同じtdmユーザーを使用できます。ただし、必要に応じて、各サービスに異なるtdmユーザーを関連付けることもできます。
-
プラガブル・データベース(PDB)のサービスの場合、tdmユーザーの設定には次の2つの選択肢があります。
共通tdmユーザー: tdmユーザーを共通ユーザーにすることができます。この場合、Traffic DirectorモードのOracle Connection Managerは、マルチテナント・コンテナ・データベース(CDB)内の異なるPDBからのユーザーをプロキシ認証するために、資格証明のセットを1つ使用します。
PDBごとのtdmユーザー: tdmユーザーをPDB固有のユーザーにすることができます。この場合、Traffic DirectorモードのOracle Connection Managerは、特定のPDBのユーザーをプロキシ認証するために、PDB固有のプロキシ・ユーザーを使用します。
10.2.5 Traffic DirectorモードのOracle Connection Managerのプロキシ認証用のデータベースの構成
アプリケーションがTraffic DirectorモードのOracle Connection Managerを介して接続するすべてのデータベースには、tdm
などのユーザーが必要です。
Traffic DirectorモードのOracle Connection Managerはプロキシ認証を使用し、tdm
ユーザーとしてデータベースに接続します。Traffic DirectorモードのOracle Connection Managerを介して接続する必要があるすべてのユーザーには、次のようにCONNECT THROUGH
tdm権限を付与する必要があります:
ALTER user SCOTT GRANT CONNECT THROUGH tdm
10.2.6 Traffic DirectorモードのOracle Connection Managerでのサービス登録の構成
サービス登録を構成するには、tnsnames.ora
ファイル内にサービス名エントリを含めます。また、init.ora
ファイル内に、Oracle Connection Managerのリスニング・アドレスを指定する記述子を含めます。
Traffic DirectorモードのOracle Connection Managerでのサービス登録を構成する手順は、Oracle Connection Managerとともに使用するためのサービス登録の構成方法に似ています。
10.2.7 Traffic DirectorモードのOracle Connection Managerのプロキシ常駐接続プーリングの構成
Traffic DirectorモードのOracle Connection Manager (CMAN-TDM)は、プロキシ常駐接続プーリング(PRCP)をサポートしています。PRCPは、データベース・サービスごと(デフォルト設定)、またはPDB全体に構成できます。
10.2.8 計画外イベントのためのTraffic DirectorモードのOracle Connection Managerの構成
Traffic DirectorモードのOracle Connection Managerは、高速アプリケーション通知(FAN)イベントに暗黙的にサブスクライブします。このためには、oraaccess.xml
でevents
を有効にする必要があります
DBMS_SERVICE
またはSRVCTL
(Oracle RACデータベースの場合)を使用して、特定のサービスのCOMMIT_OUTCOME
を指定します。
10.2.9 計画済停止イベントのためのTraffic DirectorモードのOracle Connection Managerの構成
Traffic DirectorモードのOracle Connection Managerは、高速アプリケーション通知(FAN)イベントに暗黙的にサブスクライブします。このためには、oraaccess.xml
でevents
を有効にする必要があります
計画済停止イベントの場合、DBMS_SERVICE
またはSRVCTL
を使用してサービスを構成し、failover_mode
をselect
に、commit_outcome
をTRUE
に、failover_restore
をLEVEL1
に設定します。
10.2.10 サービス・アフィニティのためのTraffic DirectorモードのOracle Connection Managerの構成
Oracle Connection ManagerをTraffic Directorモードで構成し、着信接続要求をルーティングするためのデフォルトの負荷分散メカニズムを変更します。
cman.ora
パラメータSERVICE_AFFINITY
を使用して、デフォルトの動作を変更し、パラメータをON
またはOFF
に設定します。
プロキシ常駐接続プーリング(PRCP)を使用するときには、ゲートウェイ・プロセスのパフォーマンスおよびリソース使用率を向上させるために、SERVICE_AFFINITY
パラメータをOFF
に設定することをお薦めします。
10.2.11 Traffic DirectorモードのOracle Connection ManagerでのTransport Layer Securityの構成
Traffic DirectorモードのOracle Connection Managerサーバー(CMAN-TDM)でウォレットを作成し、cman.ora
ファイルでTransport Layer Security (TLS)付きTCP/IPのリスニング・エンドポイントおよびウォレットの場所を指定します。
ノート:
Oracle Database 23ai以降、Oracle Wallet Manager (OWM)はサポートされなくなりました。orapki
コマンドライン・ツールを使用してOWMを置き換えることをお薦めします。
10.2.12 Traffic DirectorモードのOracle Connection Managerの制限事項
これらの機能は、Traffic DirectorモードのOracle Connection Manager (CMAN-TDM)では、すべてのドライバでサポートされていません。
-
透過的アプリケーション・コンティニュイティ(TAC)用のJava Database Connectivity (JDBC)オブジェクト
-
アドバンスト・キューイング(AQ)
-
データベース・リンク
-
データベースの起動または停止のコール
-
シャーディング(またはOracle Globally Distributed Database)
-
SQL翻訳
-
デュアルセッションプロキシ認証
-
OS認証
-
SYSDBA
、SYSOPER
などでの認証 -
ユーザー名とパスワードを明示的に渡さないSSL外部認証(DNなど)
-
オブジェクトREF
-
セッションの切替え
-
セッション移行
-
ナビゲーション・アクセスのためのOCIObject*コール
-
OCIPickerImage*コール
-
OCIAnyData*コール
-
OCISubscription*コール: アプリケーション・コンティニュイティ(AC)、TAC、ランタイム・ロード・バランシング(RLB)、高速アプリケーション通知(FAN)のクライアント側サブスクリプション
-
OCILCR*、OCIXStream*コール
-
OCIStmtExecute:
-
サーバー側でスクロール可能なカーソルのサポート
-
暗黙的結果
-
-
変更通知(CQN)
-
クライアント結果キャッシュ
-
データベース常駐接続プール(DRCP): 複数プロパティ・タグおよびPLSQLコールバック
-
OCIConnectionPool
-
Real Application Security (Javaの場合のみ)
-
一括コピー(ODP.Netのみ)
-
自己チューニング(ODP.Netのみ)
-
MultiThreadedServer (MTS)分散トランザクション(ODP.Netのみ)
-
Oracle Advanced Security (ASO)暗号化およびサポートされているアルゴリズム(ASOのみ)
-
アプリケーション・コンテキスト属性の使用
-
アプリケーションで提供される接続文字列で
SERVICE_NAME
のかわりにSIDを使用 -
パイプライン化文の実行
-
表のメタデータの変更
これは、文が常にCMAN-TDMによってキャッシュされるためです。
-
プロキシ常駐接続プール(PRCP)の接続によるパスワードの変更
-
暗黙的接続プーリングを使用したアプリケーション・コンティニュイティ
暗黙的接続プーリングが有効なPRCPまたはDRCPを使用してTACまたはACサービスに接続すると、CMAN-TDMは内部的にアプリケーション・コンティニュイティのサポートを無効にします。
10.3 逆接続用のトンネリング・モードのOracle Connection Managerの構成
トンネリング・モードのOracle Connection Managerは、サーバーCMANとクライアントCMANの間のトンネル接続を確立します。クライアントは、サーバーcmanに接続することで、トンネル経由で逆接続を行うことができます。
次の各トピックのタスクを実行して、トンネリング・モードのOracle Connection Managerを構成します。
- サーバー・トンネリング・モードのOracle Connection Manager用のcman.oraの構成
トンネリング・パラメータを使用して、サーバー・トンネリング・モードのOracle Connection Managerを設定します。 - クライアント・トンネリング・モードのOracle Connection Manager用のcman.oraの構成
クライアント・トンネリング・モードのOracle Connection Managerを設定するには、cman.oraファイルにtunnel_addressパラメータを設定する必要があります。 - 逆接続を行うためのクライアントの構成
サーバーCMANに接続する場合、クライアントはクライアントCMAN識別子を指定する必要があります。 - トンネル登録およびクライアント・アクセスのためのサーバーCMANのルールの構成
クライアントCMANは、トンネル・サービスを使用してサーバーCMANに接続します。 - クライアント側のOracle Connection ManagerのOracle Databaseサーバーの構成
データベースをクライアント側のOracle Connection Managerに登録する必要があります。
10.3.1 サーバー・トンネリング・モードのOracle Connection Manager用のcman.oraの構成
トンネリング・パラメータを使用して、サーバー・トンネリング・モードのOracle Connection Managerを設定します。
cman.ora
ファイルで、トンネリング・パラメータをON
に設定します。
cman.ora
構成。
CMAN_SERVER=
(CONFIGURATION =
(ADDRESS= (PROTOCOL=TCP)(HOST=SERVERCMAN)(PORT=1522))
(RULE_LIST=
(RULE=(SRC=*)(DST=*)(SRV=*)(ACT=accept))
)
(PARAMETER_LIST=
(TUNNELING=ON)
(GATEWAY_PROCESSES=16)
(NON_TUNNEL_GATEWAYS=8)
(TUNNEL_CAPACITY=32)
(TUNNEL_PROBE_INTERVAL=7)
)
)
10.3.2 クライアント・トンネリング・モードのOracle Connection Manager用のcman.oraの構成
クライアント・トンネリング・モードのOracle Connection Managerを設定するには、cman.oraファイルにtunnel_addressパラメータを設定する必要があります。
cman.ora
構成。
CMAN_CLIENT=
(CONFIGURATION=
(TUNNEL_ADDRESS=
(DESCRIPTION=
(ADDRESS=(PROTOCOL=TCP)(HOST=SERVERCMAN)(PORT=1522))
(CONNECT_DATA=(TUNNEL_ID=south))
)
)
(ADDRESS=(PROTOCOL=TCP)(HOST=CLIENTCMAN)(PORT=1523))
(RULE_LIST=
(RULE=(SRC=*)(DST=*)(SRV=*)(ACT=accept))
)
(PARAMETER_LIST=
(MAX_TUNNELS=2)
(GATEWAY_PROCESSES=16)
(NON_TUNNEL_GATEWAYS=8)
)
)
tunnel_id
のデフォルト名はRC
です。
10.3.3 逆接続を行うためのクライアントの構成
サーバーCMANに接続する場合、クライアントはクライアントCMAN識別子を指定する必要があります。
TUNNEL_SERVICE_NAME
パラメータを使用して、クライアントCMAN識別子を指定します。
tnsnames.ora
構成のサンプル。
SOUTH_SALES_DB=
(DESCRIPTION=
(ADDRESS=(PROTOCOL=TCP)(HOST=SERVERCMAN)(PORT=1522))
(CONNECT_DATA =
(TUNNEL_SERVICE_NAME=south)
(SERVICE_NAME=SALES)
)
)
ノート:
source_route
は逆接続ではサポートされていません。
10.3.4 トンネル登録およびクライアント・アクセスのためのサーバーCMANのルールの構成
クライアントCMANは、トンネル・サービスを使用してサーバーCMANに接続します。
クライアントCMANのトンネルIDは、サーバーCMANでサービスとして登録されます。
- rule_list構文を使用したサーバーCMANのルールの構成
各クライアントCMANのルールをソースとして追加し、サービスをトンネルとして追加する必要があります。クライアントCMANへのクライアント接続を許可するには、クライアントCMANを識別するサービスのルールを追加します。 - rule_group構文を使用したサーバーCMANのルールの構成
トンネルIDごとにグループを追加します。グループ内のルール・リストは、必要なソース・アドレスへのアクセス権を付与します。
10.3.4.1 rule_list構文を使用したサーバーCMANのルールの構成
各クライアントCMANのルールをソースとして追加し、サービスをトンネルとして追加する必要があります。クライアントCMANへのクライアント接続を許可するには、クライアントCMANを識別するサービスのルールを追加します。
宛先を*
またはlocalhostとして設定する必要があります。
rule_list
を使用したトンネリング・モードのサーバー側のOracle Connection Managerのサンプルcman.ora
構成。
CMAN_SERVER=
(CONFIGURATION=
(ADDRESS=
(PROTOCOL=TCP)(HOST=SERVERCMAN)(PORT=1522))
(RULE_LIST=
(RULE=(SRC=CLIENTCMAN)(DST=*)(SRV=tunnel)(ACT=accept))
(RULE=(SRC=CLIENTHOST)(DST=*)(SRV=south)(ACT=accept))
)
(PARAMETER_LIST=
(TUNNELING=ON)
(GATEWAY_PROCESSES=16)
(NON_TUNNEL_GATEWAYS=8)
(TUNNEL_CAPACITY=32)
(TUNNEL_PROBE_INTERVAL=7)
)
)
10.3.4.2 rule_group構文を使用したサーバーCMANのルールの構成
トンネルIDごとにグループを追加します。グループ内のルール・リストは、必要なソース・アドレスへのアクセス権を付与します。
宛先を*
またはlocalhostとして設定する必要があります。
rule_group
を使用したトンネリング・モードのサーバー側のOracle Connection Managerのサンプルcman.ora
構成。
CMAN_SERVER=
(CONFIGURATION=
(ADDRESS=(PROTOCOL=TCP)(HOST=SERVERCMAN)(PORT=1522))
(RULE_GROUP=
(GROUP=
(DESCRIPTION=(NAME=south))
(RULE_LIST=(RULE=(SRC=CLIENTCMAN)(DST=*)(SRV=*)(ACT=accept)))
(RULE_LIST=(RULE=(SRC=CLIENTHOST)(DST=*)(SRV=*)(ACT=accept)))
)
(GROUP=
(DESCRIPTION=(NAME=cmon))
(RULE_LIST=(RULE=(SRC=*)(DST=*)(SRV=*)(ACT=accept)))
)
)
(PARAMETER_LIST=
(TUNNELING=ON)
(GATEWAY_PROCESSES=16)
(NON_TUNNEL_GATEWAYS=8)
(TUNNEL_CAPACITY=32)
(TUNNEL_PROBE_INTERVAL=7)
)
)
10.3.5 クライアント側のOracle Connection ManagerのOracle Databaseサーバーの構成
データベースをクライアント側のOracle Connection Managerに登録する必要があります。
このガイドのOracle Connection Managerを使用する場合のOracle Databaseサーバーの構成の項では、データベースをOracle Connection Managerに登録する方法について説明しています。
ノート:
静的ルーティングは、トンネリング・モードのOracle Connection Managerではサポートされていません。10.4 IPv4およびIPv6のブリッジとしてのOracle Connection Managerの使用
一部のデータベース接続環境では、クライアントとデータベースが異なるバージョンのIPプロトコルを使用できるため、完全な接続性が存在しません。この場合は、その接続での2つ以上のホップで、異なるバージョンのIPプロトコルが使用されています。
たとえば、要求は、IPv4ソースからIPv6宛先、IPv6ソースからIPv4宛先、またはIPv4ネットワークを通じてIPv6からIPv6に渡されます。
IPv4とIPv6の間のネットワーク・ブリッジとしてOracle Connection Managerを使用できます。Oracle Connection Managerがブリッジとして機能するには、少なくとも1つのIPv4インタフェースと少なくとも1つのIPv6インタフェースで構成されたデュアル・スタック・ホスト上で実行する必要があります。
IPv6アドレスに基づいてフィルタにかけるには、Oracle Connection Managerのフィルタリング機能を使用します。ルールは、完全なIPアドレスまたは部分的なIPアドレスに基づいて設定できます。次の図は、IPv6アドレスの形式を示しています。
図の上部の数字は、アドレス内のビット数を示しています。IPv6アドレスの各16進文字は、4ビットを表します。ビット4から16はアドレスの最上位レベルのアグリゲータ識別子(TLA ID)部分です。ビット25から49は次のレベルのアグリゲータ識別子(NLA ID)部分です。
たとえば、アドレス2001:0db8::203:BAFF:FE0F:C74B
では、最初の4つの16進文字(2001
)のバイナリ表記は次のようになります。
0010000000000001
したがって、アドレス内の先頭の3ビットは001
になります。アドレスのTLA ID部分は0000000000001
になります。
次の手順では、IPv6アドレス用のルール・フィルタを作成する方法について説明します。
ORACLE_BASE_HOME/network/admin
ディレクトリにあるcman.ora
ファイルにナビゲートします。cman.ora
ファイルがORACLE_BASE_HOME/network/admin
ディレクトリにない場合は、ORACLE_HOME/network/admin
ディレクトリでファイルを探します。- テキスト・エディタを使用して
cman.ora
ファイルを開きます。 - IPv6アドレス形式に基づいて、
RULE_LIST
でRULE
を作成します。たとえば、ソース・ホストがアドレス
2001:0db8::203:BAFF:FE0F:C74B
のIPv6専用ホストで、宛先がSALESL1593
という名前のIPv4専用ホストであるとします。次のいずれかのルールを作成して、Oracle Connection ManagerをIPv6とIPv4の間のブリッジとして構成します。ルールのタイプ 説明 例 サブネットIDに基づいたフィルタ
フィルタリングはサブネットID以下の64ビットに基づいています。
(RULE = (SRC = 2001:0db8::203:BAFF:FE0F:C74B/
64
) (DST = SALESL1593) (SRV = SALES) (ACT = ACCEPT) (ACTION_LIST = (AUT=ON)(MOCT=10)(MIT=30)(CONN_STATE=YES)) )NLA IDに基づいたフィルタ
フィルタリングはNLA ID以下の48ビットに基づいています。
(RULE = (SRC = 2001:0db8::203:BAFF:FE0F:C74B/
48
) (DST = SALESL1593) (SRV = SALES) (ACT = ACCEPT) (ACTION_LIST = (AUT=ON)(MOCT=10)(MIT=30)(CONN_STATE=YES)) )TLA IDに基づいたフィルタ
フィルタリングはTLA ID以下の16ビットに基づいています。
(RULE = (SRC = 2001:0db8::203:BAFF:FE0F:C74B/
16
) (DST = SALESL1593) (SRV = SALES) (ACT = ACCEPT) (ACTION_LIST = (AUT=ON)(MOCT=10)(MIT=30)(CONN_STATE=YES)) )ビット数に基づいたフィルタ
フィルタリングはアドレスの先頭の60ビットに基づいています。
(RULE = (SRC = 2001:0db8::203:BAFF:FE0F:C74B/
60
) (DST = SALESL1593) (SRV = SALES) (ACT = ACCEPT) (ACTION_LIST = (AUT=ON)(MOCT=10)(MIT=30)(CONN_STATE=YES)) )
10.5 Oracle Connection Managerを使用したサービス拒否攻撃の回避
Oracle Connection Manager (CMAN)が特定の時間間隔内に単一のIPアドレスから処理できるクライアント接続数に制限を適用できます。
IPレート制限を適用するには、cman.ora
構成ファイルでIP_RATE_COUNT
パラメータを設定します。このパラメータには、単一のIPアドレスから許可される接続の数を指定します。指定されたIPレート制限はCMANエンドポイント・レベルで適用されます。
cman.ora
ファイルで次のオプション・パラメータも設定できます。
-
IP_RATE_INTERVAL
: IPアドレスからIP_RATE_COUNT
の接続数を受け入れる時間間隔を秒単位で指定します。 -
IP_RATE_BLOCK
: 指定したIPレート制限の超過後に、IPアドレスがブロックされる期間を分単位で指定します。
IP_RATE_INTERVAL
ごとのIP_RATE_COUNT
の制限を超えると、CMANはそのIPアドレスを拒否してIP_RATE_BLOCK
分間ブロックします。CMANは、IP rate limit enforced for IPアドレス
のエラー・メッセージをOracle Connection Managerのログ・ファイルに記録します。
10.6 Oracle Connection Managerの起動および停止
Oracle Connection Managerを構成したら、Oracle Connection Manager制御(CMCTL)ユーティリティを使用してこれを起動および管理できます。
オペレーティング・システムのコマンドラインで、このユーティリティの基本的な構文は次のとおりです。
cmctl [command] [argument1 . . . argumentN] [-c instance_name]
-c
パラメータは、管理するOracle Connection Managerインスタンスを指定します。インスタンスはcman.ora
ファイルに定義されます。
ノート:
Oracle Connection Managerパラメータへのパスワード・アクセスの使用は、Oracle Database 23aiでサポートが終了しました。Oracleには、拡張接続方法であるローカル・オペレーティング・システム認証(LOSA)が用意されています。これにより、CMANを起動したユーザーのみが管理操作を実行できます。この方法は、Oracle Databaseで使用される他のオペレーティング・システム認証方法と一致しています。CMANへのパスワード・アクセスを現在使用している場合、CMANパスワードを削除し、かわりにLOSAを使用することをお薦めします。
Oracle Connection Manager制御ユーティリティを使用してOracle Connection Managerを起動および停止するには:
10.7 CMCTL RESTインタフェースについて
CMCTL RESTインタフェースは、RESTインタフェースを使用してリモート・マシンからOracle Connection Manager (Oracle CMAN)インスタンスを管理するために役立ちます。HTTPSをサポートしているクライアントは、CMCTLと同等のコマンドを発行できます。各REST APIコールには、Basic
認証方式が指定されているWWW-Authenticate
HTTPSヘッダーが必要です。
- CMCTL RESTインタフェースの構成
cman.ora
のREST_ADDRESS
パラメータを使用して、RESTエンドポイントのホスト名とオートを構成します。CMCTL RESTインタフェース認証では、Oracle CMANウォレット内で使用可能なユーザー名とパスワードを使用します。 - CMCTLコマンドのREST API
CMCTL RESTインタフェースを使用すると、クラウド・デプロイメントにおけるCMANタスクを自動化できます。この機能は、CMANのcmctl
制御ユーティリティに似ています。
10.7.1 CMCTL RESTインタフェースの構成
cman.ora
のREST_ADDRESS
パラメータを使用して、RESTエンドポイントのホスト名とポートを構成します。CMCTL RESTインタフェース認証では、Oracle CMANウォレット内で使用可能なユーザー名とパスワードを使用します。
10.7.2 CMCTLコマンドのREST API
CMCTL RESTインタフェースを使用すると、クラウド・デプロイメントにおけるCMANタスクを自動化できます。この機能は、CMANのcmctl
制御ユーティリティに似ています。
CMCTL RESTインタフェースでは、RESTインタフェース・プロセスとOracle CMANリスナーとの間でローカル・オペレーティング・システム認証が使用されます。
REST構成を含むOracle CMANインスタンスを起動した後は、HTTPS基本認証を使用してRESTコールを行うことができます。
CMAN REST APIを確認するには、curl
コマンドライン・ツールを使用します。たとえば、実行中のサービスを一覧表示するには、次のコマンドを使用します。
ノート:
curl
コマンドは、テストおよび検証の目的にのみ使用されます。
curl -X GET -u username:password https://cmanhostname:rest_port/show/services
10.8 パッチ適用時のCMANセッションの移行
計画的な、停止時間なしのOracle CMANのアップグレードまたはパッチ適用の間に、確立されたクライアント/サーバー・セッションを、あるOracle Connection Manager (CMAN)インスタンスから別のOracle CMANインスタンスに移行できます。
移動中のデータがある実行中のセッションは、サービスを中断することなく移行できます。クライアントまたはサーバーで実行されている操作は、サービスが失われることなく、移行中にシームレスに引き続き実行されます。移行中に新しいクライアント接続を追加することもできます。
クライアント/サーバー・セッションを移行するには、次のステップを実行します。
- クライアントからOracle CMANおよびOracle CMANからサーバーの両方でTCPが使用される場合。
- クライアントまたはサーバーの一方でTCPS (TLS)、他方でTCPが使用される場合。TCPSを使用するクライアントとTCPSを使用するサーバーの両方にOracle Database 21c以降をインストールする必要があります。
サポートされていない接続は、タイムアウトになるまで接続されたままになります。
ノート:
- セッション移行は通常モードのOracle CMANでのみサポートされ、Traffic DirectorモードのOracle CMANではサポートされません。
- クライアントからOracle CMANおよびOracle CMANからサーバーの両方でTCPSを使用している場合、移行はサポートされません。
- 現在、Microsoft Windowsではセッションの移行はサポートされません。
10.9 Oracle Connection Managerの機能強化
Oracle Connection Managerは、Oracle Databaseサーバーへのリクエストをプロキシおよび選別します。
-
Oracle Connection Managerは、Transport Layer Security (TLS)プロトコルをサポートすることにより、サーバーへのより安全なアクセスを提供します。このサポートにより、データベース・クライアントは、Oracle Connection Managerを経由したTCPSプロトコルによるサーバーとの通信が可能になります。Oracle Connection Managerを構成して、一方の側にTLS接続を、もう一方の側に非TLS接続を設定することもできます。これは、外部クライアント向けの内部データベース・サーバーをインターネットから隠すための安全策としても機能します。
多重化: データベース・クライアントがリクエストしたエンドポイントに、すでにゲートウェイがTCPS接続している場合、新しい接続はゲートウェイによって同じ接続で多重化されます。
-
複数のプロトコル・アドレス上でのリッスンが可能になっています。複数のリスニング・エンドポイントにより、Oracle Connection ManagerはTCPとTCPSの両方を同時にサポートできるようになりました。従来の単一プロトコル・アドレスの構成も引き続きサポートされます。たとえば:
CMAN_ALIAS= (configuration= (address_list= (address=(protocol=TCP)(host=a.b.c.d)(port=12522)) (address=(protocol=TCPS)(host=a.b.c.d)(port=12523)) ) .. )
-
ネットワーク・データの圧縮機能も追加されています。これにより、ネットワーク・スループットが向上し、Oracle DatabaseクライアントとOracle Databaseサーバーとの間のデータ転送が高速化されます。これは、データベース・クライアント、データベース・サーバー、およびネクスト・ホップの圧縮機能に応じて、様々な方法で実現されます。圧縮は、あらゆる2つのノード間でネゴシエートされたときに有効化されます。
連続した3つ以上のノードが圧縮をサポートしていてネゴシエートした場合、このケースは、中間ノードが圧縮解除を実行することなく単に圧縮されたデータを中継するという方法で処理されます。
圧縮は、Oracle DatabaseクライアントがOracle Database 12cリリース以前で圧縮をサポートできない場合でも、Oracle Connection Managerとサーバーとの間でサポートされます。
-
最大2 MBのSDUがサポートされているため、Oracle DatabaseクライアントとOracle Databaseサーバーは、Oracle Connection Managerによって接続を確立するときに、より高いSDUをネゴシエートできます。
-
このリリースから、登録に対する有効ノード・チェックがOracle Connection Managerのデフォルトで有効化されます。デフォルトでは、Oracle Connection Managerに登録できるデータベースは、ローカル・ノード上にあるデータベースにかぎられます。リモート・ノード上のデータベースは、パラメータの
REGISTRATION_INVITED_NODES
とREGISTRATION_EXCLUDED_NODES
を使用することで、Oracle Connection Managerへの登録を許可または拒否できます。 -
Oracle Database 21c以降では、Oracle Connection Managerを使用して、サービス全体での帯域幅の配分を管理できます。
Oracle Connection Managerには、次のような機能拡張があります。
- CMCTLコマンドのREST API
- ルールのGROUP構文
- サービス・レベルでの1秒当たりのバイト数で示すBANDWIDTH