Oracle Cloud Database 생성 및 접속 - 오라클 클라우드 Autonomous Database - 프리티어 - Free Tier

Share

Last Updated on 4월 7, 2022 by Jade(정현호)

1. Autonomous Database

Autonomous Database 는 오라클 클라우드(Oracle Cloud) 의 Oracle Database 완전 관리형 클라우드 서비스(PaaS) 입니다. 



이런 PaaS 서비스인 완전관리형 데이터베이스를 사용하게 되면 데이터베이스의 생성(프로비저닝)이 편리해지며 튜닝 및 자동화, 그리고 가용성 ,백업 ,복구 등을 손쉬게 사용할 수 있는 장점이 있습니다. 또한 데이터베이스의 옵션이 EE(Enterprise Edition) 이며 여러 유용한 옵션이 기본 제공되거나 유형에 따라서 RAC 도 지원되고 있습니다.

최근 출시 된 ARM 기반의 M1 프로세스가 탑재된 M1 MacBook(맥북) 에서 학습이나 개발 진행 단계에서 필요한 오라클 DB의 설치에 대해서 네이티브(Native) 또는 Docker(도커) 컨테이너로도 오라클(Oracle) DB가 설치가 어려운 부분이 있다고 여러 커뮤니티나 채널에서 관련한 문의 글을 많이 보았습니다.

M1 맥북이라서 또는 노트북 사양에 의해서 또는 사무실 과 집 ,커피숍 등 여러곳에서 개발을 계속 하는 환경 등의 여러 가지 상황에서 이번 포스팅에서 다루는 클라우드의 서비스형(PaaS) 데이터베이스(Database) 를 사용해보는 것도 좋을 것 같습니다.

그리고 오라클 클라우드 Autonomous Database 는 아래와 같은 장점을 가지고 있다고 합니다.
     

1-1 기능적 장단점

자율 구동: 데이터베이스 프로비저닝, 튜닝 및 확장 자동화
고가용성 데이터베이스를 프로비저닝하고, 특정 워크로드를 위해 구성 및 튜닝하고, 필요한 경우 컴퓨팅 리소스를 확장하여 자동으로 수행합니다.

자율 보안: 데이터 보호 및 보안 자동화
오라클 자율운영 데이터베이스를 통해 중요하고 규제된 데이터를 자동으로 보호하고, 데이터베이스에 보안 취약성 패치를 적용하며, 무단 액세스를 방지합니다.

자율 복구: 장애 감지, 장애 조치 및 복구 자동화
시스템 오류 및 사용자 오류를 자동으로 감지 및 보호하고 데이터 손실이 없는 대기 데이터베이스 장애 시 조치를 제공합니다.
       

1-2 Database 종류

Autonomous Database Family

Autonomous Database 패밀리로 대표적으로 아래 2가지 유형으로 서비스가 되고 있습니다.



• Autonomous Data Warehouse(ADW) 는 단어 그 자체로 DW 업무, 분석, 데이터 레이크(Data Lake) 등의 업무 유형에 최적화된 데이터베이스 입니다.

• Autonomous Transaction Processing(ATP) 는 OTLP 또는 그외 워크로드를 처리 할 수 있는 일반 적인 유형의 데이터베이스 입니다.

• Autonomous JSON Database 는 위의 이미지 없는 없지만 최근에 추가된 데이터베이스로 JSON 기능 지원과 특화된 데이터 베이스 입니다.
    

1-3 프리티어

프리티어 지원 Database

이러한 완전 관리형 Oracle Database 인 Autonomous Database 는 프리티어 등급에서도 제공되고 있으며 제공 스펙은 아래와 같습니다.

- Autonomous Database 2개 까지 지원
- 프로세서 OCP 1개
- 스토리지 용량 각각 20GB 제공


2. Database 생성

Autonomous Database 생성을 진행하도록 하겠습니다. 데이터베이스를 생성하기 전에 구획 (Compartment) 생성과 VCN 생성을 진행하시는 편이 좋습니다.

