Oracle Cloud Infrastructureドキュメント

DBシステムへの接続

このトピックでは、アクティブなDBシステムに接続する方法について説明します。 接続方法は、使用するクライアント・ツールまたはプロトコル、接続の目的、クラウド・ネットワークの設定方法によって異なります。 さまざまなネットワーク・シナリオに関する情報は「Networkingの概要」で見つけることができますが、クラウド内のデータベースへの接続方法に関する具体的な推奨事項については、ネットワーク・セキュリティ管理者にお問い合わせください。

前提条件

この項では、このトピックで様々なタスクを実行するための前提条件について説明します。

  • コンソールまたはAPIを使用してデフォルトの管理サービス接続文字列を取得するには、コンソールまたはSDK、CLIまたはその他のツールのREST APIのどちらを使用しているかにかかわらず、管理者によって記述されたポリシーで必要なタイプのアクセス権を付与する必要があります。 アクションを実行しようとしたときに、権限のないメッセージや権限のないメッセージを取得する場合は、管理者に付与されているアクセスのタイプと作業するコンパートメントを確認してください。 Oracle Cloud Infrastructure Databaseサービスのユーザー承認の詳細は、「認証と認可」を参照してください。
  • データベースに接続するには、DBシステムのパブリックまたはプライベートIPアドレスが必要です。 プライベートIPアドレスを使用して、オンプレミス・ネットワークまたは仮想クラウド・ネットワーク(VCN)内からDBシステムに接続します。 これには、VPNまたはFastConnectを介してVCNに接続しているホスト、または同じVCN内の別のホストからの接続が含まれます。 DBシステムのパブリックIPアドレスを使用して、クラウド外(VPNなし)からシステムに接続します。 IPアドレスは、DatabaseページにあるOracle Cloud Infrastructure コンソールの中にあります。
  • DBシステムへのセキュア・シェル(SSH)アクセスの場合、DBシステムの起動時に使用された公開キーに関連付けられている秘密キーを含むファイルへのフルパスが必要です。

接続に問題がある場合は、「接続に関する問題のトラブルシューティング」を参照してください。

Databaseサービスと接続文字列

Databaseサービスを使用すると、必要な機能に応じて、データベース・インスタンスへのクライアント・アクセスを制御できます。 たとえば、管理の目的でのみデータベースにアクセスする必要がある場合や、アプリケーションをデータベースに接続する必要がある場合があります。 接続文字列はデータベース・サービスに固有です。

DBシステムをプロビジョニングすると、デフォルトのデータベース管理サービスが自動的に作成されます。 12c以降のOracle Databasesの場合、このサービスはCDBレベルでデータベースを管理することです。 このサービスでは機能が限られているため、アプリケーションの接続には適していません。 Oracleでは、DBシステムの作成後に、初期データベースにデフォルトのアプリケーション・サービスを作成することをお薦めします。 12c以降のOracle Databasesでは、アプリケーション・サービスはPDBレベルで接続します。 アプリケーション・サービスが提供できる重要な機能には、次のようなものがあります:

  • ワークロードの識別
  • ロード・バランシング
  • アプリケーション・コンティニュイティおよびトランザクション・ガード
  • 高速アプリケーション通知
  • サービス名に基づくリソース割当

これらの機能および他の高可用性機能の詳細は、「クライアント・フェイルオーバーのベスト・プラクティスOracle Databases」を参照してください。

アプリケーション・サービスの作成

srvctlユーティリティを使用してアプリケーション・サービスを作成します。 サービスに接続する前に、サービスを開始する必要があります。

PDBまたは11g Oracleデータベースのアプリケーション・サービスを作成するには

PDBのサービスの詳細は、「Pdbのサービスの管理」を参照してください。

データベース接続文字列

データベース管理またはアプリケーション・サービスにアクセスするには、適切な接続文字列を使用する必要があります。 コンソールまたはAPIを使用して、VCN内からデフォルトの管理サービスに接続するための文字列を取得できます。 12c以降のOracle Databasesの場合、このサービスはCDBレベルでデータベースを管理することです。 この文字列は、簡易接続と完全接続記述子(長い)の両方の形式で提供されています。 ホスト名解決を使用できない場合は、接続に長い形式を使用します。 長い形式を使用して、tnsnames.oraファイルに別名を作成することもできます。

