10 Oracle Connection Managerの構成と管理
Oracle Connection Managerは、データベースまたはプロキシ・サーバーに接続要求を転送するプロキシ・サーバーです。これはセッション・レベルで動作します。通常、データベース・サーバーおよびクライアント・コンピュータとは別のコンピュータに常駐しています。Oracle Connection Managerは、Oracle Database 20c Enterprise Editionをインストールすると使用できるようになります。これはクライアント・ディスク上のカスタム・インストール・オプションです。
Oracle Connection Managerの主要機能は次のとおりです。
-
アクセス制御: ルールベースの構成を使用してユーザーが指定したクライアント要求をフィルタにかけ、フィルタを通過したものを受け入れます。
-
セッションの多重化: 共有サーバーの接続先へのネットワーク接続により、複数のクライアント・セッションを集中化します。
Oracle Connection Manager機能の構成方法を学習します。
- cman.oraファイルについて
- Oracle Connection Managerの設定
Oracle Connection Managerを設定するには、プロキシ・サーバー、データベースおよびクライアントを構成する必要があります。 - Traffic DirectorモードのOracle Connection Managerの構成
Traffic DirectorモードのOracle Connection Managerは、データベース・クライアントとデータベース・インスタンスの間に配置されるプロキシです。 - IPv4およびIPv6のブリッジとしてのOracle Connection Managerの使用
一部のデータベース接続環境では、クライアントとデータベースで異なるバージョンのIPプロトコルを使用できるため、完全な接続性が存在しません。この場合は、その接続での2つ以上のホップで、異なるバージョンのIPプロトコルが使用されています。 - Oracle Connection Managerの起動および停止
Oracle Connection Managerを構成したら、Oracle Connection Manager制御(CMCTL)ユーティリティを使用してこれを起動および管理できます。 - Oracle Connection Managerの機能拡張
Oracle Connection Managerにより、Oracle Database Serverに対するリクエストをプロキシ化し選別します。
関連項目:
-
Oracle Connection Managerの概要は、「Oracle Net Servicesの概要」を参照してください
-
Oracle Connection Managerのアーキテクチャの概要は、「通信レイヤーの理解」を参照してください
親トピック: Oracle Net Servicesの構成と管理
10.1 cman.oraファイルについて
cman.ora
ファイルのパラメータを設定して、Oracle Connection Managerをホストするコンピュータを構成します。cman.ora
ファイルは、Oracle Connection Managerをホストするコンピュータ上の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リファレンス』を参照してください。
10.2 Oracle Connection Managerの設定
Oracle Connection Managerを設定するには、プロキシ・サーバー、データベースおよびクライアントを構成する必要があります。
10.2.1 Oracle Connection Managerホスト用のcman.oraファイルの構成
cman.ora
ファイルは手動で変更します。次の手順では、sqlnet.ora
ファイルにパラメータを設定する方法について説明します。
-
テキスト・エディタを使用して
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 (CMAN)でのTransport Layer Securityの構成
この構成ステップでは、CMANウォレットを証明書を使用して作成してあることを確認し、TCP/IPとTLSを使用するリスニング・エンドポイントを作成し、そのウォレットの場所を指定します。 - アクセス制御の有効化
親トピック: Oracle Connection Managerの設定
10.2.1.1 Oracle Connection Manager (CMAN)でのTransport Layer Securityの構成
この構成ステップでは、CMANウォレットが証明書で作成されていることを確認し、TLS付きTCP/IPを使用するリスニング・エンドポイントを作成し、ウォレットの場所を指定します。
ステップ1: CMANウォレットが作成されていることと、証明書があることを確認してください。
-
Oracle Wallet Managerを起動します。
-
UNIXの場合:
$ORACLE_HOME/bin
から次のコマンドを入力します。owm
-
Windowsの場合: 「スタート」を選択して「プログラム」に移動し、「Oracle-HOME_NAME」をクリックし、「Integrated Management Tools」を選択してから「Wallet Manager」をクリックします。
-
-
「ウォレット」メニューから「オープン」を選択します。
ウォレットにReadyステータスの証明書が含まれ、自動ログインがオンになっている必要があります。自動ログインがオンになっていない場合は、「ウォレット」メニューから選択し、ウォレットを再度保存します。自動ログインがオンになります。
ステップ2: TLS付きTCP/IP (TCPS)を使用するリスニング・エンドポイントを作成し、cman.oraのCMAN側でCMANウォレットの場所を指定します。
次の例は、TCPS
プロトコルを使用した cman.ora
を示しています。
CMAN_1=
(CONFIGURATION=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=tcps)(HOST=proxysvr)(PORT=1522))
(ADDRESS=(PROTOCOL=tcp)(HOST=proxysvr)(PORT=1523))
)
(RULE_LIST=
(RULE=(SRC=*)(DST=*)(SRV=*)(ACT=accept))
)
(PARAMETER_LIST=
(MAX_GATEWAY_PROCESSES=8)
(MIN_GATEWAY_PROCESSSES=3)
)
)
wallet_location =
(SOURCE=
(METHOD=File)
(METHOD_DATA=
(DIRECTORY=wallet_location)
)
)
10.2.1.2 アクセス制御の有効化
TCP/IP環境で指定されたデータベース・サーバーへのクライアント・アクセスを制御するには、RULE_LISTパラメータを使用します。このパラメータでフィルタリング・ルールを入力し、データベース・サーバーへの特定のクライアント・アクセスを許可または制限できます。
次の手順では、アクセス制御の構成方法を説明します。
10.2.2 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.2.3 Oracle Connection Managerを使用する場合のOracle Databaseサーバーの構成
データベース・サーバーの構成には、リモートからOracle Connection Managerでデータベース情報を登録する方法と、オプションでサーバーの多重化を構成する方法があります。
ノート:
Oracle Connection Managerに登録するデータベースがリモート・ノードにある場合は、cman.ora
のパラメータVALID_NODE_CHECKING_REGISTRATION
を構成してリモート登録を許可する必要があります。
親トピック: Oracle Connection Managerの設定
10.2.3.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.2.3.2 Oracle Connection Managerのセッションの多重化の有効化
Connection Managerでセッションの多重化を利用できるようにするには、次に示すように初期化パラメータ・ファイル(init.ora
)のDISPATCHERSパラメータに、属性PROTOCOL
およびMULTIPLEX
を設定します。
DISPATCHERS="(PROTOCOL=tcp)(MULTIPLEX=on)"
表10-2では、多重化の異なるレベルを設定するパラメータを示しています。
表10-2 セッションを多重化するパラメータ
属性 | 説明 |
---|---|
PROTOCOL |
ディスパッチャがリスニング・エンドポイントを生成するときに使用するネットワーク・プロトコルです。 |
MULTIPLEX |
このパラメータは、次のようにセッションの多重化に使用します。
|
関連項目:
-
共有サーバーの構成の詳細は、「共有サーバー・アーキテクチャの構成」を参照してください
-
パラメータの完全なリストおよびそのデフォルト値と許容値については、『Oracle Database Net Servicesリファレンス』を参照してください。
10.3 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用のcman.oraファイルの構成
cman.ora
ファイルのTDM=YES
設定を使用して、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のプロキシ常駐接続プールの構成
- 計画外イベントのための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でのTransport Layer Securityの構成
この構成ステップでは、Traffic Directorモード・ウォレットのOracle Connection Managerが証明書を使用して作成されたことを確認し、TLS付きTCP/IPを使用するリスニング・エンドポイントを作成し、ウォレットの場所を指定します。 - Traffic DirectorモードのOracle Connection Managerの制限事項
これらの機能は、Traffic DirectorモードのOracle Connection Managerでは、すべてのドライバでサポートされていません。
10.3.1 Traffic DirectorモードのOracle Connection Managerの使用について
Traffic DirectorモードのOracle Connection Managerは、サポートされているデータベース・クライアントとデータベース・インスタンスとの間に配置されたプロキシです。
現在のデータベースのOCIクライアントまたはサポートされている古いバージョンのOCIクライアント(Oracle Database 11gリリース2 (11.2)以降)は、Traffic DirectorモードのOracle Connection Managerに接続できます。Traffic DirectorモードのOracle Connection Managerでは、高可用性(HA)が改善され(計画済、計画外を問わず)、接続の多重化がサポートされ、ロード・バランシングが提供されます。また、この機能には、Oracle Connection Manager (CMAN)やサービスの停止イベントに関する計画済停止についてOCIクライアントに伝えるインバンド・クライアント通知メカニズムが用意されています。Traffic DirectorモードのOracle Connection Managerを構成するには、cman.ora
構成ファイルで追加のCMANパラメータを指定する必要があります。
Traffic DirectorモードのOracle Connection Managerとして機能するCMANを構成するには、tdm
やtdm_threading_model
などの新しいパラメータをcman.ora
構成ファイルに追加する必要があります。Oracle Connection Manager (CMAN)は、Oracle RACデータベースとRAC以外のデータベースの両方のための標準Oracle Netプロキシです。
Traffic DirectorモードのOracle Connection Managerが接続するデータベースには、アプリケーション・ユーザーとして接続できるよう、CONNECT THROUGH
権限を付与されたtdmなどのユーザーが存在する必要があります。Traffic DirectorモードのOracle Connection Managerはプロキシ認証を使用し、このユーザーとして接続します。
関連項目:
Traffic DirectorモードのOracle Connection Managerをサポートするcman.ora
ファイル内の既存のパラメータについては、Oracle Database Net Servicesリファレンスを参照してください。
CONNECT THROUGHの詳細は、Oracle Databaseセキュリティ・ガイドを参照してください。
このリリースでは、Traffic DirectorモードのOracle Connection Managerは次のようなサポートを提供します。
-
透過的パフォーマンスの強化および接続の多重化
-
アプリケーション停止時間ゼロ
-
計画済のデータベース・メンテナンスまたはPDBの再配置
-
大部分が読取りのワークロードでの計画外データベース停止
-
-
単一障害点のないTraffic DirectorモードのOracle Connection Managerの高可用性
-
セキュリティと分離
操作のモード
-
プールされた接続モード
これには、次のデータベース・クライアント・リリースを使用する任意のアプリケーションが含まれます。-
OCIおよびオープン・ソース・ドライバ(11.2.0.4以降)
-
JDBC (12.1以降)
-
ODP.NET (12.2以降)
-
-
プールされていない接続(または専用)モード
これには、データベース・クライアント・リリース11.2.0.4以降を使用する任意のアプリケーションが含まれます。このモードでは、接続の多重化などの一部の機能は使用できません。
透過的パフォーマンスの強化およびセッションの多重化
-
文キャッシュ、行のプリフェッチおよび結果セット・キャッシュがすべての操作モードで自動的に有効になります。
-
プロキシ常駐接続プール(PRCP、プロキシ・モードのDRCP)を使用したデータベース・セッションの多重化(プールされたモードのみ)。アプリケーションは、TDMとデータベースとの間における透過的な接続時 ロード・バランシングおよび実行時ロード・バランシングを利用できます。
-
Traffic DirectorモードのOracle Connection Managerの複数のインスタンス: クライアント側の接続時ロード・バランシングにより、またはロード・バランサ(BigIP、NGINXなど)により、アプリケーションのスケーラビリティが向上します
アプリケーション停止時間ゼロ - 計画済のデータベース・メンテナンスまたはPDBの再配置
-
プールされたモード
Traffic DirectorモードのOracle Connection Managerは、計画済停止のONSイベントに応答し、作業をリダイレクトします。要求が完了すると、Traffic DirectorモードのOracle Connection Managerのプールから接続がドレインされます。
サービスの再配置は、データベース・リリース11.2.0.4以降でサポートされています。
PDBの再配置: PDBが再配置されると、ONSが構成されていなくても、Traffic DirectorモードのOracle Connection Managerはインバンド通知に応答します(18.1以降のサーバーの場合のみ)
-
プールされていないモードまたは専用モード
クライアントからのリクエスト境界情報は受信しません。Traffic DirectorモードのOracle Connection Managerは、多くのアプリケーションの計画済停止をサポートしています(リクエストまたはトランザクションの境界を越えて単純なセッション状態やカーソル状態のみを保持する必要がある場合)。これには、次の操作が含まれます。-
トランザクション境界でサービスまたはPDBを停止するか、Oracle Database 18cの「継続的なアプリケーション可用性」を利用してリクエスト境界でサービスを停止します。
-
Traffic DirectorモードのOracle Connection Managerは、「TAFのフェイルオーバーのリストア」を利用して、再接続して単純な状態をリストアします。
-
計画外のデータベース停止
プールされたモードとプールされていない(専用)モードの両方で、Traffic DirectorモードのOracle Connection Managerは、「TAFのフェイルオーバーのリストア」を利用して単純なセッション状態またはカーソル状態をリストアし、SELECT文と最初のDML文をリプレイすることで、大部分が読取りのアプリケーションの計画外停止をサポートします。
セキュリティと分離
Traffic DirectorモードのOracle Connection Managerには、次のような機能があります。
-
TCP/TCPSとプロトコルの変換をサポートするデータベース・プロキシ
-
IPアドレス、サービス名およびTLSウォレットに基づくファイアウォール
-
マルチテナント環境でのテナントの分離
-
サービス拒否攻撃とファジング攻撃からの保護
-
オンプレミス・データベースとOracle Cloudの間のデータベース・トラフィックのセキュア・トンネリング
Traffic DirectorモードのOracle Connection Managerの高可用性
-
ロード・バランサやクライアント側ロード・バランシング、接続文字列でのフェイルオーバーを使用した、Traffic DirectorモードのOracle Connection Managerの複数のインスタンス
-
Traffic DirectorモードのOracle Connection Managerのインスタンスのローリング・アップグレード
-
計画済停止におけるクライアントからTraffic DirectorモードのOracle Connection Managerへの既存の接続のクローズ
-
Oracle Databaseリリース18c以降のクライアントへのインバンド通知。以前のリリースのクライアントの場合、現在のリクエストのレスポンスとともに通知が送信されます。
10.3.2 Traffic DirectorモードのOracle Connection Manager用のcman.oraファイルの構成
Traffic DirectorモードのOracle Connection Managerは、cman.ora
ファイルのTDM=YES
設定を使用して設定できます。
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
10.3.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
ウォレットは、各サービスに構成されている必要があります。新しいサービスが追加された場合、同じウォレットを使用して新しいサービス用の資格証明を指定する必要があります。
ノート:
新しいサービスが追加され、この新しいサービス用の資格証明がウォレットに追加されるたびに、変更を有効にするためにOracle Cloud Traffic Managerを再起動する必要があります。- Traffic DirectorモードのOracle Connection Managerによる外部パスワード・ストアの使用の有効化
ステップには、Oracleウォレットの作成と、そのウォレット内の各データベース・サービスのためのデータベース接続資格証明の作成があります。
10.3.3.1 Traffic DirectorモードのOracle Connection Managerによる外部パスワード・ストアの使用の有効化
ステップには、Oracleウォレットの作成と、そのウォレット内の各データベース・サービスのためのデータベース接続資格証明の作成があります。
ステップ1: コマンドラインで次の構文を使用して、Traffic DirectorモードのOracle Connection Managerでウォレットを作成します。
mkstore -wrl wallet_location -create
wallet_location
は、ウォレットを作成して格納するディレクトリのパスです。このコマンドにより、指定した場所での自動ログイン機能が有効化されたOracleウォレットが作成されます。自動ログイン機能を使用すると、パスワードの指定なしに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のユーザー名とパスワードです。
Traffic DirectorモードのOracle Connection Managerを使用してアクセスする必要があるデータベース・サービスごとに、このステップを繰り返します。
ノート:
-
指定されたデータベースのすべてのサービス間で同じ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固有のプロキシ・ユーザーを使用します。
-
TLS (TCPS)
付きTCP/IP
構成の場合、Traffic DirectorモードのOracle Connection Managerウォレットがすでに作成されてています。したがって、ステップ1を省略し、mkstore
でwallet_location
を指定する際、TCPS
構成に使用したのと同じ場所を使用します。
10.3.4 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.3.6 Traffic DirectorモードのOracle Connection Managerのプロキシ常駐接続プールの構成
Traffic DirectorモードのOracle Connection Manager 18.1は、プロキシ常駐接続プーリング(PRCP)をサポートしています。PRCPは、ターゲット・データベースへの少数のサーバー接続で構成される接続プールを使用して、ルーティングされる多数のクライアント接続に対して接続サービスを提供します。PRCPは、データベース層での接続負荷(接続時のメモリー使用量)を軽減し、実行時ロード・バランシング(RLB)を実行してパフォーマンスを高めます。これにより、データベースに対する接続負荷を軽減できます。
oraaccess.xml
構成ファイルで次のパラメータのセットを指定することで構成されます。
-
<session_pool>
– セッション・プール・パラメータを設定します。 -
<enable>
–true
またはfalse
を指定して、セッション・プールの構成を有効にします。これは必須のパラメータです。つまり、<session_pool>
が構成されている場合、<enable>
の構成も必要です。 -
<min_size>
— プール内の最小接続数。デフォルト値は0
です。Traffic DirectorモードのOracle Connection Managerは異機種間プールのシナリオであるため、他のすべての値は無視されます。 -
<max_size>
— プール内の最大接続数。これは必須のパラメータであるため、デフォルト・パラメータはありません。つまり、<session_pool>
が構成されている場合、<max_size>
の構成も必要です。 -
<increment>
— プール拡張時のプール内の接続数の増加数。デフォルト値は1
です。 -
<inactivity_timeout>
— プール内でアイドル状態の接続が切断されるまでの最大時間(秒単位)。デフォルト値は0
です。これは制限されていないことを意味します。 -
<max_use_session>
— 接続を取得し、プールに解放できる最大回数。デフォルト値は0
です。これは制限されていないことを意味します。 -
<max_life_time_session>
— プール内の接続の有効期限(秒単位)。デフォルト値は0
です。これは制限されていないことを意味します。
oraaccess.xml
ファイルを使用して、必要な接続サービスごとにプロキシ常駐接続プールを構成できます。次の例では、2つのグループの接続パラメータが示され、それぞれがsales_config
とhr_config
というconfig別名に関連付けられています。アプリケーションが使用する各接続文字列はそれぞれのconfig別名にマップされているため、2つのプロキシ常駐接続プールが示されています。<oraaccess xmlns="http://xmlns.oracle.com/oci/oraaccess"
xmlns:oci="http://xmlns.oracle.com/oci/oraaccess"
schemaLocation="http://xmlns.oracle.com/oci/oraaccess
http://xmlns.oracle.com/oci/oraaccess.xsd">
<default_parameters>
</default_parameters>
<!--
Create configuration descriptions, which are
groups of connection parameters associated with
a config_alias.
-->
<config_descriptions>
<config_description>
<config_alias> sales_config </config_alias>
<parameters>
<session_pool>
<enable>true</enable>
<min_size> 10 </min_size>
<max_size> 100 </max_size>
<increment> 5 </increment>
</session_pool>
</parameters>
</config_description>
<config_description>
<config_alias> hr_config </config_alias>
<parameters>
<session_pool>
<enable>true</enable>
<max_size> 10 </max_size>
</session_pool>
</parameters>
</config_description>
</config_descriptions>
<!--
Now map the connection string used by the application
with a config_alias.
-->
<connection_configs>
<connection_config>
<connection_string>sales.us.example.com</connection_string>
<config_alias>sales_config</config_alias>
</connection_config>
<connection_config>
<connection_string>hr.us.example.com</connection_string>
<config_alias>hr_config</config_alias>
</connection_config>
</connection_configs>
</oraaccess>
関連項目:
Oracle CMAN構成ファイルの概要については、Oracle Database Net Servicesリファレンスを参照してください
10.3.7 計画外イベントのためのTraffic DirectorモードのOracle Connection Managerの構成
Traffic DirectorモードのOracle Connection Managerは、高速アプリケーション通知(FAN)イベントに暗黙的にサブスクライブします。このためには、oraaccess.xml
でevents
を有効にする必要があります。
DBMS_SERVICE
またはSRVCTL
(Oracle RACデータベースの場合)を使用して、特定のサービスのCOMMIT_OUTCOME
を指定します。
関連項目:
-
DBMS_SERVICE
の詳細は、Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンスを参照してください -
SRVCTLに関する詳細は、Oracle Clusterware管理およびデプロイメント・ガイドを参照してください
10.3.8 計画済停止イベントのための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
に設定します。
関連項目:
-
DBMS_SERVICE
の詳細は、Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンスを参照してください -
SRVCTLに関する詳細は、Oracle Clusterware管理およびデプロイメント・ガイドを参照してください
10.3.9 サービス・アフィニティのためのTraffic DirectorモードのOracle Connection Managerの構成
Oracle Connection ManagerをTraffic Directorモードで構成し、着信接続要求をルーティングするためのデフォルトの負荷分散メカニズムを変更します。
cman.ora
パラメータSERVICE_AFFINITY
を使用して、デフォルトの動作を変更し、パラメータをON
またはOFF
に設定します。
プロキシ常駐接続プーリング(PRCP)を使用するときには、ゲートウェイ・プロセスのパフォーマンスおよびリソース使用率を向上させるために、SERVICE_AFFINITY
パラメータをOFF
に設定することをお薦めします。
10.3.10 Traffic DirectorモードのOracle Connection ManagerでのTransport Layer Securityの構成
この構成ステップでは、Traffic Directorモード・ウォレットのOracle Connection Managerが証明書を使用して作成されたことを確認し、TLS付きTCP/IPを使用するリスニング・エンドポイントを作成し、ウォレットの場所を指定します。
ステップ1: Traffic DirectorモードのOracle Connection Managerのウォレットが作成されていることと、証明書があることを確認してください。
-
Oracle Wallet Managerを起動します。
-
UNIXの場合:
$ORACLE_HOME/bin
から次のコマンドを入力します。owm
-
Windowsの場合: 「スタート」を選択して「プログラム」に移動し、「Oracle-HOME_NAME」をクリックし、「Integrated Management Tools」を選択してから「Wallet Manager」をクリックします。
-
-
「ウォレット」メニューから「オープン」を選択します。
ウォレットにReadyステータスの証明書が含まれ、自動ログインがオンになっている必要があります。自動ログインがオンになっていない場合は、「ウォレット」メニューから選択し、ウォレットを再度保存します。自動ログインがオンになります。
ステップ2: TLS付きTCP/IP (TCPS)を使用するリスニング・エンドポイントを作成し、cman.oraのCMAN側でTraffic DirectorモードのOracle Connection Managerのウォレットの場所を指定します。
次の例は、TCPS
プロトコルを使用したcman.ora
を示しています。
CMAN_1=
(CONFIGURATION=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=tcps)(HOST=proxysvr)(PORT=1522))
(ADDRESS=(PROTOCOL=tcp)(HOST=proxysvr)(PORT=1523))
)
(RULE_LIST=
(RULE=(SRC=*)(DST=*)(SRV=*)(ACT=accept))
)
(PARAMETER_LIST=
(MAX_GATEWAY_PROCESSES=8)
(MIN_GATEWAY_PROCESSSES=3)
)
)
wallet_location =
(SOURCE=
(METHOD=File)
(METHOD_DATA=
(DIRECTORY=wallet_location)
)
)
SQLNET.WALLET_OVERRIDE = TRUE
10.3.11 Traffic DirectorモードのOracle Connection Managerの制限事項
これらの機能は、Traffic DirectorモードのOracle Connection Managerでは、すべてのドライバでサポートされていません。
-
分散トランザクション
-
アドバンスト・キューイング(AQ)
-
データベースの起動または停止のコール
-
シャーディング
-
XML
-
SQL翻訳
-
プロキシ認証およびTLS外部認証(DNなど)
-
オブジェクトREF
-
セッションの切替え
-
ナビゲーション・アクセスのためのOCIObject*コール
-
OCIPickerImage*コール
-
OCIAnyData*コール
-
OCIDirPath*コール
-
OCISubscription*コール
-
OCILCR*、OCIXStream*コール
-
OCIStmtExecute:
-
スクロール可能カーソル
-
暗黙的結果
-
-
変更通知(CQN)
-
クライアント結果キャッシュ
-
OCI_MIGRATEモード
-
DRCP: マルチプロパティのタグとPL/SQLコールバック
-
アプリケーション・コンティニュイティ
-
OCIConnectionPool
-
SYSDBA、SYSOPERなどの認証
-
Real Application Security (Javaの場合のみ)
-
一括コピー(ODP.Netのみ)
-
自己チューニング(ODP.Netのみ)
-
ASO暗号化およびサポートされているアルゴリズム(ASOのみ)
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_HOME/network/admin
ディレクトリにあるcman.ora
ファイルにナビゲートします。 -
テキスト・エディタを使用して
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を構成したら、Oracle Connection Manager制御(CMCTL)ユーティリティを使用してこれを起動および管理できます。
オペレーティング・システムのコマンドラインで、このユーティリティの基本的な構文は次のとおりです。
cmctl [command] [argument1 . . . argumentN] [-c instance_name]
-c
パラメータは、管理するOracle Connection Managerインスタンスを指定します。インスタンスはcman.ora
ファイルに定義されます。
ノート:
インストール時または以前のOracle Connection Managerセッション時に指定した場合、パスワードの入力を求められます。ただし、これにより画面上にパスワードが表示されるため、潜在的なセキュリティ上のリスクがあります。Oracleでは、コマンドラインでパスワード・オプション(-p
)を使用しないことをお薦めします。
Oracle Connection Manager制御ユーティリティを使用してOracle Connection Managerを起動および停止するには:
10.6 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への登録を許可または拒否できます。