Exadata Cloud Infrastructureインスタンスへの接続

このトピックでは、SSHまたはSQL Developerを使用してExadata Cloud Infrastructureインスタンスに接続する方法について説明します。

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

ノート

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

前提条件

Exadata Cloud Infrastructureインスタンスのコンピュート・ノードへのSSHアクセスの要件のリスト。

次のものが必要になります:

  • システムの起動時に使用された公開キーに関連付けられた秘密キーを含むファイルへのフル・パス。

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

    プライベートIPアドレスを使用して、オンプレミス・ネットワークまたは仮想クラウド・ネットワーク(VCN)内からシステムに接続します。これには、オンプレミスのホストからVPNまたはFastConnectを介したVCNへの接続や、同じVCN内の別のホストからの接続などがあります。パブリックIPアドレスを使用して、クラウド外からシステムに接続します(VPNなし)。IPアドレスは、次のようにOracle Cloud Infrastructureコンソールで検索できます:

    • クラウドVMクラスタ(新しいリソース・モデル): 「Exadata VMクラスタの詳細」ページで、「リソース」リストの「仮想マシン」をクリックします。
    • DBシステム: 「DBシステムの詳細」ページで、「リソース」リストの「ノード」をクリックします。

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

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

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

クラウドVMクラスタのデフォルトのSCANリスナー・ポートは1521です。コンソールを使用してクラウドVMクラスタ・リソースを作成する際、オプションで別のSCANリスナー・ポート番号を指定できます。OCIコンソールでは、クラスタの作成時に、このオプションは「拡張オプション」の下に表示されます。

ノート

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

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

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

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

関連トピック

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

SSHを使用してUNIX系システムからOracle ExaDB-Dシステム上の仮想マシンにアクセスするには、次の手順を使用します。

  • 次の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」フィールドに、次のように接続するオペレーティング・システム・ユーザーを入力します:
    1. ユーザーopcとして接続し、仮想マシンへのrootまたは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でログインします。
  2. 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 Exadata Cloud Infrastructureでは、Oracle Net Servicesの使用によるリモート・データベース・アクセスがサポートされます。

Exadata Cloud 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を使用してExadata Cloud Infrastructureデータベースに接続するための基本的な要件について説明します。

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

Oracle Net Servicesを使用してOracle ExaDB-D上のOracle Databaseインスタンスに接続するための前提条件を確認します。

Oracle Net Servicesを使用してExadata Cloud Infrastructure上のOracle Databaseに接続するには、次が必要です:
  • SCAN VIPのIPアドレス、またはアクセスするデータベースをホストする仮想マシンのホスト名またはIPアドレス。
  • データベース識別子: データベース・システム識別子(SID)またはサービス名。

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

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

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

前述のようにSSHトンネルを作成するか、SCANリスナー・ポートを開いたら、ネットワークの設定方法および接続元に応じて、SCAN IPアドレスまたはパブリックIPアドレスを使用してExadata Cloud 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名をDBシステムのプライベート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 Dedicated 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 Dedicated 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リスナーをバイパスする接続記述子を使用してExadata Cloud Infrastructure上のOracle Databaseインスタンスに接続するには、この手順を使用して接続をノード・リスナーに直接ルーティングします。

この方法を使用すると、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