設定並連線至 Oracle Autonomous Database
取得 Oracle Autonomous Database 組態檔,並將它們安裝在安裝 CMAN-TDM 的機器上。
使用雙向 TLS 協定設定 Oracle Autonomous Database 公事包檔案
- 登入 Oracle Cloud Infrastructure 主控台,並導覽至自治式資料庫所在的區域。
- 瀏覽至 Autonomous Database 頁面,然後按一下資料庫連線頁籤。「Autonomous Database 詳細資訊」隨即顯示。
- 按一下「下載公事包」。系統會提示您使用公事包密碼。
- 提供密碼,然後將公事包 ZIP 檔案下載至您的本機機器。 使用您偏好的 SSH 檔案傳輸應用程式或方法,將下載的 ZIP 檔案傳輸到您的 Linux 機器。請務必儲存 (或記住) 公事包密碼。您稍後必須在此解決方案中使用密碼。在 Linux 機器中的公事包 ZIP 檔案之後,移至下一個步驟。
- 將內容擷取至
$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 不同的機器上,請將 Autonomous Database 公事包檔案複製到安裝 SQL*Plus 之機器的
$TNS_ADMIN目錄中。然後將上一個區段的資料庫詳細資訊複製到同一部機器上的$TNS_ADMIN/tnsnames.ora檔案。
$TNS_ADMIN/tnsnames.ora檔案包含數個網路服務名稱 (位於 "=" 符號左側)。您可以根據資料庫所需要的效能和服務並行層次,使用任何項目。以
ADMIN使用者身分執行 SQL*Plus,並輸入您在建立資料庫時所設定的使用者密碼:$ sqlplus -l admin@adb-name_high成功時,您將連線到資料庫。 -
設定 CMAN 以連線至 Oracle Autonomous Database
$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.ora - 設定
cman.ora檔案。在此範例中, CMAN-TDM 實例名稱是cman-test。用戶端應用程式透過 TCP 協定連線至 CMAN 程序,而 CMAN 則透過 TCPS 協定連線至 Oracle Autonomous Database 。位址參數包含 CMAN-TDM 伺服器的主機名稱和協定。下列範例
cman.ora檔案使用 TCP 和連接埠號碼 1523。您可以在 Linux 機器上選擇任何可用的連接埠號碼。設定下列參數:
tdm=true:重要! 您必須將tdm參數設為 true ,才能啟用 Traffic Director 模式。tdm_threading_mode=dedicated:此範例是以專用模式 (Traffic Director 模式的預設模式) 執行 CMAN-TDM 。您可以在共用模式中執行 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:此參數會指向 Oracle Autonomous Database 的位址詳細資訊以及 SSL 詳細資訊。這些詳細資訊是從您在上一節中建立的dbdetails.txt檔案取得。WALLET_LOCATION:此參數會指向 Traffic Director 模式應用程式使用者公事包的位置,您稍後會在此區段中建立。SQLNET.WALLET_OVERRIDE= 真
以下為範例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使用者證明資料。如果您想要讓其他服務 (例如exampledb_low) 可透過tdm使用,請重複此步驟。
請使用下列語法:
$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輸出應該包含 Oracle 加密密碼存放區項目,這表示已儲存
tdm使用者證明資料,而且是「信任憑證」和「使用者憑證」(Autonomous Database SSL 憑證)。 - 使用
mkstore公用程式驗證公事包中的tdm使用者證明資料。系統提示您輸入公事包密碼時,請輸入您從 Oracle Cloud Infrastructure 主控台下載公事包壓縮檔時所建立的 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 應用程式使用者進行連線。您需要建立一個「一般」資料庫使用者來進行一般應用程式存取,而不是使用授權的
ADMIN使用者,以使用資料庫代理使用者 (tdm) 權限透過 CMAN-TDM 連線至 Oracle Autonomous Database 。附註:
如果您在 Autonomous Database 中已有一或多個現有應用程式使用者,請略過此步驟。- 建立資料庫使用者。
您可以複製和自訂下列
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_high - 執行
createuser.sql命令檔。傳送您使用者的名稱作為命令檔引數。此範例使用
example。指令碼將會提示您設定此新使用者的密碼。密碼必須符合 Oracle Autonomous Database 使用者密碼準則。如果不符合準則,您將無法建立使用者。
SQL> @createuser.sql example新使用者會在您輸入新密碼後立即建立。
- 建立資料庫使用者。
- 將資料庫代理主機使用者
tdm權限新增至所有需要透過 CMAN-TDM 存取 Autonomous Database 的應用程式使用者,然後結束 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 連接埠 (在此情況下為 1523),作為 CMAN-TDM 之 Linux VM 上的
root使用者。$ 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 。