Oracle Autonomous Databaseの構成および接続

Oracle Autonomous Database構成ファイルを取得し、CMAN-TDMがインストールされているマシンにインストールします。

相互TLSプロトコルを使用したOracle Autonomous Database Walletファイルの構成

Oracle Autonomous Database (Oracle Autonomous Data WarehouseOracle Autonomous Transaction ProcessingおよびOracle Autonomous JSON Databaseを含む)に接続するには、ウォレットを使用する必要があります。これにより、認証および暗号化のセキュリティを強化するTransport Layer Security (TLS)が相互に提供されます。
  1. Oracle Cloud Infrastructure Consoleにログインし、自律型データベースが存在するリージョンに移動します。
  2. 「Autonomous Database」ページに移動し、「DB接続」タブをクリックします。
    「Autonomous Databaseの詳細」が表示されます。
  3. 「Download Wallet」をクリックします。
    ウォレット・パスワードの入力を求められます。
  4. パスワードを入力し、ウォレットZIPファイルをローカル・マシンにダウンロードします。
    優先SSHファイル転送アプリケーションまたは方法を使用して、ダウンロードしたZIPファイルをLinuxマシンに転送します。ウォレット・パスワードを保存(または記憶)することが重要です。パスワードは、このソリューションの後半で使用する必要があります。
    ウォレットZIPファイルがLinuxマシンにある次のステップに進みます。
  5. $TNS_ADMINディレクトリにコンテンツを抽出します。

    ノート:

    この場所は、CMAN-TDMマシン・インストールのデフォルトの$ORACLE_HOME/network/adminパスです。

    ウォレットにはデータベース・ユーザー名およびパスワード資格証明が含まれていませんが、後で使用するためにウォレットおよびファイルを安全な場所に保持する必要があります。

    次に、抽出されたファイルの例を示します。

    -rw-r--r--. 1 oracle oinstall  7085 Sep  3 07:24 cwallet.sso
    -rw-r--r--. 1 oracle oinstall  7040 Sep  3 07:24 ewallet.p12
    -rw-r--r--. 1 oracle oinstall  3243 Aug 24 14:25 keystore.jks
    -rw-r--r--. 1 oracle oinstall   691 Aug 24 14:25 ojdbc.properties
    -rw-r--r--. 1 oracle oinstall  3387 Aug 24 14:25 README
    -rw-r--r--. 1 oracle oinstall   235 Sep  3 08:00 sqlnet.ora
    -rw-r--r--. 1 oracle oinstall  1832 Sep  3 08:41 tnsnames.ora
    -rw-r--r--. 1 oracle oinstall  3336 Aug 24 14:25 truststore.jks

    現在のユースケースに必要な主なファイルは、cwallet.ssoewallet.p12sqlnet.oraおよびtnsnames.oraです。他のファイルは、ユーザーがJDBCアプリケーションを介して接続することを計画している場合にのみ必要です。

  6. sqlnet.oraファイルを編集し、ウォレットの場所DIRECTORYをcwallet.ssoファイルを含むディレクトリに変更します。
    WALLET_LOCATION = (SOURCE = (METHOD = file) (METHOD_DATA = (DIRECTORY="/u01/app/oracle/network/admin")))
    SSL_SERVER_DN_MATCH=yes

    ウォレットが設定されたので、tnsnames.ora (exampledb_highなど)の「ネットワーク・サービス名」接続文字列のいずれかを使用してデータベースに接続できます。

  7. tnsnames.oraファイルを開き、自律型データベースの接続詳細を別のファイル($HOME/dbdetails.txtなど)に格納します。
    CMAN-TDMを構成するときに、自律型データベースのアドレス、セキュリティおよびサービス名パラメータを使用します。
  8. (オプション) SQL*Plusを使用してデータベース接続を確認します。
    • SQL*PlusがCMAN-TDMと同じマシン上にある場合は、ウォレット・ディレクトリ$TNS_ADMINからtnsnames.oraファイルを表示できます。

    • SQL*PlusがCMAN-TDMとは異なるマシンにインストールされている場合は、SQL*Plusがインストールされているマシンの$TNS_ADMINディレクトリにAutonomous Databaseウォレット・ファイルをコピーします。次に、前の項のデータベースの詳細を同じマシンの$TNS_ADMIN/tnsnames.oraファイルにコピーします。

    $TNS_ADMIN/tnsnames.oraファイルには、複数のネットワーク・サービス名(=記号の左側)が含まれています。データベースから必要なパフォーマンスとサービスの同時実行性のレベルに応じて、任意のものを使用できます。

    ADMINユーザーとしてSQL*Plusを実行し、データベースの作成時に設定したユーザーのパスワードを入力します。

    $ sqlplus -l admin@adb-name_high
    成功すると、データベースに接続されます。

