6.4 共通構成でのロード・バランシングに関するベスト・プラクティス
複数のTrue Cacheが存在し、同じデータベース・アプリケーション・サービスを提供する場合、リスナーはセッションを自動的に分散し、各キャッシュにロード・バランシングします。共通構成では、リスナーはTrue Cacheをランダムに、またはロードに基づいて選択し、すべてのTrue Cacheが同じデータをキャッシュします。
共通構成では、ランタイム接続ロード・バランシング(CLB)が使用されます。CLBは、最高のパフォーマンスを提供するTrue Cacheにリクエストをルーティングします。これを機能させるには、すべてのTrue CacheのREMOTE_LISTENER
パラメータが、プライマリ・データベースのリスナー(単一インスタンスのプライマリ・データベースのローカル・リスナーか、Oracle RACプライマリ・データベースのSCANリスナーか)でもある同じリスナーを指している必要があります。
アプリケーションのJDBC URLは、プライマリ・データベースを指している必要があります。次に、JDBC Thinドライバによって、1つの論理接続と、プライマリ・データベースおよび各True Cacheへの複数の物理接続が作成されます。JavaコードでsetReadOnly(true)
フラグを設定すると、True Cacheへの接続が自動的に再ルーティングされます。True Cacheがプライマリ・リスナーに登録されます。また、それらのロード統計がプライマリ・データベース・リスナーに送信されます。True Cache間で均等に分散されます。
構成を簡略化し、接続の問題を回避するには、REMOTE_LISTENER
とLOCAL_LISTENER
を個別に指定するかわりに、LISTENER_NETWORKS
初期化パラメータを使用することを検討してください。LISTENER_NETWORKS
を指定すると、同じネットワーク名内のすべてのリスナーが相互登録されます。例:
listener_networks='((NAME=net1)(LOCAL_LISTENER=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=tc1.example.com)(PORT=1521))))(REMOTE_LISTENER=scan_primary:1521))',
'((NAME=net2)(LOCAL_LISTENER=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=tc1.example.com)(PORT=1521))))(REMOTE_LISTENER=scan_standby:1521))'
リモート・リスナーおよびリスナー・ネットワークの構成の詳細は、「True CacheのPFILEの準備」を参照してください。
関連トピック