13.2.2 専用サーバーの構成のための接続ロード・バランシングの例
図13-3は、同じサービスsales.us.example.comの2つのインスタンスsales1およびsales2を持つ、Oracle RACの専用サーバー・データベースを示しています。インスタンスsales1およびsales2は、それぞれコンピュータsales1-serverおよびsales2-serverに常駐します。listenerという名前のリスナーは、それぞれノード1および2上で稼働しています。REMOTE_LISTENER初期化パラメータが構成され、両方のリスナーに対して情報のサービス登録が可能になっています。
この例では、次のロード情報が登録されます。
-
sales1-serverの1分当たりのノードのロード量平均は450です。 -
sales2-serverの1分当たりのノードのロード量平均は200です。 -
sales1の接続数は200です。 -
sales2の接続数は150です。
(REMOTE_LISTENER=listener_sales1)のlistener_sales1の値は、sales2-server上に存在するローカルのtnsnames.oraファイルによって、次のように決定します。
listener_sales1= (DESCRIPTION= (ADDRESS=(PROTOCOL=tcp)(HOST=sales1-server)(PORT=1521)))
(REMOTE_LISTENER=listener_sales2)のlistener_sales2の値は、sales1-server上に存在するローカルのtnsnames.oraファイルによって、次のように決定します。
listener_sales2= (DESCRIPTION= (ADDRESS=(PROTOCOL=tcp)(HOST=sales2-server)(PORT=1521)))
環境に応じて、次のような処理が実行されます。次の各処理に付いている番号は、図13-4に示す矢印の番号に対応しています。
-
LREGプロセスは、インスタンス
sales1およびsales2を、両方のリスナーに登録します。リスナーは、インスタンスのロード時に動的に更新されます。前述の情報では、
sales2-serverがロード量が最小のノード、sales2がロード量が最小のインスタンスです。 -
クライアントが接続要求を送信します。
接続記述子が構成されプロトコル・アドレスが1つ成功するまで、各プロトコル・アドレスがランダムに試行されます。
sales.us.example.com= (DESCRIPTION= (ADDRESS_LIST= (LOAD_BALANCE=on)(FAILOVER=on)(ADDRESS=(PROTOCOL=tcp)(HOST=sales1-server)(PORT=1521)) (ADDRESS=(PROTOCOL=tcp)(HOST=sales2-server)(PORT=1521))) (CONNECT_DATA=(SERVICE_NAME=sales.us.example.com)))sales1-server上のリスナーがランダムに選択されて、クライアント接続要求を受信します。sales1-server上のリスナーは、インスタンスsales1およびsales2のロード量を比較します。この比較では、ノードsales1-serverおよびsales2-server上のロード量がそれぞれ考慮されます。sales2-serverのロード量はsales1-serverのロード量より少ないため、リスナーは、sales1-serverよりsales2-serverを選択します。 -
sales1-server上のリスナーが、クライアント接続要求をsales2-serverのリスナーにリダイレクトします。 -
クライアントが
sale2-server上のリスナーに接続します。リスナーが専用サーバー・プロセスを開始し、専用サーバー・プロセスがリスナーから接続要求を継承します。
親トピック: 接続ロード・バランシングの理解