Oracle Autonomous Databaseに接続するためのCMANの構成

CMAN-TDMマシンの$TNS_ADMINディレクトリにあるすべての指定を含むCMAN (cman.ora)構成ファイルを作成、構成および追加します。多くの場合、ディレクトリはORACLE_HOME/network/adminにあります。

cman.oraファイルは、CMAN-TDMによって読み取られるメイン構成ファイルです。これには、Traffic DirectorおよびCMANOracle Autonomous Databaseに接続できるようにするためのすべての構成詳細が含まれます。

  1. oracleユーザーとしてログインします。
  2. $TNS_ADMINディレクトリに移動し、cman.oraファイルを作成します。
    $ cd $TNS_ADMIN
    $ vi cman.ora
  3. cman.oraファイルを構成します。
    この例では、CMAN-TDMインスタンス名はcman-testです。クライアント・アプリケーションは、TCPプロトコルを介してCMANプロセスに接続し、CMANはTCPSプロトコルを介してOracle Autonomous Databaseに接続します。

    addressパラメータには、CMAN-TDMサーバーのホスト名とプロトコルが含まれます。次のcman.oraファイルの例では、TCPおよびポート番号1523を使用しています。Linuxマシンで使用可能な任意のポート番号を選択できます。

    次のパラメータの構成:

    • tdm=true: 重要 Traffic Directorモードを有効にするには、tdmパラメータをtrueに設定する必要があります。
    • tdm_threading_mode=dedicated: この例では、CMAN-TDMを専用モードで実行しています。これはTraffic Directorモードのデフォルト・モードです。Traffic Directorモードは共有モードで実行できます。
    • log_level: テストおよびデバッグの目的で必要なロギング・レベルを有効化します。
    • max_connections: パフォーマンス要件に従って設定します。
    • idle_timeout=0
    • registration_invited_nodes = *
    • inbound_connect_timeout=0
    • session_timeout=0
    • outbound_connect_timeout=0
    • max_gateway_processes: パフォーマンス要件に従って設定します。
    • min_gateway_processes: パフォーマンス要件に従って設定します。
    • trace_level: テストおよびデバッグの目的で必要なレベルのトレースを有効にする場合に設定します。
    • max_cmctl_sessions: パフォーマンス要件に従って設定します。
    • event_group: init_and_term, memory_ops
    • next_hop: このパラメータは、SSLの詳細とともにOracle Autonomous Databaseのアドレス詳細を指します。これらの詳細は、前の項で作成したdbdetails.txtファイルから取得されます。
    • WALLET_LOCATION: このパラメータは、Traffic Directorモード・アプリケーション・ユーザー・ウォレットの場所を示します。このウォレットは、この項の後半で作成します。
    • SQLNET.WALLET_OVERRIDE = TRUE
    次に、cman.oraファイルの例を示します。
    exampledb_high = (description= (retry_count=20)(retry_delay=3)(address=(protocol=tcps)(port=1522)(host=adb.us-ashburn-1.oraclecloud.com))(connect_data=(service_name=g5cadf7d7e4c6c8_exampledb_high.adb.oraclecloud.com))(security=(ssl_server_cert_dn="CN=adwc.uscom-east-1.oraclecloud.com, OU=Oracle BMCS US, O=Oracle Corporation, L=Redwood City, ST=California, C=US")))
    
    cman-test = (configuration=
      (address=(protocol=tcp)(host=oracle-cloud-linuxvm)(port=1523))
      (parameter_list =
        (tdm=true)
        (tdm_threading_mode=dedicated)
        (log_level=off)
        (max_connections=50)
        (idle_timeout=0)
        (registration_invited_nodes = *)
        (inbound_connect_timeout=0)
        (session_timeout=0)
        (outbound_connect_timeout=0)
        (max_gateway_processes=8)
        (min_gateway_processes=3)
        (trace_level=support)
        (max_cmctl_sessions=4)
        (event_group=init_and_term,memory_ops)
      )
      (next_hop=(description=(address=(protocol=tcps)(port=1522)(host=adb.us-ashburn-1.oraclecloud.com))(security=(ssl_server_dn_match=on)(ssl_server_cert_dn="CN=adwc.uscom-east-1.oraclecloud.com, OU=Oracle BMCS US, O=Oracle Corporation, L=Redwood City, ST=California, C=US"))))
      (rule_list=
        (rule=
           (src=*)(dst=*)(srv=*)(act=accept)
           (action_list=(aut=off)(moct=0)(mct=0)(mit=0)(conn_stats=on))
      ) )
    )
    
    WALLET_LOCATION = (SOURCE = (METHOD = file) (METHOD_DATA = (DIRECTORY="/u01/app/oracle/network/admin")))
    SQLNET.WALLET_OVERRIDE = TRUE
  4. データベース・プロキシ・ユーザー(tdm)を作成して、Traffic Directorモード(TDM)を有効にするために必要なすべての権限を取得します。
    1. adminユーザーとしてSQL*Plusを介してOracle Autonomous Databaseにログインします。
      $ sqlplus admin@exampledb_high
      
      SQL*Plus: Release 21.0.0.0.0 - Production on Tue May 6 15:34:43 2025
      Version 21.3.0.0.0
      
      Copyright (c) 1982, 2025, Oracle.  All rights reserved.
      
      Enter password:
      Last Successful login time: Tue May 06 2025 15:33:09 +00:00
      
      Connected to:
      Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
      Version 19.12.0.1.0
    2. データベース・プロキシ・ユーザーを作成します。
      この例では、データベース・プロキシ・ユーザーとしてtdmを使用します。
      SQL> create user tdm identified by {password} -- replace {password} with your actual password
      
      User created.
      
      SQL> grant create session to tdm;
      
      Grant succeeded.
    3. SQL*Plusを終了します。
  5. データベース・プロキシ・ユーザー・ウォレットを作成します。

    TDMユーザー資格証明を既存のAutonomous Databaseウォレットに追加します。

    1. Autonomous Databaseウォレットがある$TNS_ADMINディレクトリに移動します。
      多くの場合、ディレクトリは$ORACLE_HOME/network/adminです。
      $ cd $TNS_ADMIN
    2. $ORACLE_HOME/binディレクトリにあるmkstoreユーティリティを使用して、tdmユーザーの詳細をAutonomous Databaseウォレットに追加します。

      ノート:

      • service_nameパラメータには、前に作成したdbdetails.txtファイルにあるサービス名を入力します。
      • usernameおよびpasswordパラメータには、tdmユーザー資格証明を入力します。tdmを介して他のサービス(exampledb_lowなど)を使用できるようにする場合は、このステップを繰り返します。

      構文$ORACLE_HOME/bin/mkstore -wrl . -createCredential service_name username passwordを使用します。たとえば:

      
      
      $ $ORACLE_HOME/bin/mkstore -wrl . -createCredential g5cadf7d7e4c6c8_exampledb_high.adb.oraclecloud.com tdm {password}
    3. orapkiユーティリティを使用して、ウォレットが正しく作成されていることを確認します。
      $ $ORACLE_HOME/bin/orapki wallet display -wallet .
      Oracle PKI Tool Release 21.0.0.0.0 - Production
      Version 21.3.0.0.0
      Copyright (c) 2004, 2021, Oracle and/or its affiliates. All rights reserved.
      
      Requested Certificates:
      User Certificates:
      Subject:        CN=AAE9D2E1AE8646298FED591FC4A097EA,DNQ=V1
      Oracle Secret Store entries:
      oracle.security.client.connect_string1
      oracle.security.client.password1
      oracle.security.client.username1
      Trusted Certificates:
      Subject:        CN=DigiCert Global Root CA,OU=www.digicert.com,O=DigiCert Inc,C=US
      Subject:        C=US,ST=California,L=Redwood Shores,O=Oracle Corporation Autonomous Data Warehouse Cloud Self-signed CA,CN=Autonomous Data Warehouse Cloud CA
      Subject:        CN=DigiCert SHA2 Secure Server CA,O=DigiCert Inc,C=US

      出力には、tdmユーザー資格証明が格納され、信頼できる証明書およびユーザー証明書(Autonomous Database SSL証明書)であることを示すOracleシークレット・ストアのエントリが含まれている必要があります。

    4. mkstoreユーティリティを使用して、tdmユーザー資格証明がウォレットにあることを確認します。ウォレット・パスワードの入力を求められたら、Oracle Cloud Infrastructure Consoleからウォレットzipファイルをダウンロードしたときに作成したAutonomous Databaseウォレット・パスワードを入力します。
      $ $ORACLE_HOME/bin/mkstore -wrl . -listCredential
      Oracle Secret Store Tool Release 21.0.0.0.0 - Production
      Version 21.3.0.0.0
      Copyright (c) 2004, 2021, Oracle and/or its affiliates. All rights reserved.
      
      Enter wallet password:
      List credential (index: connect_string username)
      1: g5cadf7d7e4c6c8_exampledb_high.adb.oraclecloud.com tdm
  6. Oracle Autonomous DatabaseCMAN-TDMアプリケーション・ユーザーを使用して接続します。
    データベース・プロキシ・ユーザー(tdm)権限を使用してOracle Autonomous DatabaseからCMAN-TDMに接続するための権限のあるADMINユーザーではなく、一般アプリケーション・アクセス用の標準データベース・ユーザーを作成する必要があります。

    ノート:

    Autonomous Databaseに1人以上の既存のアプリケーション・ユーザーがすでに存在する場合は、このステップをスキップします。
    1. データベース・ユーザーを作成します。

      次のcreateuser.sqlスクリプトをコピーおよびカスタマイズして、ユーザーを作成できます。

      define USERNAME = &1
      
      -- Uncomment if you want to clean up a previous user
      -- begin execute immediate 'drop user &USERNAME cascade'; exception when others then if sqlcode <> -1918 then raise; end if; end;
      -- /
      
      create user &USERNAME;
      
      alter user &USERNAME
            default tablespace data temporary tablespace temp
            account unlock quota unlimited on data;
      
      grant connect, resource to &USERNAME;
      
      grant create session, create table, create procedure,
            create sequence, create trigger, create view,
            create synonym, alter  session, create type,
            soda_app to &USERNAME;
      
      password &USERNAME
    2. ADMINユーザーとしてSQL*Plusを起動します。
      $ sqlplus -l admin@exampledb_high
    3. createuser.sqlスクリプトを実行します。

      ユーザーの名前をスクリプト引数として渡します。この例では、exampleを使用します。

      スクリプトにより、この新規ユーザーのパスワードを設定するよう求められます。パスワードは、Oracle Autonomous Databaseユーザー・パスワード・ガイドラインを満たす必要があります。ガイドラインを満たさない場合、ユーザーを作成できません。

      SQL> @createuser.sql example
      新しいユーザーは、新しいパスワードを入力するとすぐに作成されます。
  7. Autonomous Databaseへのアクセスを必要とするすべてのアプリケーション・ユーザーに、CMAN-TDMを介してデータベース・プロキシ・ユーザーのtdm権限を追加し、SQL*Plusを終了します。
    SQL> alter user example grant connect through tdm;
    User altered.
    SQL> exit
  8. 新規ユーザーの接続が成功することを確認します(パスワードの入力を求められます):
    $ sqlplus -l example@exampledb_high
    
    [ . . .]
    
    SQL> show user
    USER is "example"
    
    SQL> quit