관련해서는 아래 포스팅에서 구획(Compartment) 및 VCN 생성 부분 까지만 참고하시면 될것 같습니다.


포스팅은 구획 생성 및 VCN 생성 이후 부분 부터 기술되어 있습니다.


2-1 자율운영 데이터베이스 선택

메뉴 -> Oracle Database -> 자율운영 데이터베이스 로 이동 합니다.





2-2 데이터베이스 생성 시작

먼저 구획을 이전에 생성한 구획으로 변경을 합니다. 구획이 변경된 것을 확인 한 후 "자율운영 데이터베이스 생성" 을 클릭 합니다.




2-3 기본 정보 및 유형 선택

기본 정보인 표시 이름 과 데이터베이스 이름을 지정 해야 합니다. 
표시 이름은 클라우드에서 식별 하는 인스턴스의 이름이며 데이터베이스 이름은 접속을 위한 서비스 명 이라고 생각 하시면 될것 같습니다.

생성 후 확인 해보면 데이터베이스 이름인 SID 는 다른 이름으로 생성되어 있으며 입력하는 데이터베이스 이름은 접속하는 Connection String 에서 사용됩니다.

예시) 데이터베이스 이름을 orcl 로 설정 시
tnsnames 접속명 orcl_high
서비스명 : service_name=xxxx_orcl_high.adb.oraclecloud.com

작업 로드 유형 을 선택을 하면 되며 포스팅에서는 트랜잭션 처리 라고 기재되어 있는 ATP 를 선택하였습니다.




2-4 배치 유형 및 데이터베이스 구성

배치 유형을 선택하면 되며, 그 다음 데이터베이스 구성을 선택 합니다. 포스팅에서는 프리티어(항상 무료) 등급을 사용할 것 임으로 "항상 무료" 에 체크 하고 진행하였습니다.

항상 무료(프리티어)는 OCPU 1개, 스토리지 20GB 를 제공하고 있습니다.




2-5 관리자 정보 및 네트워크 액세스 선택

먼저 관리자 비밀번호를 입력해야 합니다. 관리자 이름은 ADMIN 으로 지정(고정) 되어 있으며 수정이 불가능 합니다.

그 다음 네트워크 액세스를 선택 해야 합니다.

모든 곳에서 액세스 또는 내부 OCI VCN 내에서만 접속 가능한 두가지 유형으로 선택 가능 하지만 아래 기재된 내용과 같이 프리티어(항상 무료) 에서는 선택이 불가능  합니다
(프리티어에서는 모든 곳에서 보안 액세스만 가능, 변경 불가)




2-6 관리자 정보 및 네트워크 액세스 선택

라이센스 유형 선택 후 아래의 "자율운영 데이터베이스 생성" 을 클릭 하여 생성을 완료 합니다.



Note

Autonomous Database 에서는 Create Tablespace 는 불가 합니다. Autonomous Database 생성시에 기본적으로 생성된 테이블스페이스 DATA 를 이용하시면 됩니다.

       

3. 데이터베이스 접속

생성된 데이터 베이스 접속하기 위해서는 웹 콘솔에서 전자지갑을 다운 받아서 접속을 할 수 있습니다.
     

3-1 전자 지갑 다운로드

3-1-1 DB 접속 선택

웹 콘솔로 접속하여 인스턴스 정보에서 상단에 있는 "DB 접속" 을 클릭 합니다.





3-1-2 전자 지갑 다운로드

전자 지갑 유형은 "인스턴스 전자 지갑" 을 선택 후 아래 전자 지갑 다운로드 를 클릭 합니다.





3-1-3 비밀번호 설정

전자 비밀번호를 입력 후 하단의 다운로드를 클릭 합니다.





[참고] 프리티어 등급 Autonomous 데이터베이스 Inactive 정책

프리티어 등급 Autonomous 데이터베이스를 7일간 사용하지 않았을 경우 자동 적으로 인스턴스는 정지(stop) 되게 되고 데이터는 보존 됩니다. 다시 사용을 원할 때는 Start 를 클릭 해서 인스턴스를 시작하여 사용할 수 있습니다.

