DBシステムへの接続の概要

この記事では、アクティブなDBシステムへの接続に必要な様々な設定の概要を示します。接続方法は、使用するクライアント・ツールまたはプロトコル、接続の目的、およびクラウド・ネットワークの設定方法によって異なります。

ノート: ネットワーキングの概要に様々なネットワーキング・シナリオに関する情報を記載しましたが、クラウド内のデータベースへの接続方法に関する具体的な推奨事項については、ネットワーク・セキュリティ管理者に問い合せてください。

前提条件

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

データベース・サービスおよび接続文字列

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

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

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

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

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

次のステップを使用して、PDBまたは11g Oracleデータベース用のアプリケーション・サービスを作成できます。

  1. opcとしてDBシステム・ホストにログインします。
  2. oracleユーザーに切り替えて、環境を管理対象のOracle Databaseに設定します。

    sudo su - oracle
    . oraenv
    ORACLE_SID = [oracle] ? <database_name>
    The Oracle base has been set to /u01/app/oracle
  3. データベース用のアプリケーション・サービスを作成します。PDB用のアプリケーション・サービスを作成する場合のみ、pdbオプションを含めます。

    srvctl add service
      -db <DB_unique_name>
      -pdb <PDB_name>
      -service <app_service_name>
      -role PRIMARY
      -notification TRUE
      -session_state dynamic
      -failovertype transaction
      -failovermethod basic
      -commit_outcome TRUE
      -failoverretry 30
      -failoverdelay 10
      -replay_init_time 900
      -clbgoal SHORT
      -rlbgoal SERVICE_TIME
      -preferred <rac_node1>,<rac_node2>
      -retention 3600

    この優先オプションが必要になるのは、マルチノードのデータベースでRAC内のノードのホスト名を指定する場合のみです。

  4. アプリケーション・サービスを起動します。

    srvctl start service -db <DB_unique_name> -s <app_service_name>

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

データベース接続文字列

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

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

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

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

接続文字列の取得

次のステップを使用して、コンソールを使用して、デフォルトの管理サービスの接続文字列を取得できます。

  1. 「DBシステム」リスト・ページで、操作するデータベースを含むDBシステムを選択します。リスト・ページまたはDBシステムの検索に関するヘルプが必要な場合は、DBシステムのリストを参照してください。
  2. 「データベース」タブで、操作するデータベースを選択します。
  3. データベースの詳細ページで、「接続」タブを選択します。接続文字列のリストが表示されます。
  4. 該当するリンクを選択して、接続文字列を表示またはコピーします。

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

接続文字列の導出

PDB管理サービスまたはアプリケーション・サービスの接続文字列を導出するには、次のステップを実行します。

  1. デフォルトのアプリケーション・サービスの簡易接続文字列を取得するための手順に従います。その文字列の形式は次のようになります:

    <hostname\|SCAN>:1521/<DB_unique_name>.<DB_domain>
  2. 該当する値に置き換えます:

    • PDB管理サービスの場合は、DB_unique_nameをPDB名に置き換えます。

      <hostname\|SCAN>:1521/<PDB_name>.<DB_domain>
    • アプリケーション・サービスの場合は、DB_UNIQUE_NAMEをアプリケーション・サービスの名前に置き換えます。

      <hostname\|SCAN>:1521/<app_service_name>.<DB_domain>