VCN内のデータベース・サービスにアクセスする場合、Real Application Cluster (RAC) DBシステムの接続文字列では単一クライアント・アクセス名(SCAN)が使用され、単一インスタンスのDBシステムの接続文字列ではかわりにホスト名が使用されます。

プライベートSCAN名は、2-node RAC DBシステムの起動時に作成されたラウンドロビンDNSエントリです。 プライベートSCAN名はVCN内でのみ解決できます。 クライアントとデータベースが同じVCN内にある場合、接続メカニズムはオンプレミスのRACデータベースと同じです。サーバー側ロード・バランシングやVIPフェイルオーバーなど、VIPおよびSCAN VIPにより提供されるすべての機能が使用可能です。

ノート

DBシステムでDB_UNIQUE_NAME、DB_DOMAINまたはリスナー・ポートを手動で変更した場合、コンソールまたはAPIに表示される接続文字列は変更を反映しません。
接続を行う場合は、これらのパラメータの実際の値を使用してください。

デフォルトの管理サービスの接続文字列を取得するには

デフォルトのアプリケーション・サービス接続文字列の一部を適用可能な値で置き換えることによって、他のデータベース・サービスの接続文字列を導出できます。

PDB管理サービスまたはアプリケーション・サービスの接続文字列を導出するには

SQL*Netを使用したDatabaseサービスへの接続

この項では、SQL*Netクライアントがインストールされているコンピュータからデータベース・サービスに接続する方法について説明します。 ポート1521は、SQL*Netプロトコルをサポートするために開いている必要があります。

VCN内からの接続

セキュリティ上の理由から、OracleはVCN内からデータベース・サービスに接続することをお薦めします。 このメソッドは、管理サービスまたはアプリケーション・サービスに接続している場合にのみ使用できます。

SQL*Plusを使用して接続するには、該当する接続文字列を使用して次のコマンドを実行します:

sqlplus system/<password>@<connection_string>

次の点を考慮してください。

  • VCNリゾルバがシステムで使用されていない場合は、DBシステム・ホスト名(単一ノード・システムの場合)またはSCAN名(複数ノード・システムの場合)が解決できることを確認してください。 DNS名解決の詳細は、「あなたのVirtual Cloud NetworkのDNS」を参照してください。
  • PDBの管理サービスに接続する場合は、PDBがオープンしていること、またはサービスが使用不可であることを確認します。
  • アプリケーション・サービスに接続する場合は、サービスが起動されていることを確認します。 高速アプリケーション通知を機能させるには、ポート6200にアクセスできることを確認してください。 高速アプリケーション通知の詳細は、「クライアント・フェイルオーバーのベスト・プラクティスOracle Databases」を参照してください。

インターネットからの接続

Oracleでは、インターネットからデータベースへの接続は推奨されませんが、データベース・サービスに接続するには、イングレスにポート1521が公開されているときはパブリックIPアドレスを使用します。

このメソッドを使用するには、接続文字列でホスト名やSCANのかわりにパブリックIPアドレスを使用して、次のコマンドを実行します:

sqlplus system/<password>@<public_IP>:1521/<service_name>.<DB_domain>

次の点を考慮してください。

  • Scanおよびホスト名はインターネット上で解決できないため、これらの名前に依存するマルチ・ノードDBシステムのロード・バランシングとフェイルオーバーは動作できません。
  • 通常Scanを使用するマルチ・ノードDBシステムの場合、データベースにアクセスするには、いずれかのRACホストのIPアドレスを指定する必要があります。
重要

このメソッドは、VCN内からデータベースに接続する場合には使用しないでください。 こうすると、データベースへのトラフィックがVCNから取り出され、パブリックIPアドレスから戻されるため、パフォーマンスが低下します。

例: SQL*Netを使用したSQL Developerでの接続