자동 또는 수동으로 정지(stop) 된 후 비활성화 상태로 90일 이 경과 하면 데이터베이스가 회수되어 데이터가 영구적으로 삭제 될 수 있습니다.

Reference
Inactivity Monitoring and Database Stoppage 참조

          

3-2 SQL Developer 를 통해 접속

3-2-1 SQL Developer 다운로드

먼저 오라클 접속 무료 툴인 SQL Developer 를 통해 접속을 하겠습니다. SQL Developer 는 아래 링크에서 다운로드 받으시면 됩니다.


별도의 JDK 가 설치 되어 있지 않다면 JDK가 포함된 버전을 다운로드 받으시면 됩니다.





3-2-2 tns 접속자 확인

먼저 다운로드 받은 전자지갑(Wallet) 을 압축을 해제 합니다. 그럼 아래와 같은 파일이 있습니다. 그 중에서 tnsnames.ora 파일을 확인해 보겠습니다.




3-2-3 tns 접속자 확인

아래와 같은 tns alias 정보 및 접속 프로토콜 ,접속 주소 등이 설정된 내역에 대해서 확인 할 수 있습니다.




3-2-4 Manage Concurrency

위에서 확인한 접속 스트링 별로 DB 에서 쿼리를 수행하는 동시성이나 성능 등이 달라지게 됩니다.

• high 는 최고의 성능, 가장 빠른 응답 속도 및 속도로 수행되지만 실행할 수 있는 동시 SQL문 수가 단 3개 뿐입니다.

• medium 은 high 보다 많은 동시 SQL 을 수행할 수 있으며 그 대신 high 에 비해서는 낮은 수준의 성능을 제공되게 됩니다.

• low 은 가장 많은 동시 SQL 을 지원하게 되며 각 SQL 문 마다 최소로 작은 수준의 리소스를 제공 합니다.


더 자세한 사항은 아래 문서를 참조하시면 됩니다.
Manage Concurrency .. Autonomous [Link]


3-2-5 SQL Developer 실행

다운로드 받은 SQL Developer 를 압축을 해제 하고 아래와 같이 SQL Developer 를 실행 합니다.





3-2-6 접속 유형 


실행이 완료 되었다면 "+ 새로 만들기" 버튼을 클릭 후에 아래와 같이 접속 유형을 변경 합니다. 접속 유형은 "클라우드 전자 지갑" 으로 선택 하면 됩니다.





3-2-7 전자 지갑 선택

아래 이미지와 같이 찾아보기 를 클릭 합니다.




다운로드 받은 압축된 전자지갑 파일을 선택 후 하단의 열기 를 클릭 합니다.





3-2-8 TNS 접속 스트링 설정

전자 지갑을 선택하였다면 서비스, TNS 접속자를 선택 합니다. 포스팅에서는 high 를 선택 하였습니다. 해당 부분은 위에서 내용이 설명되어 있습니다.





3-2-9 DB 접속 시도

DB 접속을 위한 몇가지 설정만 하면 됩니다. 

Name 은 툴에서 식별 가능한 정보 입니다
사용자 정보 : admin 계정의 비밀번호를 입력 합니다.
서비스 에서 사용할 tns connection alias 를 선택 합니다.

입력을 다하였다면 테스트 버튼을 클릭하여 접속 가능한지 테스트를 진행 합니다. 테스트가 완료 되었다면 실제 접속 을 시도 합니다.





3-2-10 DB 접속 및 조회

접속이 완료 되었다면 아래와 같이 쿼리를 수행시켜서 정상적으로 조회 되는지 확인 해보시면 될 것 같습니다.


    

3-3 DBeaver 를 통해 접속

SQL Developer 외 다른 SQL Tool 도 접속 방법을 확인해보겠습니다. 포스팅에서는 DBeaver Community Edition(CE) 를 사용하였 접속 하였습니다. 다운로드 및 설치는 아래 링크에서 참조하시면 됩니다.



