Oracle Database 11gは、実行時接続ロード・バランシング機能を提供します。この章では、次の項目について説明します。
Oracle Real Application Clusters環境では、接続は関連サービスを提供するインスタンスに属しています。すべてのインスタンスが等しく実行され、接続がキャッシュからランダムに取り出されるのが最も理想的です。しかし、あるインスタンスのパフォーマンスが他のインスタンスを上回る場合、接続をランダムに選択すると効率が悪くなります。実行時接続ロード・バランシング機能を使用すると、最適なパフォーマンスを提供するインスタンスに作業要求がルーティングされるため、作業を再配置する必要が最小限になります。
図22-1に、実行時接続ロード・バランシングを示します。実行時接続ロード・バランシングを暗黙的接続キャッシュで有効にすると、次の処理が実行されます。
クライアントは、DataSource
オブジェクトのgetConnection
メソッドをコールして、接続キャッシュから接続を要求します。
実行時接続ロード・バランシング・メカニズムによって、接続キャッシュから最適なインスタンスに属する接続が選択されます。図22-1の例では、インスタンス1またはインスタンス2が該当します。
最適な応答時間でクライアントが接続を受け取り、作業要求が処理されます。
ロード・バランシング・アドバイザに基づく接続取出しは自動的に行われます。接続の要求は、ロード・バランシング・アドバイザによって決定されたサービス目標に基づいて接続を選択することで処理されます。このサービス目標によって、接続が最高のサービス品質を提供するかどうか(つまり1つのトランザクションがどの程度効率的に完了するか)、あるいは最適なスループットを提供するかどうか(つまりジョブ全体または長時間実行される問合せがどの程度効率的に完了するか)が決まります。ロード・バランシング・アドバイザは、Oracle Real Application Clustersによってイベントが送信されているかぎり、接続キャッシュによって使用されます。イベントの着信が停止すると、接続キャッシュはキャッシュからのランダムな接続取出しに戻ります。
実行時接続ロード・バランシングはOracle Notification Service(ONS)インフラストラクチャに依存します。実行時接続ロード・バランシングでは、高速接続フェイルオーバー処理で使用するのと同じバンド外ONSイベント・メカニズムを使用します。したがって、高速接続フェイルオーバーが有効になると、実行時接続ロード・バランシングもデフォルトで有効になります。実行時接続ロード・バランシングが機能するためにONSを追加設定したり構成する必要はありません。
実行時接続ロード・バランシングを有効にして使用するには、次の方法でOracle Real Application Clustersデータベースを構成する必要があります。
サービス目標は、次のいずれかに設定する必要があります。
接続バランシング目標はSHORT
に設定する必要があります。
これらの目標は、dbms_service.create_service
またはdbms_service.modify_service
をコールする場合、設定する必要があります。サービス目標はgoal
パラメータを使用して、接続バランシング目標はclb_goal
パラメータを使用して設定できます。
注意: 接続バランシング目標はLONG に設定できます。ただし、これが有効なのは、クローズされたワークロードの場合がほとんどです。つまり、完了する処理の比率が、開始する新規処理の比率に等しい場合です。 |
関連項目: 『Oracle Real Application Clusters管理およびデプロイメント・ガイド』 |