Exascale Infrastructure VM上のOracle Exadata Database Serviceへの接続

SSHまたはSQL Developerを使用してOracle Exadata Database Service on Exascale Infrastructure仮想マシン(VM)に接続する方法について学習します。

接続する方法は、クラウド・ネットワークの設定方法によって異なります。ネットワーキングの概要で様々なネットワーク・シナリオに関する情報を確認できますが、クラウドでのデータベースへの接続方法に関する特定の推奨事項については、ネットワーク・セキュリティ管理者に問い合せてください。

ノート

Oracle Exadata Database Service on Exascale InfrastructureサーバーはActive Directoryドメインに参加できず、サービスではユーザー認証および認可にActive Directoryを使用できません。

Oracle Exadata Database Service on Exascale Infrastructureにアクセスするための前提条件

SSHを使用してOracle Exadata Database Service on Exascale Infrastructure (ExaDB-XS)インスタンスのコンピュート・ノードにアクセスするには、この情報が必要です。

ノート

ExaDB-XSにアクセスするには、ExascaleインフラストラクチャでExadata Databaseサービスを構成しておく必要があります。
  • システムの起動時に使用された公開キーに関連付けられた秘密キーを含むファイルへのフル・パス。

  • Oracle Exadata Database Service on Exascale InfrastructureインスタンスのパブリックまたはプライベートIPアドレス。

    プライベートIPアドレスを使用して、オンプレミス・ネットワークから、または仮想クラウド・ネットワーク(VCN)内からシステムに接続します。これには、VPNまたはFastConnectを介してVCNに接続するオンプレミス上のホストから、または同じVCN内の別のホストからの接続が含まれます。パブリックIPアドレスを使用して、クラウド外部(VPNなし)からシステムに接続します。IPアドレスは、Oracle Cloud Infrastructure Consoleで検索できます。「Exadata VMクラスタの詳細」ページで、「リソース」リストの「仮想マシン」をクリックします。

    値が表の「パブリックIPアドレス」列と「プライベートIPアドレス」およびDNS名」列に表示され、Oracle Exadata Database Service on Exascale Infrastructureインスタンスの「仮想マシン」または「ノード」が表示されます。

SCANリスナー・ポートの設定

クラウドVMクラスタの作成時に、オプションで別のSCANリスナー・ポート番号を指定できます。

クラウドVMクラスタのデフォルトのSCANリスナー・ポートは1521です。コンソールでは、VMクラスタ・プロビジョニングで別のSCANリスナー・ポート番号を指定するオプションがあります。OCIコンソールでは、クラスタの作成時に、このオプションは「拡張オプション」の下に表示されます。

ノート

バックエンド・ソフトウェアを使用したプロビジョニング後にVMクラスタのSCANリスナー・ポートを手動で変更することはサポートされていません。この変更により、Data Guardのプロビジョニングが失敗する可能性があります。

SSHを使用した仮想マシンへの接続

Secure Shell (SSH)接続を使用して、Oracle Exadata Database Service on Exascale Infrastructureシステムの仮想マシンに接続できます。

ほとんどのUnixスタイル・システム(Linux、Oracle Solaris、macOSなど)には、SSHクライアントが含まれます。Microsoft Windowsシステムの場合、PuTTYという無料のSSHクライアントをhttp://www.putty.orgからダウンロードできます。

関連トピック

Unixスタイル・システムからの接続

SSHを使用してUnixスタイル・システムからOracle ExaDB-XSシステム上の仮想マシンにアクセスするには、この手順を使用します。

  • 次のSSHコマンドを入力して、仮想マシンにアクセスします:
    ssh –i private-key user@node

    前の構文で:

    • private-keyは、システムに登録されている公開キーに対応するSSH秘密キーを含むファイルのフルパスおよび名前です。
    • userは、接続に使用するオペレーティング・システム・ユーザーです:
      • Oracle Databaseソフトウェア所有者として操作を実行するには、opcおよびsu oracleとしての接続を行います。oracleユーザーには、仮想マシンへのrootユーザー・アクセス権がありません。
      • 仮想マシンへのrootアクセス権を必要とする操作(パッチ適用など)を実行するには、opcとして接続します。opcユーザーは、sudo -sコマンドを使用して、仮想マシンへのrootアクセス権を取得できます。
    • nodeは、アクセスする仮想マシンのホスト名またはIPアドレスです。

