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
上のリスナーに接続します。リスナーが専用サーバー・プロセスを開始し、専用サーバー・プロセスがリスナーから接続要求を継承します。
親トピック: 接続ロード・バランシングの理解