Oracle Net Servicesを使用したデータベースへのリモート接続
Oracle Database Exadata Cloud Serviceでは、Oracle Net Servicesの使用によるリモート・データベース・アクセスがサポートされます。
Exadata Cloud ServiceでOracle Grid Infrastructureが使用されるため、単一クライアント・アクセス名(SCAN)を使用して接続を行うことができます。この機能によって、クラスタ内で稼働するすべてのOracleデータベースにアクセスするための一貫したメカニズムがクライアントに提供されます。
デフォルトでは、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接続があると、SCANリスナーはいずれかのノード・リスナーに接続を転送し、それ以上接続に関与しません。 リスナーの可用性、データベース・インスタンスの配置、ワークロード分散などの要因の組合せによって、各接続を受け取るノード・リスナーが決まります。
接続する前に
デフォルトでは、Oracle Net Listener (SCANリスナーおよびノード・リスナー)はポート1521を使用し、セキュリティ上の理由からOracle Net Listenerポート(1521)へのネットワーク・アクセスは制限されています。 したがって、Oracle Net Servicesを使用してデータベースにリモート接続する前に、Oracle Net Listenerポートへのアクセスを有効にする必要があります。
同様に、Oracle Net Servicesは、通常はポート6200を使用するOracle Notification Service (ONS)にメッセージを送信します。 ONSにアクセスできない場合、Oracle Net Services接続は機能しますが、一部の操作には余分な待機時間がかかります。 デフォルトでは、ONSポート(6200)へのネットワーク・アクセスもセキュリティ上の理由から制限されています。 したがって、Oracleでは、Oracle Net Servicesを使用してリモートでデータベースに接続する前に、ONSポートへのアクセスを有効にすることをお薦めします。
コンピュート・ノードへのネットワーク・アクセスの有効化を参照してください。
ノート:
SSHトンネルが特定のホストIPアドレスの特定のポートへのポイント・ツー・ポイント接続であるため、SCANリスナーを使用してExadata Cloud Serviceデータベースに接続するためにSSHトンネルを使用できません。 ただし、SCANリスナーでは、様々なセットの仮想IPアドレスをリスニングする使用可能なノード・リスナーの着信接続をルーティングします。
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 Service環境に関連付けられたネットワーク・ドメイン名です。次に例を示します。PDB1.us2.oraclecloud.com
Exadata Cloud Service環境に関連付けられているネットワーク・ドメイン名は、「データベース・デプロイメントの詳細情報の表示」の説明に従って詳細を表示して確認できます。
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リスナー間の負荷を分散するためにアドレス・リスト内のいずれかのアドレスをランダムに選択します。適切な接続記述子は、データベース・デプロイメントの接続文字列内に格納されており、「データベース・デプロイメントの詳細情報の表示」の説明に従って詳細情報を表示して取得できます。 Oracle Database 11gを実行しているデータベース・デプロイメントの場合は、提供された接続文字列を使用してデータベースに接続できます。 Oracle Database 12c以降を実行しているデプロイメントでは、指定された接続文字列を変更して接続先のPDBまたはCDBのサービス名を指定する必要があります。
-
-
カスタムSCAN名を参照する接続識別子を使用します。
この方法を使用すると、SCAN名が3つのSCAN VIPのいずれかに解決され、対応するSCANリスナーが接続を処理します。 Exadata Cloud Serviceのカスタム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