データベースへの接続

VMに接続した後、またはOracle Net Servicesを使用してリモートで、データ・インフラストラクチャのデータベースに接続できます。

データベースに接続する前にオペレーティング・システム・アクセスが必要な場合に、SSHを使用してVMに接続します。クライアントからのリモート・データベース・アクセスが必要な場合は、Oracle Net Servicesを使用します。

VMへの接続後のデータベースへの接続

VMに接続したら、オペレーティング・システム・コマンドを使用して、データベースの識別とそれへの接続を行うことができます。

  1. opcユーザーとしてVMに接続します。

    詳細なステップは、SSHを使用したVMへの接続を参照してください。

  2. oracleユーザーに切り替えます。

    sudo su - oracle
  3. Oracle Grid Infrastructureホーム・ディレクトリの下にあるsrvctlユーティリティを使用して、VMクラスタのデータベースをリストします。

    grid-home/bin/srvctl config database -v
  4. アクセスするデータベースのデータベース・インスタンスを識別します。

    grid-home/bin/srvctl status database -d <dbname>
  5. アクセスするデータベースの環境設定を構成します。

    . oraenv

    プロンプトで、データベースのOracleシステム識別子(SID)を入力します。

    ORACLE_SID = [oracle] ? <dbname>
  6. ORACLE_SID環境変数を、アクセスするデータベース・インスタンスに設定します。

    export ORACLE_SID=<dbname1>
  7. オプションで、srvctlコマンドを使用して、データベースに関する詳細情報を表示します。

    srvctl config database -d <dbname>
  8. SQL*Plusを使用して、データベースに接続します。

    sqlplus / as sysdba

Oracle Net Servicesを使用したデータベースへの接続

Oracle Net Servicesを使用して、データ・インフラストラクチャのデータベースにリモートで接続できます。

データ・インフラストラクチャではOracle Grid Infrastructureが使用されるため、単一クライアント・アクセス名(SCAN)接続を使用してOracle Net Services接続を確立できます。SCANは、クライアントがVMクラスタで実行されているデータベース・インスタンスにアクセスするための一貫したメカニズムを提供します。

デフォルトでは、SCANは3つの仮想IPアドレス(VIP)に関連付けられています。各SCAN VIPは、Oracle Net Servicesを使用したデータベース接続の接続エンドポイントを提供するSCANリスナーに関連付けられています。可用性を最大化するために、Oracle Grid Infrastructureでは、SCAN VIPおよびSCANリスナーが使用可能なVMクラスタ・ノード全体に分散します。ノードが停止または障害が発生すると、SCAN VIPおよびSCANリスナーは、使用可能なノードに自動的に移行されます。

SCAN接続を使用することで、Oracle AI Databaseクライアントには、VMクラスタで実行されているデータベースにサービスを提供できる信頼性の高い接続エンドポイントのセットがあります。

SCANリスナーは、VMクラスタ内のすべてのノード(ノード・リスナーとも呼ばれる)で実行されるOracle Netリスナーに追加されます。Oracle Net Services接続がSCAN接続を介して接続されると、SCANリスナーは、いずれかのノード・リスナーへの接続をルーティングし、それ以上接続をに関与しません。リスナーの可用性、データベース・インスタンスの配置、ワークロードの分散などの要素の組合せによって、それぞれの接続を受け入れるノード・リスナーが決まります。

このドキュメントでは、Oracle Net Servicesを使用してデータ・インフラストラクチャ内のデータベースに接続するための基本的な要件を説明します。

Oracle Net Servicesを使用したデータベースへの接続の前提条件

SCANを使用したデータベースに接続

SCANリスナーを使用してOracle Net Services接続を作成するには、次の方法のいずれかを選択できます。

すべてのSCAN VIPを参照する接続記述子を使用したデータベースへの接続

複数のSCANリスナーを使用して接続記述子を設定できます。

この方法では、すべてのSCAN VIPアドレスを指定する必要があるため、Oracle Net Servicesは使用可能なSCANリスナーに接続できるようになります。

  1. 次のテンプレートは、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><SCAN-VIP-2>および<SCAN-VIP-3>は、SCAN VIPのIPアドレスです。
    • <sid-or-service-entry>は、次のいずれかのフォーマットを使用してデータベースSIDまたはサービス名を識別します:
      • SID=sid-name. 例: SID=DBNAME1
      • SERVICE_NAME=service-name. 例: SERVICE_NAME=pdb1.example.com

デフォルトでは、Oracle Net Servicesは、SCANリスナー間で負荷を分散するために、アドレス・リスト内のいずれかのアドレスをランダムに選択します。

カスタムSCAN名を参照している接続記述子を使用したデータベースに接続

カスタムSCAN名を使用して接続記述子を設定できます。

この方法を使用して、ドメイン・ネーム・サーバー(DNS)にカスタムSCAN名を定義します。カスタムSCAN名は、3つのSCAN VIPアドレスに解決されます。

  1. 次のテンプレートを使用して、カスタムSCAN名を参照するNet Services別名を定義します:

    <alias-name> = (DESCRIPTION=
      (ADDRESS_LIST=(ADDRESS=(PROTOCOL=tcp)(HOST=<scan-name>)(PORT=1521)))
      (CONNECT_DATA=(<sid-or-service-entry>)))

    説明:

    • <alias-name>は、エイリアスの識別に使用する名です。
    • <scan-name>は、カスタムSCAN名です。
    • <sid-or-service-entry>は、次のいずれかのフォーマットを使用してデータベースSIDまたはサービス名を識別します:
      • SID=sid-name. 例: SID=DBNAME1
      • SERVICE_NAME=service-name. 例: SERVICE_NAME=pdb1.example.com
  2. または、簡易コネクト・メソッドを使用して、次のフォーマットで接続記述子を指定できます:

    <scan-name>:1521/<sid-or-service-entry>

    たとえば:

    dbscan.example.com:1521/DBNAME1

    または

    dbscan.example.com:1521/pdb1.example.com

ノード・リスナーを使用したデータベースに接続

SCANリスナーをバイパスする接続記述子を使用してデータベースに接続するには、接続をノード・リスナーに直接ルーティングします。

この方法を使用すると、SCANで提供される高可用性およびロード・バランシングを放棄します。ただし、この方法は、特定のノードまたはネットワーク・インタフェースに接続を指示する場合に便利です。

  1. 次のテンプレートを使用すると、ノードを直接参照するネット・サービス別名を定義できます:

    <alias-name> = (DESCRIPTION=
      (CONNECT_TIMEOUT=<timeout>)
      (ADDRESS_LIST=(ADDRESS=(PROTOCOL=tcp)(HOST=<node>)(PORT=1521)))
      (CONNECT_DATA=(<sid-or-service-entry>)))

    説明:

    • <alias-name>は、エイリアスの識別に使用する名です。
    • <timeout>は、タイムアウト期間(秒)を指定します。これにより、TCPタイムアウトの待機なしで接続試行を終了できるようになります。(CONNECT_TIMEOUT=timeout)パラメータはオプションです。
    • <node>は、使用するVMのホスト名またはIPアドレスです。
    • <sid-or-service-entry>は、次のいずれかのフォーマットを使用してデータベースSIDまたはサービス名を識別します:
      • SID=sid-name. 例: SID=DBNAME1
      • SERVICE_NAME=service-name. 例: SERVICE_NAME=pdb1.example.com
  2. または、簡易コネクト・メソッドを使用して、次のフォーマットで接続記述子を指定できます:

    <node>:1521/<sid-or-service-entry>

    たとえば:

    node01.example.com:1521/DBNAME1

    または

    node01.example.com:1521/pdb1.example.com