3-2-1 Create Database Connection


DBeaver 를 실행 후 + 접속 정보 생성 -> Oracle 를 선택 합니다.




3-2-2 OJDBC 다운로드 및 접속 방법 확인


아래 링크의 경로에서는 JDBC 를 통해서 Autonomous Database 에 접속하는 방법에 대해 기술되어 있습니다.
oracle.com/java-connectivity-to-atp.html [LInk]

사이트에서는 여러 내용이 있으며 접속하기 위해서 2가지를 먼저 확인 및 다운로드를 진행하면 됩니다.

먼저 JDBC Driver 를 다운로드 받아야 합니다. 포스팅에서는 19.3 JDBC - ojdbc10-full.tar.gz 를 선택하여 다운로드 받았습니다.

다운로드 받은 odbc 는 압축을 해제하시면 됩니다.

그리고 아래에 있는 jdbc 접속 string 입력 예시를 확인 해두도록 합니다.




Example

DB_URL="jdbc:oracle:thin:@dbname_medium?TNS_ADMIN=/users/test/wallet_dbname/"

위의 내용은 예제로 db_home_medium 은 다운로드 받은 tnsnames.ora 파일을 확인 하시면 됩니다.

아래 이미지는 위에서 한번 설명한 포스팅 시스템의 다운로드 받은 tnsnames.ora 파일 입니다.



3-2-3 접속 정보 입력 및 Driver 셋팅

먼저 Basic  | TNS  | Custom  항목이 있으며 그 중 Custom 으로 선택을 변경 하고 나서 위에서 참조한 접속 문구열을 입력 합니다. 디렉토리 경로는 전자지갑(Wallet) 이 있는 디렉토리 위치를 기재 하면 됩니다. 

그 다음 admin 그리고 패스워드를 입력 후 "Edit Driver Settings" 를 클릭 합니다.




3-2-4 기존 드라이버 삭제

Libraries 탭으로 이동 후 리스트에 보이는 기존의 드라이버를 모두 삭제를 진행 합니다. 삭제하여도 하단의 "Reset to Defaults" 를 클릭하면 원복이 가능 합니다.

모두 삭제 하였다면 Add Folder 를 클릭 합니다.




3-2-5 ojdbc 선택

다운로드 받은 ojdbc(압축을 해제한 디렉토리) 디렉토리를 선택 후 open 을 클릭 합니다.




기존 드라이버 삭제 후 신규 ojdbc 를 등록 하였다면 아래와 같이 확인될 것이며 하단의 확인 을 클릭 합니다.




3-2-6 데이터베이스 접속

접속 정보 입력 화면에서 하단의 "Test Connection" 을 클릭 합니다 설정이 정상적으로 완료 되었다면 아래 이미지와 같이 접속 정보를 확인 되게 됩니다. 확인 되었다면 아래 완료 버튼을 클릭 합니다.




접속이 되었다면 이전과 동일한 쿼리를 수행하여 정보가 출력 되는지 확인을 진행합니다.


       

3-4 Java 에서 jdbc 를 통해 접속

이번에는 DB Client Tool 이 아닌 Java 소스에서 JDBC 를 설정하여 접속을 시도 해보겠습니다.


3-4-1 DataSourceSample.java 다운로드

SQL Tool 이 아닌 Java 에서 접속하는 부분을 확인해 보도록 하겠습니다. 위에서 ojdbc 드라이버를 다운 받았던 사이트를 다시 참조합니다.



사이트 에서 아래 이미지와 같이 5번 항목에서 "DataSourceSample.java" 링크를 클릭 합니다.




GitHub 사이트로 링크가 오픈 되며, 페이지에서 Raw 버튼에서 오른쪽 마우스 클릭 후 "링크를 다른 이름으로 저장" 을 선택하여 java 파일을 다운로드 받습니다.




3-4-2 Java 파일 수정

파일을 다운로드 받았다면 메모장 등의 편집기로 파일을 오픈 합니다. 그리고 몇가지를 수정하도록 하겠습니다