PuTTYを使用したMicrosoft Windowsシステムからの仮想マシンへの接続

PuTTYを使用してMicrosoft Windowsシステムから仮想マシンにアクセスする方法について学習します。

PuTTYプログラムを使用して仮想マシンに接続する前に、次が必要です:
  • 仮想マシンのIPアドレス
  • デプロイメントに関連付けられている公開キーに対応するSSH秘密キー・ファイル。この秘密キー・ファイルは、PuTTY .ppk形式である必要があります。秘密キー・ファイルが最初にLinuxプラットフォーム上で作成された場合、PuTTYgenプログラムを使用してそれを.ppk形式に変換できます。

開始する前に

WindowsでPuTTYプログラムを使用して仮想マシンに接続するには:

  1. PuTTYをダウンロードしてインストールします。

    PuTTYをダウンロードするには、http://www.putty.org/に移動して、「You can download PuTTY here」というリンクをクリックします。

  2. PuTTYプログラム(putty.exe)を実行します。

    「PuTTY Configuration」ウィンドウに「Session」パネルが表示されます。

  3. 「Host Name (or IP address)」フィールドに、アクセスする仮想マシンのホスト名またはIPアドレスを入力します。
  4. 「Connection type」オプションが「SSH」に設定されていることを確認します。
  5. 「Category」ツリーで、必要に応じて「Connection」を展開し、「Data」をクリックします。

    「Data」パネルが表示されます。

  6. 「Auto-login username」フィールドに、接続に使用するオペレーティング・システム・ユーザーを入力します。
    • rootを必要とする操作を実行するには、ユーザーopcとして接続します。
    • ユーザー操作(バックアップの実行など)のために仮想マシンにアクセスするには、ユーザーoracleとして接続します。(このユーザーは、sudoコマンドを使用して、VMへのrootまたはoracleアクセス権を取得することもできます。
  7. 「When username is not specified」オプションが「Prompt」に設定されていることを確認します。
  8. 「Category」ツリーで、「SSH」を展開し、「Auth」をクリックします。
    「Auth」パネルが表示されます。
  9. 「Private key file for authentication」フィールドの横にある「Browse」をクリックします。続いて、「Select private key file」ウィンドウで、デプロイメントに関連付けられている公開キーに一致する秘密キー・ファイルに移動し、開きます。
  10. 「Category」ツリーで、「Session」をクリックします。

    「Session」パネルが表示されます。

  11. 「Saved Sessions」フィールドで、接続構成の名前を入力し、「Save」をクリックします。
  12. 「Open」をクリックして接続を開きます。

    「PuTTY Configuration」ウィンドウが閉じ、PuTTYターミナル・ウィンドウが表示されます。

    初めてVMに接続する場合、PuTTYの「Security Alert」ウィンドウが表示され、公開キーの確認を求められます。「Yes」をクリックして接続を続行します。

仮想マシンへの接続後のデータベースへのアクセス

仮想マシンに接続したら、次の一連のコマンドを使用してデータベースを識別し、そのデータベースに接続できます。

  1. opcユーザーとしてSSHを使用してVMにアクセスします。

  2. Oracleユーザーとしてログインします。例: sudo su oracle

  3. Oracle Grid Infrastructureホーム・ディレクトリにあるsrvctlユーティリティを使用して、システム上のデータベースをリストします。次に例を示します:

    /u01/app/12.2.0.1/grid/bin/srvctl config database -v
    nc122   /u02/app/oracle/product/12.2.0/dbhome_6 12.2.0.1.0
    s12c    /u02/app/oracle/product/12.2.0/dbhome_2 12.2.0.1.0
  4. アクセスするデータベースのデータベース・インスタンスを識別します。次に例を示します:

    /u01/app/12.2.0.1/grid/bin/srvctl status database -d s12c
    Instance s12c1 is running on node node01
    Instance s12c2 is running on node node02
  5. アクセスするデータベースの環境設定を構成します。次に例を示します:

    . oraenv
    ORACLE_SID = [oracle] ? s12c
    The Oracle base has been set to /u02/app/oracle
    export ORACLE_SID=s12c1
  6. svrctlコマンドを使用して、データベースに関するより詳細な情報を表示できます。次に例を示します:

    srvctl config database -d s12c
    Database unique name: s12c
    Database name:
    Oracle home: /u02/app/oracle/product/12.2.0/dbhome_2
    Oracle user: oracle
    Spfile: +DATAC4/s12c/spfiles12c.ora
    Password file: +DATAC4/s12c/PASSWORD/passwd
    Domain: example.com
    Start options: open
    Stop options: immediate
    Database role: PRIMARY
    Management policy: AUTOMATIC
    Server pools:
    Disk Groups: DATAC4
    Mount point paths:
    Services:
    Type: RAC
    Start concurrency:
    Stop concurrency:
    OSDBA group: dba
    OSOPER group: racoper
    Database instances: s12c1,s12c2
    Configured nodes: node01,node02
    CSS critical: no
    CPU count: 0
    Memory target: 0
    Maximum memory: 0
    Default network number for database services:
    Database is administrator managed
  7. SQL*Plusを使用してデータベースにアクセスできます。次に例を示します:

    sqlplus / as sysdba
    
    SQL*Plus: Release 12.2.0.1.0 Production ...
    
    Copyright (c) 1982, 2016, Oracle.  All rights reserved.
    
    Connected to:
    Oracle Database 12c EE Extreme Perf Release 12.2.0.1.0 - 64bit Production

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

Oracle Database Oracle Exadata Database Service on Exascale Infrastructureは、Oracle Net Servicesを使用したリモート・データベース・アクセスをサポートします。

Oracle Exadata Database Service on Exascale InfrastructureはOracle Grid Infrastructureを使用するため、単一クライアント・アクセス名(SCAN)接続を使用してOracle Net Services接続を作成することができます。SCANは、クライアントがクラスタ内で実行中のOracle Databaseインスタンスにアクセスするための一貫したメカニズムを提供する機能です。

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

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

ノート

このドキュメントでは、Oracle Net Servicesを使用してOracle Exadata Database Service on Exascale Infrastructureデータベースに接続するための基本的な要件を説明します。

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

Oracle Net Servicesを使用してOracle Exadata Database Service on Exascale Infrastructure上のOracle Databaseインスタンスに接続するための前提条件を確認します。

Oracle Net Servicesを使用してOracle Exadata Database Service on Exascale Infrastructure上のOracleデータベースに接続するには、次が必要です:

  • SCAN VIPのIPアドレス、またはアクセスするデータベースをホストする仮想マシンのホスト名またはIPアドレス。
  • データベース識別子。データベース・システム識別子(SID)またはサービス名を指定できます。

SQL Developerを使用したデータベースへの接続

次のいずれかの方法でSQL Developerを使用してデータベースに接続できます:

  • コンピュータからデータベースへの一時的なSSHトンネルを作成します。この方法では、トンネルの存続期間のみアクセスが提供されます。(データベースの使用が終了したら、必ずSSHセッションを終了してSSHトンネルを閉じてください。)
  • Exadata Cloud ServiceインスタンスのクラウドVMクラスタ・リソースに使用されるセキュリティ・リストを更新して、Oracle SCANリスナーとして使用されるポートを開きます。デフォルトのSCANリスナー・ポートは1521です。この方法は、データベースへのより永続的なアクセスを提供します。詳細は、セキュリティ・リストの更新を参照してください。

前述のようなSSHトンネルを作成したか、SCANリスナー・ポートを開いた後、ネットワークの設定方法およびネットワークの接続元に応じて、SCAN IPアドレスまたはパブリックIPアドレスを使用してOracle Exadata Database Service on Exascale Infrastructureインスタンスに接続することができます。IPアドレスは、コンソールのデータベース詳細ページで確認できます。

SCAN IPアドレスを使用して接続するには

クライアントがオンプレミスで、FastConnectまたはサイト間VPN接続を使用して接続している場合は、SCAN IPアドレスを使用してデータベースに接続できます。

次のオプションがあります:
  • 次のtnsnames.oraの例のように、プライベートSCAN IPアドレスを使用します:

    testdb=
      (DESCRIPTION =
        (ADDRESS_LIST=
          (ADDRESS = (PROTOCOL = TCP)(HOST = <scanIP1>)(PORT = 1521))
          (ADDRESS = (PROTOCOL = TCP)(HOST = <scanIP2>)(PORT = 1521)))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = <dbservice.subnetname.dbvcn.oraclevcn.com>)
        )
      )
  • オンプレミスのDNSサーバーで外部SCAN名を定義します。アプリケーションは、この外部SCAN名をVMクラスタのプライベートSCAN IPアドレスに解決でき、アプリケーションは外部SCAN名を含む接続文字列を使用できます。次のtnsnames.oraの例では、オンプレミスDNSサーバーにextscanname.example.comが定義されています。

    testdb =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = <extscanname.example.com>)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = <dbservice.subnetname.dbvcn.oraclevcn.com>)
        )
      )
