クライアント側のロード・バランシングは、パラメータLOAD_BALANCE=ON
を設定して、クライアントの接続定義(tnsnames.ora
ファイルなど)に定義します。このパラメータをON
に設定した場合は、Oracle Databaseによってアドレス・リストから無作為にアドレスが選択されて、そのノードのリスナーに接続されます。これによって、クラスタ内で使用可能なSCANリスナー間で、クライアント接続が均等に分散されます。
接続要求用にSCANを構成した場合、クライアント側ロード・バランシングは、SCANアクセスをサポートするクライアントには関係しません。クライアントがSCANを使用して接続する場合、EZConnectを使用していないかぎり、Oracle NetはSCANに対して定義された3つのIPアドレスの間でクライアント接続要求の負荷を自動的に均等に分散します。
SCANリスナーは、(-clbgoal
がSHORT
に設定されている場合は)最もロードされていないインスタンスのローカル・リスナーに接続要求をリダイレクトし、要求されたサービスを提供します。接続要求を受信したリスナーは、要求されたサービスを提供するとリスナーが認識しているインスタンスにユーザーを接続します。リスナーがサポートしているサービスを確認するには、lsnrctl services
コマンドを実行します。
クライアントがSCANを使用して接続する場合、Oracle NetはSCANに対して定義された3つのIPアドレスの間でクライアント接続要求のロード・バランシングを自動的に行います。ただし、EZConnectを使用している場合は行いません。
SCANをサポートしていないクライアントを使用している場合(クライアント・バージョンがOracle Database 11gリリース2 (11.2)よりも前の場合など)、SCANを使用するには、SCAN VIPを含めるようにクライアントtnsnames.ora
を変更し、LOAD_BALANCE=ON
を設定してVIP間の要求を均等に分散するようにする必要があります。例:
Sales.example.com=(DESCRIPTION= (ADDRESS_LIST=(LOAD_BALANCE=ON)(FAILOVER=ON) (ADDRESS=(PROTOCOL=TCP)(HOST=172.22.67.192)(PORT=1521)) (ADDRESS=(PROTOCOL=TCP)(HOST=172.22.67.193)(PORT=1521)) (ADDRESS=(PROTOCOL=TCP)(HOST=172.22.67.194)(PORT=1521)) (CONNECT_DATA=(SERVICE_NAME=salesservice.example.com)) ))
注意:
データベースがOracle Database 11gリリース2 (11.2)以上で、SCANを使用する場合は、SCAN VIPをREMOTE_LISTENER
パラメータに追加して、適切なリスナー・クロス登録を有効にします。
関連項目:
REMOTE_LISTENER
パラメータの詳細は、『Oracle Databaseリファレンス』を参照してください。