このユーザーを使用して、CMAN-TDMを介してOracle Autonomous Databaseに接続します。

CMANを介したOracle Autonomous Databaseへの接続

クライアント・アプリケーションを実行しているマシンの$TNS_ADMIN/tnsnames.oraファイルにサーバーのCMAN-TDMアドレスを追加して、接続を追加します。
  1. VMがファイアウォールの背後にある場合は、まずCMAN-TDMのLinux VMでrootユーザーとしてCMAN-TDMポート(この場合は1523)を開きます。
    $ sudo su root
    $ firewall-cmd --permanent --add-port=1523/tcp
    $ firewall-cmd --reload
  2. クライアント・アプリケーションが配置されているマシンの$TNS_ADMIN/tnsnames.oraファイルを表示して、アドレス・パラメータを確認できます。CMAN-TDM接続別名をファイルに追加できます。

    この例では、クライアント・アプリケーションSQL*PlusはCMAN-TDMと同じマシン上にあります。

    アドレスパラメータには、CMAN-TDMアドレスが含まれます。connect_dataパラメータには、Autonomous Databaseservice_nameパラメータが含まれている必要があります。

    exampledb_high_cman_tdm = (description= (retry_count=20)(retry_delay=3)(address=(protocol=tcp)(port=1523)(host=oracle-cloud-linuxvm))(connect_data=(service_name=g5cadf7d7e4c6c8_exampledb_high.adb.oraclecloud.com)))
  3. cmctlユーティリティを実行して、CMAN-TDMを起動します。
    $ $ORACLE_HOME/bin/cmctl startup -c cman-test
    ユーティリティは、CMANインスタンスに接続して起動します。インスタンスのステータスおよび詳細が表示されます。
  4. CMAN-TDM接続別名および以前に作成したアプリケーション・ユーザーexampleを使用してSQL*Plusを実行し、Autonomous Databaseに接続します。
    $ sqlplus example@exampledb_high_cman_tdm

    SQL問合せでは、CMAN-TDMOracle Autonomous Databaseに接続するために使用するデータベース・プロキシ・ユーザーTDMが表示されます。この問合せは、Oracle Databaseに直接接続すると空白値を返します。

これで、CMAN-TDMを介してOracle Autonomous Databaseに接続されました。