パブリックIPアドレスを使用して接続するには

クライアントとデータベースが異なるVCNにある場合、またはデータベースがインターネット・ゲートウェイのあるVCNにある場合、ノードのパブリックIPアドレスを使用してデータベースに接続できます。

ただし、次の点を考慮することが重要です:

  • クライアントがパブリックIPアドレスを使用する場合、クライアントはSCANリスナーをバイパスしてノード・リスナーに到達するため、サーバー側のロード・バランシングは使用できません。
  • クライアントがパブリックIPアドレスを使用する場合、VIPフェイルオーバー機能の利点を活用できません。ノードが使用できなくなると、ノードへの新しい接続の試行はTCP/IPタイムアウトが発生するまでハングします。クライアント側のsqlnetパラメータを設定して、TCP/IPタイムアウトを制限できます。

次のtnsnames.oraの例は、TCP/IPタイムアウトを回避するためのCONNECT_TIMEOUTパラメータを含む接続文字列を示しています。

test=
  (DESCRIPTION =
    (CONNECT_TIMEOUT=60)
    (ADDRESS_LIST=
      (ADDRESS = (PROTOCOL = TCP)(HOST = <publicIP1>)(PORT = 1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = <publicIP2>)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = <dbservice.subnetname.dbvcn.oraclevcn.com>)
    )
  )

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

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

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