前提条件:

  • ポート1521がOracleのデフォルトのリスナーに対してオープンしていることを確認します。 このためには、DBシステムのセキュリティ・リストをチェック
  • VCNのホストに対してのみ1521ポートがオープンしている場合は、VCNに直接アクセスできるマシンからSQL Developerクライアントを実行する必要があります。 かわりにインターネットからデータベースに接続する場合は、ご使用のコンピュータのパブリックIPアドレスにセキュリティ・リストのポート1521へのアクセス権が付与されている必要があります。 (または、セキュリティ・リストによってポート1521への完全なアクセス権を付与することもできますが、セキュリティ上の理由からお薦めしません。) インターネットからの接続ではSCAN名解決がサポートされていないため、ホストのパブリックIPアドレスを使用する必要があります。
VCN内から接続するには
パブリックIPアドレスを使用してインターネットから接続するには

SSHトンネリングを使用した公開IPによるDatabaseへの接続

パブリックIPアドレスを持つDBシステム・データベースのサービスにアクセスするには、SSHトンネリングを使用します。 このメソッドの主な利点は、ポート1521をパブリック・インターネットに開ける必要がないことです。 ただし、SQL*Netクライアントを使用してデータベースにアクセスする場合と同様に、マルチ・ノードDBシステム用のロード・バランシングとフェイルオーバーは、SCANとhostnamesに依存しているため機能できません。

Oracle SQL DeveloperとOracle SQLcLは、Oracle Databaseアクセスにトンネリングを簡単に使用できる2つのツールです。

トンネルを開き、SQLcLを使用してデータベース・サービスに接続するには、次のコマンドを実行します:

SQL> sshtunnel opc@<public_IP> -i <private_key> -L <local_port>:<private_IP>:1521
Using port:22
SSH Tunnel connected
SQL> connect system/<password>@localhost:<local_port>/<service_name>.<DB_domain>

これらのツールの詳細は、Oracle SQL DeveloperおよびOracle SQLcLを参照してください。

SSHおよびBequeathプロトコルを使用したDatabaseへの接続

このメソッドでは、ネットワーク・リスナーを使用せずにデータベースに接続できます。 これは、管理の目的でのみ接続するために使用してください。

マルチ・ノードDBシステムに接続すると、クラスタの各ノードにSSHが行われます。

UNIXスタイルのシステムから接続するには
Windowsシステムから接続するには
接続後にデータベースにアクセスするには

APIの使用

APIおよび署名リクエストの使用については、REST APIおよび「セキュリティ資格証明」を参照してください。 SDKの詳細は、「ソフトウェア開発キットとコマンドライン・インタフェース」を参照してください。

GetDatabase API操作を使用して、デフォルトの管理サービス接続文字列を取得します。

接続に関する問題のトラブルシューティング

DBシステムまたはデータベースへの接続時には、次の問題が発生することがあります。

ORA-28365: ウォレットが開いていないエラー

1-node DBシステムまたは2-node RAC DBシステムでは、DBシステムへの接続方法に関係なく、OS認証を使用してデータベース(たとえば、sqlplus / as sysdba)に接続する前に、ORACLE_UNQNAME変数が設定されていることを確認します。 それ以外の場合は、TDEウォレットを必要とするコマンドは、ORA-28365: wallet is not openというエラーになります。

ORACLE_UNQNAMEが自動的にデータベースのCRSリソースに設定されるため、TNS接続を使用する場合はこれは問題ではないことに注意してください。

SSHアクセスが動作しなくなる

DBシステムのルート・ボリュームがいっぱいになった場合、システムへのSSH機能が失われる可能性があります(SSHコマンドは権限拒否エラーで失敗します)。 大量のデータをルート・ボリュームにコピーする前に、たとえばデータベースを移行するには、dbcli create-dbstorageコマンドを使用してシステムのNVMeドライブにストレージを設定し、そのストレージにデータベース・ファイルをコピーします。 詳細は、「DBシステム上でのStorageの設定」を参照してください。

次の作業

DBシステムの更新を開始する前に、「DBシステムの更新」の情報を確認してください。

データベースをモニターするためのEnterprise Managerコンソールの設定については、「Databaseのモニタリング」を参照してください。