6.10.8 SCAN使用時のデータベース接続の作成方法
サービス名を使用しているOracle RACデータベースにSCANを使用して接続する場合は、環境に基づいて次のアクションが発生します。
番号が付けられたアクションは、ステップの後に表示されている図に示されている矢印に相当します。
-
各インスタンスのLREGプロセスは、ローカル・ノード上のデフォルトのリスナーと、
REMOTE_LISTENER
データベース・パラメータで指定された各SCANリスナーにデータベース・サービスを登録します。リスナーは、インスタンスとディスパッチャによって処理されている作業の量に基づいて動的に更新されます。 -
クライアントは、次の書式の接続記述子を使用して、データベース接続要求を発行します。
orausr/@scan_name:1521/webapp
ノート:
簡易接続ネーミング・メソッドを使用する場合は、クライアントのsqlnet.ora
ファイルに、NAMES.DIRECTORY_PATH
パラメータで指定されたネーミング・メソッドのリストのEZCONNECT
が含まれていることを確認します。 -
クライアントは、DNSを使用してscan_nameを解決します。SCANに割り当てられる3つのアドレスがDNSから戻された後、クライアントは1番目のIPアドレスに接続要求を送信します。接続要求が失敗すると、クライアントは次のIPアドレスを使用して接続を試行します。
-
接続要求が成功すると、クライアントは、
sales
データベースをホストし、webapp
サービスを提供するインスタンスを持つクラスタのSCANリスナーに接続します(この例ではsales1
とsales2
です)。SCANリスナーは、インスタンスsales1
およびsales2
のワークロードと、これらが実行されているノードのワークロードを比較します。SCANリスナーがnode2
はnode1
よりも負荷が小さいと判断すると、SCANリスナーはnode2
を選択し、そのノードのリスナーのアドレスをクライアントに送信します。 -
クライアントは、
node2
のローカル・リスナーに接続します。ローカル・リスナーは、データベース接続のための専用サーバー・プロセスを起動します。 -
クライアントは、
node2
の専用サーバー・プロセスに直接接続し、sales2
データベース・インスタンスにアクセスします。