複数のSCANリスナーを使用して、Oracle Exadata Database Service on Exascale Infrastructureシステムの接続記述子を設定できます。

この方法では、すべての単一クライアント・アクセス名(SCAN)の仮想IP (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–3]は、SCAN VIPのIPアドレスです。

    sid-or-service-entryは、次のいずれかのフォーマットを使用してデータベースSIDまたはサービス名を識別します:
    • SID=sid-name。例: SID=S12C1
    • SERVICE_NAME=service-name。例: SERVICE_NAME=PDB1.example.yourcloud.com
    ノート

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

カスタムSCAN名を参照する接続記述子を使用したデータベースへの接続

カスタムSCAN名を使用して、Oracle Exadata Database Service on Exascale Infrastructureシステムの接続記述子を設定できます。

この方法を使用して、ドメイン・ネーム・サーバー(DNS)にカスタムの単一クライアント・アクセス名(SCAN)を定義します。これは、3つのSCAN仮想IPアドレス(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=S12C1
    • SERVICE_NAME=service-name。例: SERVICE_NAME=PDB1.example.yourcloud.com
    または、簡易接続メソッドを使用して、次のフォーマットで接続記述子を指定できます:
    scan-name:1521/sid-or-service-entry
    次に例を示します:
    exa1scan.example.com:1521/S12C1
    または
    exa1scan.example.com:1521/PDB1.example.yourcloud.com

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

SCANリスナをバイパスする接続記述子を使用してOracle Exadata Database Service on Exascale Infrastructure上のOracleデータベースインスタンスに接続するには、この手順を使用して、接続をノード・リスナーに直接ルーティングします。

この方法を使用すると、SCANで提供される高可用性およびロード・バランシングは放棄されます。ただし、特定のノードまたはネットワーク・インタフェースに直接接続する場合は、この方法が適していることがあります。たとえば、バルク・データ・ロードを実行するプログラムからの接続にバックアップ・ネットワークを使用できます。

この方法では、ノードのホスト名またはIPアドレスを使用して接続を転送します。

例4-1 ノードを直接参照するNet Services別名の定義

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は、使用する仮想マシンのホスト名またはIPアドレスです。

sid-or-service-entryは、次のいずれかのフォーマットを使用してデータベースSIDまたはサービス名を識別します:
  • SID=sid-name。例: SID=S12C1
  • SERVICE_NAME=service-name。例: SERVICE_NAME=PDB1.example.oraclecloudatcust.com
または、簡易接続メソッドを使用して、次のフォーマットで接続記述子を指定できます:
node:1521/sid-or-service-entry
次に例を示します:
exa1node01.example.com:1521/S12C1
または
exa1node01.example.com:1521/PDB1.example.oraclecloudatcust.com

Oracle Exadata Database Service on Exascale Infrastructureサービスへの接続

SSHを使用してOracle Exadata Database Service on Exascale Infrastructureシステムに接続する方法、およびOracle Net Services (SQL*Net)を使用してOracle Exadata Database Service on Exascale Infrastructureデータベースに接続する方法について学習します。

SQL Developerを使用したデータベースへの接続

次のいずれかの方法でSQL Developerを使用してデータベースに接続できます:

  • コンピュータからデータベースへの一時的なSSHトンネルを作成します。この方法では、トンネルの存続期間のみアクセスが提供されます。(データベースの使用が終了したら、必ずSSHセッションを終了してSSHトンネルを閉じてください。)
  • Exadata Cloud ServiceインスタンスのクラウドVMクラスタ・リソースに使用されるセキュリティ・リストを更新して、Oracle SCANリスナーとして使用されるポートを開きます。デフォルトのSCANリスナー・ポートは1521です。この方法は、データベースへのより永続的なアクセスを提供します。詳細は、セキュリティ・リストの更新を参照してください。

前述のようなSSHトンネルを作成したか、SCANリスナー・ポートを開いた後、ネットワークの設定方法およびネットワークの接続元に応じて、SCAN IPアドレスまたはパブリックIPアドレスを使用してOracle Exadata Database Service on Exascale Infrastructureインスタンスに接続することができます。IPアドレスは、コンソールのデータベース詳細ページで確認できます。

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

Oracle Net Servicesを使用して、Oracle Exadata Database Service on Exascale Infrastructureシステムの仮想マシンに接続できます。

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

Oracle Database Oracle Exadata Database Service on Exascale Infrastructureは、Oracle Net Servicesを使用したリモート・データベース・アクセスをサポートします。

Oracle Exadata Database Service on Exascale InfrastructureはOracle Grid Infrastructureを使用するため、単一クライアント・アクセス名(SCAN)接続を使用してOracle Net Services接続を作成することができます。SCANは、クライアントがクラスタ内で実行中のOracle Databaseインスタンスにアクセスするための一貫したメカニズムを提供する機能です。

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

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

ノート

このドキュメントでは、Oracle Net Servicesを使用してOracle Exadata Database Service on Exascale Infrastructureデータベースに接続するための基本的な要件を説明します。

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

Oracle Net Servicesを使用してOracle Exadata Database Service on Exascale Infrastructure上のOracle Databaseインスタンスに接続するための前提条件を確認します。

Oracle Net Servicesを使用してOracle Exadata Database Service on Exascale Infrastructure上のOracleデータベースに接続するには、次が必要です:

  • SCAN VIPのIPアドレス、またはアクセスするデータベースをホストする仮想マシンのホスト名またはIPアドレス。
  • データベース識別子。データベース・システム識別子(SID)またはサービス名を指定できます。
SCANを使用したデータベースへの接続

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

SDKまたはCLIを使用したIPアドレスの識別

SDKまたはOCI CLIを使用して、Oracle Exadata Database Service on Exascale Infrastructureコンピュート・ノードのIPアドレスを識別できます。その後、IPアドレスを使用してシステムに接続できます。

プライベート・クライアントおよびバックアップ・サブネットのIPアドレスを取得するには

  1. GetDbNode APIを使用して、Oracle Exadata Database Service on Exascale Infrastructure dbNodeの詳細を返します。dbNodeのhostIpIdおよびbackupIpIdパラメータについて返されるOCIDに着目します。
  2. hostIpIdおよびbackupIpIdパラメータで得られたOCIDを使用し、GetPrivateIp APIを使用して、クライアント・サブネットおよびバックアップ・サブネットで使用されるプライベートIPアドレスを取得できます。パブリック・サブネットIPアドレスの場合は、GetPublicIpByPrivateIpId APIを使用します。
すべてのSCAN VIPを参照する接続記述子を使用したデータベースへの接続

複数のSCANリスナーを使用して、Oracle Exadata Database Service on Exascale Infrastructureシステムの接続記述子を設定できます。

この方法では、すべての単一クライアント・アクセス名(SCAN)の仮想IP (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–3]は、SCAN VIPのIPアドレスです。

    sid-or-service-entryは、次のいずれかのフォーマットを使用してデータベースSIDまたはサービス名を識別します:
    • SID=sid-name。例: SID=S12C1
    • SERVICE_NAME=service-name。例: SERVICE_NAME=PDB1.example.yourcloud.com
    ノート

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

カスタムSCAN名を参照する接続記述子を使用したデータベースへの接続

カスタムSCAN名を使用して、Oracle Exadata Database Service on Exascale Infrastructureシステムの接続記述子を設定できます。

この方法を使用して、ドメイン・ネーム・サーバー(DNS)にカスタムの単一クライアント・アクセス名(SCAN)を定義します。これは、3つのSCAN仮想IPアドレス(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=S12C1
    • SERVICE_NAME=service-name。例: SERVICE_NAME=PDB1.example.yourcloud.com
    または、簡易接続メソッドを使用して、次のフォーマットで接続記述子を指定できます:
    scan-name:1521/sid-or-service-entry
    次に例を示します:
    exa1scan.example.com:1521/S12C1
    または
    exa1scan.example.com:1521/PDB1.example.yourcloud.com
ノード・リスナーを使用したデータベースへの接続

SCANリスナをバイパスする接続記述子を使用してOracle Exadata Database Service on Exascale Infrastructure上のOracleデータベースインスタンスに接続するには、この手順を使用して、接続をノード・リスナーに直接ルーティングします。

この方法を使用すると、SCANで提供される高可用性およびロード・バランシングは放棄されます。ただし、特定のノードまたはネットワーク・インタフェースに直接接続する場合は、この方法が適していることがあります。たとえば、バルク・データ・ロードを実行するプログラムからの接続にバックアップ・ネットワークを使用できます。

この方法では、ノードのホスト名またはIPアドレスを使用して接続を転送します。

例4-2ノードを直接参照するNet Services別名の定義

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は、使用する仮想マシンのホスト名またはIPアドレスです。

sid-or-service-entryは、次のいずれかのフォーマットを使用してデータベースSIDまたはサービス名を識別します:
  • SID=sid-name。例: SID=S12C1
  • SERVICE_NAME=service-name。例: SERVICE_NAME=PDB1.example.oraclecloudatcust.com
または、簡易接続メソッドを使用して、次のフォーマットで接続記述子を指定できます:
node:1521/sid-or-service-entry
次に例を示します:
exa1node01.example.com:1521/S12C1
または
exa1node01.example.com:1521/PDB1.example.oraclecloudatcust.com