10 Oracle Connection Managerの構成
Oracle Connection Managerは、データベースまたはプロキシ・サーバーに接続要求を転送するプロキシ・サーバーです。これはセッション・レベルで動作します。通常、データベース・サーバーおよびクライアント・コンピュータとは別のコンピュータに常駐しています。Oracle Connection Managerは、Oracle Database 12c Enterprise Editionをインストールすると使用できるようになります。これはクライアント・ディスク上のカスタム・インストール・オプションです。
Oracle Connection Managerの主要機能は次のとおりです。
-
アクセス制御: ルールベースの構成を使用してユーザーが指定したクライアント要求をフィルタにかけ、フィルタを通過したものを受け入れます。
-
セッションの多重化: 共有サーバーの接続先へのネットワーク接続により、複数のクライアント・セッションを集中化します。
Oracle Connection Manager機能の構成方法を学習します。
関連項目:
-
Oracle Connection Managerの概要は、「Oracle Net Servicesの概要」を参照してください
-
Oracle Connection Managerのアーキテクチャの概要は、「通信レイヤーの理解」を参照してください
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を構成するには、プロキシ・サーバー、データベースおよびクライアントを構成する必要があります。次のタスクでは、一般的な手順について説明します。
- タスク1 Oracle Connection Managerコンピュータでcman.oraファイルを構成します。
-
cman.ora
ファイルでは、サーバーのリスニング・エンドポイント、アクセス制御ルールおよびOracle Connection Managerのパフォーマンス・パラメータを指定します。「Oracle Connection Managerホストのcman.oraファイルの構成」では、このタスクの実行方法について説明しています。
- タスク2 Oracle Connection Managerのリスナーのプロトコル・アドレスを持つクライアントを構成します。
-
「Oracle Connection Managerのクライアントの構成」では、このタスクの実行方法について説明しています。
- タスク3 オプションで、セッションを多重化するデータベース・サーバーを構成します。この作業はオプションです。
-
「Oracle Connection Managerを使用する場合のOracle Databaseサーバーの構成」では、このタスクの実行方法について説明しています。
- タスク4 cman.oraファイルを構成してOracle Database Cloud Traffic Managerを設定します
-
Traffic Directorモードの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の属性を設定します。パラメータの形式は次のとおりです。
10.2.1.1 Oracle Connection Manager (CMAN)でのSecure Sockets Layerの構成
ステップ1: CMANウォレットが作成されていることと、証明書があることを確認してください。
-
Oracle Wallet Managerを起動します。
-
UNIXの場合:
$ORACLE_HOME/bin
から次のコマンドを入力します。owm
-
Windowsの場合: 「スタート」を選択して「プログラム」に移動し、「Oracle-HOME_NAME」をクリックし、「Integrated Management Tools」を選択してから「Wallet Manager」をクリックします。
-
-
「ウォレット」メニューから「オープン」を選択します。
ウォレットにReadyステータスの証明書が含まれ、自動ログインがオンになっている必要があります。自動ログインがオンになっていない場合は、「ウォレット」メニューから選択し、ウォレットを再度保存します。自動ログインがオンになります。
ステップ2: SSL付き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を起動します。
-
ナビゲータ・ペインで、「ディレクトリ」または「ローカル」メニューから「サービス・ネーミング」を選択します。
-
ツールバーで「+」をクリックするか、「編集」メニューから「作成」を選択します。
-
「ネット・サービス名」フィールドに名前を入力します。
-
「次へ」をクリックします。
「プロトコル」ページが表示されます。
-
Oracle Connection ManagerのTCP/IPプロトコルを選択します。
-
「次へ」をクリックします。
「プロトコル設定」ページが表示されます。
-
Oracle Connection Managerのポートとプロトコルを指定します。Oracle Connection Managerのデフォルトのポート番号は1521、プロトコルはTCP/IPです。
関連項目:
プロトコル・パラメータの設定については、『Oracle Database Net Servicesリファレンス』を参照してください。
-
「次へ」をクリックします。
「サービス」ページが表示されます。
-
「サービス名」フィールドにサービス名を入力し、接続タイプを選択します。
関連項目:
サービス名文字列の設定の詳細は、「接続記述子について」を参照
-
「次へ」をクリックします。
ノート:
この時点では接続のテストはできないため、「テスト」はクリックしないでください。
-
「終了」をクリックして構成を保存し、Netサービス名ウィザードを閉じます。
新規のネットワーク・サービス名とOracle Connection Managerプロトコル・アドレスが「サービス・ネーミング」フォルダに追加されます。
10.2.3 Oracle Connection Managerを使用する場合のOracle Databaseサーバーの構成
データベース・サーバーの構成には、リモートから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 セッションを多重化するパラメータ
属性 | 説明 |
---|---|
ディスパッチャがリスニング・エンドポイントを生成するときに使用するネットワーク・プロトコルです。 |
|
このパラメータは、次のようにセッションの多重化に使用します。
|
関連項目:
-
共有サーバーの構成の詳細は、「共有サーバー・アーキテクチャの構成」を参照してください
-
パラメータの完全なリストおよびそのデフォルト値と許容値については、『Oracle Database Net Servicesリファレンス』を参照してください。
10.2.4 Traffic DirectorモードのOracle Connection Managerの構成
Traffic DirectorモードのOracle Connection Managerは、データベース・クライアントとデータベース・インスタンスとの間に配置されたプロキシです。
-
Traffic DirectorモードのOracle Connection Manager用のcman.oraファイルの構成
-
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でのSecure Sockets Layerの構成
10.2.4.1 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.2.4.2 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を再起動する必要があります。10.2.4.2.1 Traffic DirectorモードのOracle Connection Managerでの外部パスワード・ストアの使用
ステップ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固有のプロキシ・ユーザーを使用します。
-
SSL
付きTCP/IP
(TCPS)構成の場合、Traffic DirectorモードのOracle Connection Managerのウォレットはすでに作成されています。したがって、ステップ1を省略し、mkstore
でwallet_location
を指定する際、TCPS
構成に使用したのと同じ場所を使用します。
10.2.4.3 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.4.5 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.2.4.6 計画外イベントのための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.2.4.7 計画済停止イベントのための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.2.4.8 Traffic DirectorモードのOracle Connection ManagerでのSecure Sockets Layerの構成
ステップ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: SSL付き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.2.4.9 Traffic DirectorモードのOracle Connection Managerの制限事項
Traffic DirectorモードのOracle Connection Managerでは、次の機能はすべてのドライバでサポートされていません。
-
分散トランザクション
-
アドバンスト・キューイング(AQ)
-
データベースの起動または停止のコール
-
シャーディング
-
XML
-
SQL翻訳
-
プロキシ認証およびSSL外部認証(DNなど)
-
オブジェクトREF
-
セッションの切替え
-
ナビゲーション・アクセスのためのOCIObject*コール
-
OCIPickerImage*コール
-
OCIAnyData*コール
-
OCIDirPath*コール
-
OCISubscription*コール
-
OCILCR*、OCIXStream*コール
-
OCIStmtExecute:
-
スクロール可能カーソル
-
暗黙的結果
-
-
変更通知(CQN)
-
クライアント結果キャッシュ
-
OCI_MIGRATEモード
-
DRCP: マルチプロパティのタグとPL/SQLコールバック
-
アプリケーション・コンティニュイティ
-
OCIConnectionPool
-
SYSDBA、SYSOPERなどの認証
-
Real Application Security (Javaの場合のみ)
-
データ型
-
PL/SQL索引付き表のバインド
-
-
一括コピー(ODP.Netのみ)
-
自己チューニング(ODP.Netのみ)
-
ASO暗号化およびサポートされているアルゴリズム(ASOのみ)
10.3 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アドレスに基づいて設定できます。図10-1は、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)) )
関連項目:
-
IPv6についてさらに学習するには、「TCP/IPプロトコルについて」を参照してください
10.4 Oracle Connection Manager制御ユーティリティを使用したOracle Connection Managerの管理
Oracle Connection Manager制御ユーティリティによって、Oracle Connection Managerを管理できます。オペレーティング・システムからコマンドを発行する場合、このユーティリティの基本構文は次のとおりです。
cmctl [command] [argument1 . . . argumentN] [-c instance_name]
前述のコマンドで、-c
はOracle Connection Managerのインスタンスを指定しています。パスワードがすでに設定されている場合は、パスワードの入力を求められます。
警告:
コマンドラインでパスワードを指定するオプションがあります。ただし、これにより画面上にパスワードが表示されるため、潜在的なセキュリティ上のリスクがあります。コマンドラインでパスワード・オプション(-p
)を使用しないことをお薦めします。
たとえば、次のコマンドは、リスナー、CMADMIN(Connection Manager Administration)およびcman1
という名前のインスタンスのゲートウェイ・プロセスを起動します。
cmctl STARTUP -c cman1
CMCTL
プロンプトから、Oracle Connection Managerユーティリティ・コマンドを発行することもできます。プロンプトを取得するには、オペレーティング・システムのコマンドラインから引数なしでcmctl
を入力します。セキュア・インストール・オプションでOracle Connection Managerをインストールした場合は、ユーティリティによってパスワードが求められることがあります。CMCTL
を実行すると、ユーティリティが起動され、CMCTLプロンプトから必要なコマンドを入力できます。CMCTLプロンプトの例を次に示します。
cmctl CMCTL> STARTUP
ノート:
STARTUP
コマンドを発行する前に、次の手順に従います。
-
cman.ora
ファイルを作成します。サンプル・ファイルは、Oracle Connection Managerをインストールした後のORACLE_HOME/network/admin/samples
ディレクトリにあります。 -
ADMINISTER
コマンドを実行して、起動するインスタンスを選択します。
関連項目:
-
Oracle Connection Managerプロセスの概要については、「Oracle Connection Managerのアーキテクチャの理解」を参照してください
-
Oracle Connection Manager制御ユーティリティのコマンドの詳細な説明は、『Oracle Database Net Servicesリファレンス』を参照してください。
10.5 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アドレス、サービス名およびSSL/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.6 Oracle Connection Managerの機能強化
-
SSLプロトコルのサポートにより、サーバーへのアクセスのセキュリティが強化されています。このサポートにより、データベース・クライアントは、Oracle Connection Managerを経由したTCPSプロトコルによるサーバーとの通信が可能になります。また、Oracle Connection Managerは、一方がSSL接続、もう一方が非SSL接続になるように構成することもできます。これは、外部クライアント向けの内部データベース・サーバーをインターネットから隠すための安全策としても機能します。
多重化: データベース・クライアントがリクエストしたエンドポイントに、すでにゲートウェイが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 Net Servicesリファレンス』を参照してください。