Oracle Autonomous Databaseの構成および接続
Oracle Autonomous Database構成ファイルを取得し、CMAN-TDMがインストールされているマシンにインストールします。
相互TLSプロトコルを使用したOracle Autonomous Database Walletファイルの構成
- Oracle Cloud Infrastructure Consoleにログインし、自律型データベースが存在するリージョンに移動します。
- 「Autonomous Database」ページに移動し、「DB接続」タブをクリックします。「Autonomous Databaseの詳細」が表示されます。
- 「Download Wallet」をクリックします。ウォレット・パスワードの入力を求められます。
- パスワードを入力し、ウォレットZIPファイルをローカル・マシンにダウンロードします。 優先SSHファイル転送アプリケーションまたは方法を使用して、ダウンロードしたZIPファイルをLinuxマシンに転送します。ウォレット・パスワードを保存(または記憶)することが重要です。パスワードは、このソリューションの後半で使用する必要があります。ウォレットZIPファイルがLinuxマシンにある次のステップに進みます。
$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.sso、ewallet.p12、sqlnet.oraおよびtnsnames.oraです。他のファイルは、ユーザーがJDBCアプリケーションを介して接続することを計画している場合にのみ必要です。-
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など)の「ネットワーク・サービス名」接続文字列のいずれかを使用してデータベースに接続できます。 tnsnames.oraファイルを開き、自律型データベースの接続詳細を別のファイル($HOME/dbdetails.txtなど)に格納します。CMAN-TDMを構成するときに、自律型データベースのアドレス、セキュリティおよびサービス名パラメータを使用します。- (オプション) 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の構成
$TNS_ADMINディレクトリにあるすべての指定を含むCMAN (cman.ora)構成ファイルを作成、構成および追加します。多くの場合、ディレクトリはORACLE_HOME/network/adminにあります。
cman.oraファイルは、CMAN-TDMによって読み取られるメイン構成ファイルです。これには、Traffic DirectorおよびCMANがOracle Autonomous Databaseに接続できるようにするためのすべての構成詳細が含まれます。
oracleユーザーとしてログインします。$TNS_ADMINディレクトリに移動し、cman.oraファイルを作成します。$ cd $TNS_ADMIN $ vi cman.oracman.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=0registration_invited_nodes= *inbound_connect_timeout=0session_timeout=0outbound_connect_timeout=0max_gateway_processes: パフォーマンス要件に従って設定します。min_gateway_processes: パフォーマンス要件に従って設定します。trace_level: テストおよびデバッグの目的で必要なレベルのトレースを有効にする場合に設定します。max_cmctl_sessions: パフォーマンス要件に従って設定します。event_group:init_and_term,memory_opsnext_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- データベース・プロキシ・ユーザー(
tdm)を作成して、Traffic Directorモード(TDM)を有効にするために必要なすべての権限を取得します。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- データベース・プロキシ・ユーザーを作成します。 この例では、データベース・プロキシ・ユーザーとして
tdmを使用します。SQL> create user tdm identified by {password} -- replace {password} with your actual password User created. SQL> grant create session to tdm; Grant succeeded. - SQL*Plusを終了します。
- データベース・プロキシ・ユーザー・ウォレットを作成します。
TDMユーザー資格証明を既存のAutonomous Databaseウォレットに追加します。
- Autonomous Databaseウォレットがある
$TNS_ADMINディレクトリに移動します。多くの場合、ディレクトリは$ORACLE_HOME/network/adminです。$ cd $TNS_ADMIN $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}- service_nameパラメータには、前に作成した
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シークレット・ストアのエントリが含まれている必要があります。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
- Autonomous Databaseウォレットがある
- Oracle Autonomous DatabaseでCMAN-TDMアプリケーション・ユーザーを使用して接続します。データベース・プロキシ・ユーザー(
tdm)権限を使用してOracle Autonomous DatabaseからCMAN-TDMに接続するための権限のあるADMINユーザーではなく、一般アプリケーション・アクセス用の標準データベース・ユーザーを作成する必要があります。ノート:
Autonomous Databaseに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 ADMINユーザーとしてSQL*Plusを起動します。$ sqlplus -l admin@exampledb_highcreateuser.sqlスクリプトを実行します。ユーザーの名前をスクリプト引数として渡します。この例では、
exampleを使用します。スクリプトにより、この新規ユーザーのパスワードを設定するよう求められます。パスワードは、Oracle Autonomous Databaseユーザー・パスワード・ガイドラインを満たす必要があります。ガイドラインを満たさない場合、ユーザーを作成できません。
SQL> @createuser.sql example新しいユーザーは、新しいパスワードを入力するとすぐに作成されます。
- データベース・ユーザーを作成します。
- Autonomous Databaseへのアクセスを必要とするすべてのアプリケーション・ユーザーに、CMAN-TDMを介してデータベース・プロキシ・ユーザーの
tdm権限を追加し、SQL*Plusを終了します。SQL> alter user example grant connect through tdm; User altered. SQL> exit - 新規ユーザーの接続が成功することを確認します(パスワードの入力を求められます):
$ 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アドレスを追加して、接続を追加します。- VMがファイアウォールの背後にある場合は、まずCMAN-TDMのLinux VMで
rootユーザーとしてCMAN-TDMポート(この場合は1523)を開きます。$ sudo su root $ firewall-cmd --permanent --add-port=1523/tcp $ firewall-cmd --reload - クライアント・アプリケーションが配置されているマシンの
$TNS_ADMIN/tnsnames.oraファイルを表示して、アドレス・パラメータを確認できます。CMAN-TDM接続別名をファイルに追加できます。この例では、クライアント・アプリケーションSQL*PlusはCMAN-TDMと同じマシン上にあります。
アドレスパラメータには、CMAN-TDMアドレスが含まれます。
connect_dataパラメータには、Autonomous Databaseのservice_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))) cmctlユーティリティを実行して、CMAN-TDMを起動します。$ $ORACLE_HOME/bin/cmctl startup -c cman-testユーティリティは、CMANインスタンスに接続して起動します。インスタンスのステータスおよび詳細が表示されます。- CMAN-TDM接続別名および以前に作成したアプリケーション・ユーザー
exampleを使用してSQL*Plusを実行し、Autonomous Databaseに接続します。$ sqlplus example@exampledb_high_cman_tdmSQL問合せでは、CMAN-TDMがOracle Autonomous Databaseに接続するために使用するデータベース・プロキシ・ユーザー
TDMが表示されます。この問合せは、Oracle Databaseに直接接続すると空白値を返します。
これで、CMAN-TDMを介してOracle Autonomous Databaseに接続されました。