
ロードバランシングについて
racのロードバランシングには大きく2種類ある。
・クライアント・ロード・バランス
・サーバサイド・ロード・バランス (リスナー・ロード・バランス)
わかりやすいイメージは以下になります。

http://enterprisezine.jp/dbonline/detail/4600?p=2 より参照
クライアント・ロード・バランス
ランダムにリスナーへ接続をする。(ラウンドロビンではなく、ランダム)
アルゴリズムは不明。注意点としては、ランダムなので、100%均等に振り分けられるわけではない。
設定方法
クライアントのtnsnames.oraに以下のように記載する。
(LOAD_BALANCE=ON)を記載することで有効になる。
TEST=
(DESCRIPTION =
(ADDRESS_LIST =
(LOAD_BALANCE=ON)
(ADDRESS = (PROTOCOL = TCP)(HOST = [VIP1])(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = [VIP2])(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = hoge)
)
)
サーバサイド・ロード・バランス
これはcpuの負荷、またはセッション数のどちらかで負荷分散を可能とする。
注意点としては、100%均等に振り分けられるわけではない。振り分けられていることを確認するために数時間のセッションデータが必要となる。
設定方法 <セッション数での負荷分散の場合>
セッション数での負荷分散の場合
show parameter _listener
NAME TYPE VALUE
--------------- ----------- ------------------------------
local_listener string (DESCRIPTION=(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=TCP)(HOST=[VIP1])(PORT=1521))))
remote_listener string hoge
≪DBサーバのtnsnames.oraに以下を記載≫
hoge =
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=TCP)(HOST=[VIP1])(PORT=1521))
(ADDRESS=(PROTOCOL=TCP)(HOST=[VIP2])(PORT=1521))
)
)
1
<div>設定方法 <CPU負荷での負荷分散の場合> ※これは実際にやったことない。。。</div>
セッション数での負荷分散の設定と合わせ、dbms_serviceを操作し、ロード・バランシング・アドバイザを設定するそうです。
<a href="http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/appdev.102/B19245-02/d_serv.htm" target="_blank">dbms_serviceの設定</a>
ちなみに以下のような状態はGOAL値はロードバランシング無効となっている。
1
select SERVICE_ID
, NAME
, NETWORK_NAME
, GOAL
, CLB_GOAL
from dba_services
;
SERVICE_ID NAME NETWORK_NAME GOAL CLB_G
---------- --------------- --------------- ------------ -----
1 SYS$BACKGROUND NONE SHORT
2 SYS$USERS NONE SHORT
3 racXDB racXDB LONG
4 hoge rac LONG
----------------------------------------
確認方法
hoge1のlistener.logに以下のようなログが確認できればOK。
(INSTANCE_NAME=hoge1)が出ているとこちらに振り分けられたという意味。
03-JUN-2013 10:11:52 * (CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=hoge)(CID=(PROGRAM=checksubscribelog)(HOST=******)(USER=mail))(INSTANCE_NAME=hoge1)) * (ADDRESS=(PROTOCOL=tcp)(HOST=******)(PORT=******)) * establish * rac * 0
備考
クライアント・ロード・バランスとサーバサイド・ロード・バランスは併用することが可能。