Oracle Net Servicesを使用したデータベースへのリモート接続
Oracle Database Exadata Cloud at Customerでは、Oracle Net Servicesの使用によるリモート・データベース・アクセスがサポートされます。
Exadata Cloud at CustomerでOracle Grid Infrastructureが使用されるため、単一クライアント・アクセス名(SCAN)を使用して接続を行うことができます。この機能によって、クラスタ内で稼働するすべてのOracle Databaseにアクセスするための一貫したメカニズムがクライアントに提供されます。
デフォルトでは、SCANは3つの仮想IPアドレス(VIP)に関連付けられています。 各SCAN VIPはSCANリスナーにも関連付けられ、これがOracle Net Servicesを使用したOracle Database接続の接続エンドポイントになります。 可用性を最大限にするために、Oracle Grid InfrastructureではSCAN VIPおよびSCANリスナーを使用可能なクラスタ・ノードに分散させます。 また、SCAN VIPおよびSCANリスナーは、ノードで障害が発生した場合または停止した場合に、正常に動作しているノードに自動的に移行されます。 目的は、クラスタ内で稼働しているすべてのデータベースに対するサービスを提供する単一で信頼できる接続エンドポイントのセットを、Oracle Databaseクライアントが常に使用できるようにすることです。
ノード・リスナーとしても知られる、クラスタ内の各ノードで実行されるOracle Net Listenerに加えてSCANリスナーが存在します。 SCANを介したOracle Net Services接続があると、SCANリスナーはいずれかのノード・リスナーに接続を転送し、それ以上接続に関与しません。 リスナーの可用性、データベース・インスタンスの配置、ワークロード分散などの要素の組合せによって、各接続を受け取るノード・リスナーが決まります。
接続する前に
Oracle Net Servicesを使用してExadata Cloud at Customerでリモート・データベース接続を行うには、Oracle Net Listenerポート(通常はポート1521)へのアクセスを妨げるファイアウォールまたはその他のネットワーク制御デバイスがないことを確認します。 効率を最大にするには、Oracle Notification Serviceポート(通常はポート6200)へのアクセスも確認します。 ONSにアクセスできない場合、Oracle Net Services接続は機能しますが、一部の操作には余分な待機時間がかかります。
Oracle Net Servicesを使用してリモート・データベース接続を行うには、次の情報も必要です:
-
SCAN VIPのIPアドレス。 これらのIPアドレスは、各データベース・デプロイメントに関連付けられた詳細情報に含まれています。 データベース・デプロイメントの詳細情報の表示を参照してください。
-
データベースSIDまたはサービス名のいずれかのデータベース識別子。 Oracle Database 11gを実行しているデータベース・デプロイメントの場合は、SIDを使用してデータベースを識別できます。 Oracle Database 12c以降を実行しているデプロイメントの場合は、データベースSIDを指定してデータベースに接続すると、CDB(コンテナ・データベース)に接続されます。 PDB (プラガブル・データベース)に接続するには、次の書式を使用してプラガブル・データベースのサービス名を指定します。
pdb.network-domain
ここで、
pdbはPDBの名前で、network-domainはExadata Cloud at Customer環境に関連付けられているネットワーク・ドメイン名です。次に例を示します:PDB1.us2.oraclecloud.com
Exadata Cloud at Customer環境に関連付けられているネットワーク・ドメイン名を確認するには、「データベース・デプロイメントの詳細情報の表示」の説明に従って詳細を表示します。
SCANを使用したOracle Net Services接続の作成
SCANリスナーを使用してOracle Net Services接続を作成するには、2つの方法から選択できます。 次の選択肢があります:
-
すべてのSCAN VIPを参照する接続記述子を使用します。
この方法では、すべてのSCAN VIPアドレスを指定する必要があり、Oracle Net Servicesは使用可能なSCANリスナーに接続します。 通常は接続記述子を表す便利な名前としてNet Services別名が使用されます。 次に例を示します。
alias-name = (DESCRIPTION= (ADDRESS_LIST= (ADDRESS=(PROTOCOL=tcp)(HOST=SCAN-VIP-1)(PORT=1521)) (ADDRESS=(PROTOCOL=tcp)(HOST=SCAN-VIP-2)(PORT=1521)) (ADDRESS=(PROTOCOL=tcp)(HOST=SCAN-VIP-3)(PORT=1521))) (CONNECT_DATA= (sid-or-service-entry)))
それぞれの意味は次のとおりです。-
alias-nameは、エイリアスを識別するために使用する名前です。 -
SCAN-VIP-[1-3]は、SCAN VIPのIPアドレスです。 -
sid-or-service-entryは、次のいずれかの書式を使用してデータベースSIDまたはサービス名を表します。-
SID=sid-name。たとえば、SID=ORCLです。 -
SERVICE_NAME=service-name。たとえば、SERVICE_NAME=PDB1.us2.oraclecloud.comです。
-
ノート:
デフォルトでは、Oracle Net Servicesは、SCANリスナー間の負荷のバランスをとるためにアドレス・リスト内のアドレスの1つをランダムに選択します。適切な接続記述子は、データベース・デプロイメントの接続文字列内に格納されており、「データベース・デプロイメントの詳細情報の表示」の説明に従って詳細情報を表示して取得できます。 Oracle Database 11gを実行しているデータベース・デプロイメントの場合は、提供された接続文字列を使用してデータベースに接続できます。 Oracle Database 12c以降を実行しているデプロイメントでは、指定された接続文字列を変更して接続先のPDBまたはCDBのサービス名を指定する必要があります。
-
-
カスタムSCAN名を参照する接続識別子を使用します。
このアプローチを使用すると、SCAN名は3つのSCAN VIPのいずれかに解決され、対応するSCANリスナーが接続を処理します。 Exadata Cloud at CustomerのカスタムSCANホスト名の定義を参照してください。
顧客SCAN名を使用してOracle Net Services接続を作成するには、簡易接続方法を使用して次の形式で接続識別子を指定できます:
SCAN-name:1521/sid-or-service-entry
次に例を示します。
exa1scan.example.com:1521/ORCL
または
exa1scan.example.com:1521/PDB1.us2.oraclecloud.com