1) 접속 정보 및 계정 정보 수정

// The recommended format of a connection URL is the long format with the
// connection descriptor.
// final static String DB_URL= "jdbc:oracle:thin:@myhost:1521/myorcldbservicename"; <-- // 주석처리를 합니다.
// For ATP and ADW - use the TNS Alias name along with the TNS_ADMIN when using 18.3 JDBC driver
// final static String DB_URL="jdbc:oracle:thin:@wallet_dbname?TNS_ADMIN=/Users/test/wallet_dbname";
// In case of windows, use the following URL
// 아래 DB_URL 의 주석을 해제 후 이전의 DBeaver 와 동일하게 접속 스트링을 입력 합니다.
final static String DB_URL="jdbc:oracle:thin:@orcl_medium?TNS_ADMIN=/Users/Downloads/Wallet_orcl/";
final static String DB_USER = "admin";
final static String DB_PASSWORD = "패스워드입력";



2) 접속 후 실행 쿼리 수정

//// 변경 전
  .executeQuery("select first_name, last_name from employees")) {
System.out.println("FIRST_NAME" + "  " + "LAST_NAME");
System.out.println("---------------------");
while (resultSet.next())
  System.out.println(resultSet.getString(1) + " "
      + resultSet.getString(2) + " ");  



//// 변경 후
  .executeQuery("SELECT instance_name, version, edition, database_type FROM v$instance")) {
System.out.println("instance_name" + "  " + "version" + "  " + "edition" + "  " + "database_type");
System.out.println("---------------------");
while (resultSet.next())
  System.out.println(resultSet.getString(1) + " "
      + resultSet.getString(2) + " "
      + resultSet.getString(3) + " "
      + resultSet.getString(4) + " "
      );      



3) CLASSPATH 환경 변수 지정

터미널에서 CLASSPATH 를 수정하도록 하겠습니다 CLASSPATH 에는 java 소스가 있는 디렉토리 및 이전에 다운로드 받은 ojdbc10.jar 파일이 있는 경로+파일명 2개를 설정 하면 됩니다.

export CLASSPATH=/Users/Downloads/DataSourceSample:/Users/Downloads/ojdbc10-full/ojdbc10.jar



4) 컴파일 및 실행

다운로드 받은 java 파일을 수정하였다면 javac 를 통해 컴파일 하고 java 를 통해 실행하면 됩니다. CLASSPATH 와 Java 소스가 정상적으로 수정이 되었다면 아래처럼 접속 후 쿼리 수행까지 정상적으로 수행되는 걸 확인 할 수 있습니다.

~]$ javac DataSourceSample.java
~]$ java DataSourceSample

Driver Name: Oracle JDBC driver
Driver Version: 19.3.0.0.0
Default Row Prefetch Value is: 20
Database Username is: ADMIN

instance_name  version  edition  database_type
---------------------
feyk1pod1 19.0.0.0.0 EE RAC



추가로 자바 스프링(Java Spring) 또는 스프링 부트에서는 yaml 파일에 아래와 같은 형태로 작성하면 됩니다.

spring:
  datasource:
    driver-class-name: oracle.jdbc.OracleDriver
    url: jdbc:oracle:thin:@orcl_high?TNS_ADMIN=..경로/resources/Wallet_orcl
    username: username
    password: password

orcl_high 는 tnsnames.ora 파일에서 tns alias 를 확인 하시면 되며, 배포시에 포함될 수 있도록 resources 경로 아래에 파일을 위치 시키면 되겠습니다.


여기 까지 오라클 클라우드의 완전관리형 Oracle 데이터베이스 서비스인 Autonomous Database 의 생성 및 접속에 대해서 확인 해보았으며 추가적인 내용은 다시 업데이트 하도록 하겠습니다.
       

4. Reference

Reference Link
 • java-connectivity-to-atp.html
 • Manage Concurrency .. Autonomous
 • stackoverflow.com


관련된 다른 글 

 

 

 

 




26
0
글에 대한 당신의 생각을 기다립니다. 댓글 의견 주세요!x