[Docker] Oracle DB(Oracle 12c) 구성하기

Preview

http://1004lucifer.blogspot.com/2019/11/docker-oracle-12c-oracle.html

 

[Docker] Oracle 12c 구성 및 사용하기 (Oracle 공식 배포버전)

============================== 2019.11.13 추가 본 글은 작업이 가능한 오라클을 구성(설치) 하는 개념이며 프로젝트의 오라클 개발DB와 동일한 환경을 구성하기 위해서는 본 글을 훓어보고 아래의 링크의

1004lucifer.blogspot.com

위 포스트의 글을 참조하고 따라하며 구성하였고 트러블 슈팅 과정을 추가하였다.

Image Checkout

Docker Hub에서 공식 이미지를 체크아웃 한다.

https://hub.docker.com/_/oracle-database-enterprise-edition?tab=resources

 

Oracle Database Enterprise Edition - Docker Hub

 

hub.docker.com

Dockerhub에서 이미지 체크아웃

Proceed to Checkout 버튼을 누르면 간단한 개인정보 입력 후 docker image로 받을 수 있다.

Docker에 구성하기

  1. image pull
  2. sudo docker pull store/oracle/database-enterprise:12.2.0.1-slim
  3. 이미지 확인 docker images

3. 이미지를 컨테이너로 구동
docker run -dit —name local\_db -p 1521:1521 store/oracle/database-enterprise:12.2.0.1-slim

--name 옵션을 부여하면 다음 실행(start) 때 이름을 이용해 실행할 수 있다.

4. Docker 컨테이너 구동 확인
docker logs -f local\_db

Status 가 Up 이므로 컨테이너가 구동중이다

5. 컨테이너 로그 확인
docker logs -f local\_db

로그에서 Done! The database is ready for use. 확인하기

6. Oracle 접속 계정 생성

docker exec -it local\_db bash -c "source /home/oracle/.bashrc; sqlplus sys/Oradoc\_db1@ORCLCDB as sysdba"

docker exec
도커 외부에서 컨테이너로 명령어를 전달하여 컨테이너에서 실행되도록 한다.
컨테이너의 쉘을 직접 열지 않고 명령어를 전달할 수 있다.

7. Oracle 12c에서 사용자 생성시 기존과 같은 방법으로 추가하기 위한 설정
SQL> alter session set "\_ORACLE\_SCRIPT"=true;

8. 사용자 생성(gom / 1234)

SQL > create user gom identified by 1234;

9. 권한 할당

SQL > grant connect, resource, dba to gom;

7~9 과정

위 단계까지 진행하면 기본 설치 및 설정은 완료한 것이다.

하지만 한글 인코딩, Timezone 문제를 해결해야 외부에서 sql로 접속할 수 있다. 추가설정을 진행한다.

추가 설정(옵션이지만 필수)

  1. 오라클 설정 파일 확인
    docker exec -it local\_db bash -c "cat /home/oracle/.bashrc"
  2. Timezone 변경
    docker exec -it local\_db bash -c "echo \\"export TZ='Asia/Seoul'\\" >> /home/oracle/.bashrc"
  3. sqlplus 접속
    docker exec -it local\_db bash -c "source /home/oracle/.bashrc; sqlplus sys/Oradoc\_db1@ORCLCDB as sysdba"
  4. language utf-8 적용
    SQL > update sys.props$ set value$='KOREAN\_KOREA.UTF8' where name='NLS\_LANGUAGE';
  5. charset utf-8 적용
    SQL > update sys.props$ set value$='UTF8' where name='NLS\_CHARACTERSET';
  6. nchar charset utf-8 적용
    SQL > update sys.props$ set value$='UTF8' where name='NLS\_NCHAR\_CHARACTERSET';
  7. 커밋
    SQL > commit;
  8. 재부팅
    SQL > shutdown immediate;
    SQL > conn / as sysdba
    SQL > startup;

연결 확인

Host(OSX)에서 VM에서 동작중인 Docker의 Oracle 12c DB에 연결한다.

Host(OSX)1521/tcp -> VM(Ubuntu)1521/tcp -> Docker(Oralce12c)1521/tcp

DB연결 도구로는 Oracle SQL Developer를 사용하였다.

연결설정 및 성공(좌측 하단 Success)
한글 인코딩 처리 확인

Review

도커로 컨테이너를 실행하고 SQL 계정을 설정하고, 인코딩 설정을 하는 모든 일련의 과정을 한번에 가능하도록 DockerFile을 준비할 수도 있다.

하지만 도커의 실행원리를 익히고 명령어를 익히는 데에는 직접 세팅해 보는 것이 가장 좋은 방법이다.

이제 웹서버를 도커로 구성하고 DB와 연결해볼 예정이다.

 

----2021.04.13. 수정

Dockerfile과 Dockercompose로 구성한 포스트를 추가하였다.

gomguk.tistory.com/79

 

[Docker] Tomcat Oracle 12c 구성하기 2

gomguk.tistory.com/69 이전 게시글에서 생성한 컨테이너(tomcat, oracle 12c)를 docker compose를 이용하여 한번에 관리하도록 구성한다. 1. Tomcat Dockerfile Docker Hub의 Tomcat 공식 이미지를 그대로 사용하..

gomguk.tistory.com

 

반응형