알림
|

[삽질] Docker-compose (with FREE 오라클) 설치

페이지 정보

작성자 no_profile x파리도새다 61.♡.120.4
작성일 2024.06.25 02:36
분류 서비스·SW
563 조회
1 댓글
3 추천
글쓰기 분류

본문

Database 쓸일이 있어서 뭘 어떻게 해야 할까. 고민하다가 일전에 docker도 설치 했겠다. 

그럼 뭐 간단히 오라클 올려서 쓰면 되겠다 싶어서 이렇게 사용기 올립니다. 

그런데 왜 Docker가 아닌 Docker-compose를 사용하는가?? 

역시 이런건 선지자 께서 잘 설명해 두신 내용들이 많지요 

https://velog.io/@jewon119/TIL112.-Docker-Docker-compose를-쓰는-이유

--------------------------------------------------------------------------------

일단 docker-compose 부터 설치 해야 겠지요. 

# 일단 최신 버전이 어떤건지 확인 부터 하면 v2.28.1​ 이네요.

https://github.com/docker/compose/releases

#자 이제 최신 버전을 알았으니 설치 하면 되겠지요. 

sudo curl -L "https://github.com/docker/compose/releases/download/2.28.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

# 실행권한 설정

sudo chmod +x /usr/local/bin/docker-compose

# 잘 설치 됐는지 확인을 

docker-compose --version


docker-compose로 컨터이너 구동을 하기 위해서는 

도커 컴포즈는 컨테이너의 설정이 정의된 YAML 파일을 읽어 도커 엔진을 통해 컨테이너를 생성하기 때문에, 가장 먼저 YAML 파일을 작성합니다.

이 설정 파일만 잘 만들면 두고두고 잘 써먹습니다. 뭐 이게 핵심이라고 할수 있죠. 

제가 작성한 파일 docker-compose.yaml 파일의 내용은 다음과 같습니다. 

# docker-compose.yaml

services:
  oradb:
​    container_name: "orafree"
    ports:
      - 1521:1521
    volumes:
       - ./oradata:/home/lio/oracle/oradata/FREE
    environment:
      - ORACLE_SID=FREE
      - ORACLE_ROOT_PASSWORD=C##lio
restart: always

간단하게 설명을 하자면 띄어 쓰기가 2칸입니다. 

container_name 본인이 작명센스 들어 갑니다. 

image는 오라클에서 무료로 제공하는 개발 버전입니다. 아마도 제한이 있을건데 db volumes 가 4기가 못넘게 제한이 있을 겁니다. 뭐 개인이 쓰는데 4기가 넘을 일이 있을까 싶네요. 

volumes: 혹시나 컨테이너를 지우고 다시 설치하더라도 자료는 컨테이너 내부가 아니라 외부에 두어 자료를 살릴수 있게 

경로를 설정하는 것이라고 하는데 무료버전이라 그런가 잘 안되네요. 

environment: 오라클 설치후 db접근할때 사용하는 sid, root 비밀번호를 설정 하는 겁니다. 

이렇게 해서 오라클 설치를 위한 docker-compose.yaml 작성이 끝났습니다. 


이제 docker-compose를 구동하여 docker 이미지도 받고 구동도 합니다. 

실행명령은 다음과 같습디니다. docker-compose.yaml이 있는 곳에 가셔서  

docker-compose 실행 : docker-compose up

docker-compose 상태 확인 :  docker-compose ps -a

docker-compose 종료 :  docker-compose down

이제 오라클 docker설치가 끝났습니다. 참 쉽죠.. 

이제 오라클에 연결해서 사용하기 위해서는 시스템 계정이 아닌 user 계정을 생성해야 합니다. 

이젠 생성한 오라클 컨테이너로 들어가 봅시다. 

명령어 : docker exec -it orafree /bin/bash


자 이제 orafree 컨테이너에 있는 오라클 에 접속을 해서 user를 생성 합니다.  

명령어 : sqlplus /nolog

그럼 sql*plus: Release 정보가 나오고 명령 프롬프트가 SQL> 이런식으로 변경 됩니다. 

명령어ㅣ conn sys as sysdba

enter password: C##lio (docker-compose.yaml에 정의한 root password 를 입력합니다. 

여기서 connected 됐다는 결과를 받고  user를 생성합니다. 

create user C##ulio IDENTIFIED BY C##ulio
GRANT CONNECT, resource to C##ulio

여기서 C## 은 무료버전 사용시 앞에 붙여야 한다고 하네요. 뭐 이거 깨버리는 방법도 있는데 전 그냥 

오라클이 시태는 대로 할렵니다.  

#사용자 table space 사용
ALTER USER C##ulio DEFAULT TABLESPACE USERS QUOTA UNLIMITED ON USERS

여기서 오라클 db의 구동은 sql> startup

자 이렇게 잘 유저도 만들고 사용자 테이블도 만들었으면 exit로 빠져 나옵니다. 

오라클이 잘 구동되고 있는지 리스너를 한번 확인 할 필요가 있겠지요. 

lsnrctl status로 확인합니다.  


이제 오라클 잘 돌아가는 것도 확인 했고 사용자도 만들었으니. 접속해서 잘 사용하면 되겠지요. ㅎㅎ

db에 접속하는 전용툴이 필요한데 무료버전으로 dbeaver를 주료 사용합니다. 

https://dbeaver.io/download/

세상의 모든 db는 다 접속 가능하다고 할수 있습니다. 

전 vs code-server로 접속하여 사용할것이라 다음과 같은 확장툴을 설치 했습니다. 

 https://open-vsx.org/extension/Oracle/oracledevtools

설정은 아주 간단하죠 service name: FREE, username, password 만 넣으시면 끝입니다. 

dbeaver도 설정은 비슷합니다. database host name에 아이피만 들어어면 되겠지요 ㅎㅎ

시작이 반이라고 엔터프라이즈 RDB, 서버 CUP당 억단위 라이센스비를 청구(public service)하는 오라클사

db를 사용하는 전문가가 된겁니다.  

"어그로"로 몇만건 들어가면 버벅이는 엑셀 이런거 말고 백만건은 껌이지 너무 빨라서 보이지도 않네 라고 할수 있는 거죠..

---------------------------------------------------------------------------

ps

요즘은 오라클 사용하는 곳을 찾기 힘들죠 무료db들, mariaDB, postgreSQL, sqlite 등을 많이 사용 하더라구요. 

클라우드 시대로 넘어가면서 과거만큼 db의 비중도 많이 줄었구요.

전 주로 오라클을 많이 사용했었기에 다른 db보다 편해서 사용하는 겁니다. 

설치도 다른 db에 비해 설치도 복잡하고 다른 db는 더 쉽습니다. 자료도 많고 

docker가 쓸만해 지면서 오라클 설치도 이렇게나 쉬워졌네요. 



댓글 1 / 1 페이지

족발차기님의 댓글

작성자 족발차기 (121.♡.137.246)
작성일 06.25 15:24
오 오라클도 도커가 가능하군요. 글 잘봤습니다!
글쓰기 분류
전체 검색