코딩스토리/클라우드 서버

오라클 무료 데이터베이스 설치 및 접속하기 / 오라클 ADW / Oracle Autonomous / DBWeaver

Tech&Fin 2022. 1. 19. 17:43
반응형

데이터베이스를 사용하면 실시간으로 받는 데이터를 저장하여 추후에 분석등에 사용할 수 있고 다양한 쿼리를 이용하여 원하는 조건을 더 빨리 가져올 수도 있는 등 여러가지 장점이 있는데요.

 

특히 Tech&Fin에서 진행중인 비트코인 자동매매 프로그램 중 웹소켓을 사용하여 받아오는 실시간 데이터는 DB에 저장하고 사용하면 여러모로 활용성이 높습니다.

 

데이터베이스의 종류에는 여러가지가 있지만 그 중에서 이번 시간에는 기업에서 가장 많이 사용하는 오라클 데이터베이스를 설치하고 접속하는 방법에 대해서 살펴 보려고 합니다.

 

 

목차 - 클릭하면 이동합니다.

     

    오라클 무료 DB 설치 및 접속하기

    오라클 Autonomous Database

    오라클 DB는 성능 및 안정성을 검증받아 기업에서 널리 사용되고 있는 데이터베이스입니다. 하지만 라이센스 및 유지보수 비용이 아주 높기 때문에 개인이나 규모가 작은 회사에서 사용하기에는 부담이 있는 것이 현실입니다.

     

    그런데 다소 제약이 있긴 하지만 오라클 클라우드 프리티어 서비스에 오라클 데이터베이스를 무료로 2개까지 만들어서 사용할 수 있습니다. 바로 오라클 Autonomous Database라는 건데요. 

     

    데이터 용량을 20GB까지 밖에 사용할 수 없고 일정 기간동안 트랜잭션이 없으면 DB가 자동으로 비활성화 되는 제약사항이 있지만 DB를 직접 설치하거나 유지보수할 필요없이 관리는 오라클에서 자동으로 해 주는 신청하고 접속해서 사용만 하는 아주 편리한 DB입니다.

     

    DB 설치 하기

    오라클 클라우드 프리티어 관리 페이지에 접속하여 ① Oracle Database ② Autonomous Database 를 클릭합니다.

     

    ① Create Autonomous Database를 클릭합니다. 저는 이미 생성한 DB가 하나 있어서 추가로 하나만 더 생성할 수 있지만  아무것도 생성하지 않았다면 총 2개까지 생성이 가능합니다.

     

    ① DB의 보여지는 이름을 정합니다.

    ② DB 이름을 정합니다. 실제 TNSNAMES.ORA를 사용하여 접속할 때 사용되는 이름입니다.

    ③ 워크로드 타입은 원하는 타입을 정하면 되는데 저는 대량의 데이터를 빠르게 쿼리하는 목적이기 때문에 Data Warehouse를 선택하겠습니다.

    ④ Shared Infrastructure를 선택합니다.

     

    ① Always Free를 선택합니다.

     

    기본 ID는 ADMIN으로 수정할 수 없으며 ① 비밀번호를 설정합니다. 두 번째는 보안 접속 관련인데요. 어디에서든 접속이 가능하도록 Secure access from everywhere를 선택하겠습니다. 보안을 강화하기 위해 허용된 IP에서만 접속을 하도록 하려면 두 번째 옵션을 선택하면 됩니다.

     

    ① License Included를 선택하고 ② Create Autonomous Databse를 클릭하면 됩니다.

     

    PROVISIONING 중인 화면이 노란색으로 표시되고 잠시 후에 녹색으로 변경되면 Autonomous Database가 할당 완료 됩니다.

     

    외부에서 접속할 때 월렛이라는 것을 사용할 건데요. 월렛을 다운로드 받기 위해 ① DB Connection을 클릭합니다.

     

    ① Download wallet를 클릭하여 월렛을 PC에 다운로드 받습니다.

     

    ① 웰렛의 비밀번호를 설정하고 ② Download 버튼을 클릭하여 다운로드 합니다.

     

    DB 접속하기

    먼저 DB에 접속하기 위한 클라이언트 툴을 다운로드 합니다. Tech&Fin에서는 무료 툴인 DBWeaver Community 버전을 사용하고 있으니 해당 프로그램을 다운로드 받아 설치하시면 됩니다.

     

    https://dbeaver.io/download/

    반응형
     

    Download | DBeaver Community

    Download Tested and verified for MS Windows, Linux and Mac OS X. Install: Windows installer – run installer executable. It will automatically upgrade version (if needed). MacOS DMG – just run it and drag-n-drop DBeaver into Applications. Debian package

    dbeaver.io

     

    오라클에 접속하기 위한 JDBC 드라이버를 아래 링크를 통해 다운로드 받습니다. 오라클 계정 로그인이 필요하므로 없다면 가입 후 다운로드 받습니다.

     

    https://www.oracle.com/database/technologies/appdev/jdbc-ucp-19c-downloads.html

     

    ojdbc10-full.tar.gz 파일을 받으면 됩니다.

     

    다운로드 받은 월렛과 JDBC드라이버 파일을 C드라이브 아래 원하는 폴더에 압축을 해제 합니다. 위의 예시에서는 C드라이브 아래 Oracle_JDBC 폴더를 만들어서 각 파일명대로 압축을 해제하였습니다.

     

    JDBC 드라이버가 있는 폴더에는 위와 같은 파일들이 존재하면 됩니다.

     

    월렛 폴더에는 위와 같은 파일이 있습니다. 여기서 DB 접속 정보를 가지고 있는 tnsnames.ora 파일을 메모장등을 이용하여 오픈합니다.

     

    파일 안에 있는 아까 데이터베이스 이름으로 정했던 것 뒤에 high, low, mideum이 붙은 총 세 개의 접속정보가 보입니다. high는 속도는 빠르지만 다중 사용자 접속에 불리하고 low는 속도는 느리지만 여러명이 접속하여 사용하는데 유리합니다. medium은 중간 정도의 타협을 하는 것이구요. 이 중에서 저희는 _high를 이용해서 접속을 시도해 보도록 하겠습니다.

     

    설치한 DBWeaver를 열고 메뉴에서 데이터베이스(D) -> 새 데이터베이스 연결을 누르고 ① Oracle을 선택 후 ② 다음 버튼을 클릭합니다.

     

    ① Edit Driver Settings를 클릭하여 먼저 다운로드 받은 OJDBC 드라이버를 설정해 주겠습니다.

     

    Libraries 탭에서 ① Add Folder를 클릭하여 아까 ②압축을 해제한 폴더를 선택하고 ③ Find Class를 클릭하여 ④ oracle.jdbc.OracleDriver를 선택한 후 ⑤ 확인 버튼을 클릭하여 완료합니다.

     

    빠져나온 화면에서 ① Custom 탭을 누르고 ② 아래와 같이 접속 정보를 입력합니다.

     

    jdbc:oracle:thin:@tradedatadb_high?TNS_ADMIN=C:\\Oracle_JDBC\\Wallet_TRADEDATADB

    여기서 tradedatadb_high는 데이터베이스 이름을 다르게 생성했다면 생성한 db이름으로 교체해 주시면 됩니다. 아까 tnsnames.ora에서 확인할 수 있습니다. 뒤에 월렛 경로도 다른 곳에 압축을 해제했다면 해당 폴더에 맞게 변경하면 됩니다. 이 때 윈도우 환경에서는 역슬래시 두번(\\)으로 경로를 적어야 인식이 되는 점을 유의 부탁 드립니다.

     

    ③ 설정한 비밀번호를 입력하고 ④ Test Connection을 눌러 접속 테스트를 진행합니다.

     

    문제가 없다면 ⑤ Connected가 나오고 접속 테스트가 정상적으로 완료 됩니다.

     

    이후 접속하여 SQL창을 하나열고 테스트로 테이블 스페이스 용량을 조회해 보았습니다. DATA라는 테이블스페이스가 우리가 사용할 공간인데 현재는 아주 작게 할당되었지만 데이터가 쌓이면서 20GB까지 계속해서 자동으로 증가하게 되니 이 부분을 참고하면서 모니터링 하시면 됩니다.

     

    select nvl(b.tablespace_name
         , nvl(a.tablespace_name, 'UNKOWN')) name
         , kbytes_alloc / 1024 / 1024 gbytes_allocated
         , (kbytes_alloc-nvl(kbytes_free,0)) / 1024 / 1024 gbytes_used
         , nvl(kbytes_free,0) / 1024 / 1024 gbytes_free
         , to_char(((kbytes_alloc-nvl(kbytes_free,0))/kbytes_alloc)*100, 'FM990.0') || '%' pct_used
    from (select sum(bytes)/1024 Kbytes_free
               , tablespace_name
          from sys.dba_free_space
          group by tablespace_name ) a
       , (select sum(bytes)/1024 Kbytes_alloc
               , sum(maxbytes)/1024 Kbytes_max
               , tablespace_name
          from sys.dba_data_files
          group by tablespace_name
          -----------
          union all
          -----------
          select sum(bytes)/1024 Kbytes_alloc
               , sum(maxbytes)/1024 Kbytes_max
               , tablespace_name
          from sys.dba_temp_files
          group by tablespace_name) b
    where a.tablespace_name (+) = b.tablespace_name;

    오라클 테이블 스페이스 용량 조회 쿼리를 참고삼아 올려 드립니다.

     

    마치며

    오라클 데이테베이스는 신뢰도가 매우 높고 성능이 뛰어나서 정말 좋은 DB이지만 비용이 가장 큰 문제 입니다. 실제로 웹소켓 데이터를 쌓아보니 20GB의 용량은 매우 적어서 1~2일 정도의 데이터밖에 보관할 수 없었습니다.

     

    속도나 설치 방법 그리과 관리 등 다른 부분은 상당히 만족스러웠으나 용량이 가장 큰 문제였고 주기적으로 테이블 데이터를 삭제한다고 해도 테이블스페이스를 반환하는 부분이 Autonomous Database에서는 지원되지 않았습니다.

     

    결론적으로 연습 또는 1일 미만의 데이터를 쌓고 이용하는데는 큰 문제가 없으나 주기적으로 데이터를 지워야 하는 불편함이 있고 장기 데이터를 보관할 수 없는 문제가 있어 추후 실제 데이터를 쌓는 DB는 오라클이 아닌 다른 DB를 사용하는 것이 더 합리적이라 판단 됩니다.

     

    그래도 오라클 데이터베이스를 사용하고 싶은 분또는 오라클에 익숙하신 분들은 한번쯤 시도해 보아도 좋을 것 같습니다. 그런 의미에서 차후 오라클 DB에 웹소켓 데이터를 입력하는 부분도 살펴 볼 수 있도록 하겠습니다.

     

    블로그를 구독하면 소식을 조금 더 빨리 받아보실 수 있습니다. 감사합니다.

    반응형