Oracle Autonomous Database 구성 및 연결
Oracle Autonomous Database 구성 파일을 가져와서 CMAN-TDM이 설치된 시스템에 설치합니다.
상호 TLS 프로토콜을 사용하여 Oracle Autonomous Database 전자 지갑 파일 구성
- Oracle Cloud Infrastructure 콘솔에 로그인하여 자율운영 데이터베이스가 상주하는 지역으로 이동합니다.
- Autonomous Database 페이지로 이동한 다음 DB 접속 탭을 누릅니다.Autonomous Database Details가 표시됩니다.
- 전자 지갑 다운로드를 누릅니다.전자 지갑 비밀번호를 묻는 프롬프트가 표시됩니다.
- 비밀번호를 제공한 다음 전자 지갑 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이 아닌 다른 시스템에 설치된 경우 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.oracman.ora파일을 구성합니다.이 예에서 CMAN-TDM 인스턴스 이름은cman-test입니다. 클라이언트 응용 프로그램은 TCP 프로토콜을 통해 CMAN 프로세스에 연결되고, CMAN은 TCPS 프로토콜을 통해 Oracle Autonomous Database에 연결됩니다.주소 매개변수는 호스트 이름, CMAN-TDM 서버의 프로토콜을 포함합니다. 다음 예제
cman.ora파일은 TCP 및 포트 번호 1523을 사용합니다. Linux 시스템에서 사용 가능한 포트 번호를 선택할 수 있습니다.다음 매개변수를 구성합니다.
tdm=true: 중요! Traffic Director 모드를 사용으로 설정하려면tdm매개변수를 true로 설정해야 합니다.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: 이 매개변수는 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- Traffic Director 모드(TDM)를 사용으로 설정하는 데 필요한 모든 권한을 가져오려면 데이터베이스 프록시 사용자(
tdm)를 생성합니다.- SQL*Plus를 통해 Oracle Autonomous Database에
admin사용자로 로그인합니다.$ 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를 종료합니다.
- SQL*Plus를 통해 Oracle Autonomous Database에
- 데이터베이스 프록시 사용자 전자 지갑을 생성합니다.
기존 Autonomous Database 전자 지갑에 TDM 사용자 인증서를 추가합니다.
- Autonomous Database 전자 지갑이 있는
$TNS_ADMIN디렉토리로 이동합니다.디렉토리는 대개$ORACLE_HOME/network/admin입니다.$ cd $TNS_ADMIN $ORACLE_HOME/bin디렉토리에 있는mkstore유틸리티를 사용하여 Autonomous Database 전자 지갑에tdm사용자 세부정보를 추가합니다.주:
- 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 Secret Store 항목이 포함되어야 합니다.mkstore유틸리티를 사용하여tdm사용자 인증서가 전자 지갑에 있는지 확인합니다. 전자 지갑 비밀번호를 입력하라는 메시지가 표시되면 Oracle Cloud Infrastructure 콘솔에서 전자 지갑 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) 권한을 사용하여 CMAN-TDM을 통해 Oracle Autonomous Database에 접속하기 위해 권한 있는ADMIN사용자 대신 일반 애플리케이션 액세스에 대한 '일반' 데이터베이스 사용자를 생성해야 합니다.주:
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_highcreateuser.sql스크립트를 실행합니다.스크립트 인수로 사용자 이름을 전달합니다. 이 예에서는
example를 사용합니다.이 스크립트는 새 사용자에 대한 암호를 설정하라는 메시지를 표시합니다. 비밀번호는 Oracle Autonomous Database 사용자 비밀번호 지침을 충족해야 합니다. 지침을 충족하지 않는 경우 사용자를 생성할 수 없습니다.
SQL> @createuser.sql example새 암호를 입력하는 즉시 새 사용자가 생성됩니다.
- 데이터베이스 유저 생성
- CMAN-TDM을 통해 Autonomous Database에 액세스해야 하는 모든 애플리케이션 사용자에게 데이터베이스 프록시 사용자
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 포트(이 경우 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 인스턴스에 연결하고 시작합니다. 인스턴스 상태 및 세부정보가 표시됩니다.- Autonomous Database에 접속하기 위해 이전에 생성된 CMAN-TDM 접속 별칭 및 애플리케이션 사용자
example을 사용하여 SQL*Plus를 실행합니다.$ sqlplus example@exampledb_high_cman_tdmSQL 질의는 CMAN-TDM에서 Oracle Autonomous Database에 접속하는 데 사용하는 데이터베이스 프록시 사용자
TDM를 표시합니다. 이 질의는 Oracle Database에 직접 접속할 때 빈 값을 반환합니다.
이제 CMAN-TDM을 통해 Oracle Autonomous Database에 연결됩니다.