Inor

[Docker] 맥북에서 오라클 DB 사용하는 방법 (Docker + IntelliJ) 본문

Computer Engineering/Docker

[Docker] 맥북에서 오라클 DB 사용하는 방법 (Docker + IntelliJ)

Inor 2018. 1. 4. 21:55


 SQLD를 공부하기위해 Oracle을 사용하려다보니 OS X에서 Oracle을 정상적으로 사용할 수 없다는 사실을 알게됐습니다. OS X에서 오라클을 돌리는 방법이 매우 어렵고 주로 가상 머신을 사용한다고 인터넷에 나와있었습니다. 그러다 Docker를 이용하면 쉽게 Oracle을 사용할 수 있다는 사실을 알게됐고 한번 따라해보기로 했습니다. 커맨드라인 몇 줄 작성하니 설치가 완료됐고 덕분에 오라클을 사용할 수 있게 됐습니다. 이 글에서는 Docker를 이용해서 오라클을 설치하는 방법과 오라클을 실행 시키며 제가 마주친 이슈를 해결하는 과정을 작성하겠습니다. 분명 초보 개발자들 중에 저와 비슷한 문제를 겪고 계시는 분들이 있을수도 있으니까..



- Docker 설치 : https://www.docker.com/docker-mac


 일단 도커를 사용하기 위해서 위 URL로 접근해 도커를 설치합니다. 다른 애플리케이션과 마찬가지로 가상드라이버에서 설치하고 애플리케이션 폴더로 이동해주면 됩니다.




- 도커 컨테이너 설치 및 실행


아래의 명령어를 터미널에서 실행 시켜줍니다. 오라클 11g 이미지 중에서 가장 유명하고 많은 사람들이 사용하는 wnameless/oracle-xe-11g를 다운 받겠습니다.

docker pull wnameless/oracle-xe-11g


 그리고 다음 명령어를 실행 시켜줍니다. 설치된 컨테이너를 실행 시켜주는 명령어입니다.

docker run -d -p 59160:22 -p 59161:1521 wnameless/oracle-xe-11g


 -d 옵션은 백그라운드에서 컨테이너를 실행 시키기위한 옵션입니다. -p 옵션은 호스트의 포트를 외부에 노출 시키는 옵션 입니다. -p 59161:1521의 의미는 호스트의 포트(localhost:59161)을 오라클 도커 컨테이너의 포트(1521)과 연결 시키겠다는 의미입니다.




- 오라클 접근


 오라클 DB에 접근하기 위해서 클라이언트 프로그램을 사용해야 합니다. 올챙이나 기타 맥북용 오라클 클라이언트 프로그램을 사용해서 접근하면 됩니다. 저는 IntelliJ를 이용해서 오라클 DB에 접근하겠습니다. Comman + Shift + A 명령을 입력하고 Database를 검색하면 Database 탭이 열립니다. + 탭을 클릭해서 Data Source에서 오라클을 선택 합니다.



 오라클을 선택하면 아래와 같은 입력을 설정하는 창이 열립니다. 아래와 같이 입력하면 됩니다. 기존에 오라클 유저를 만든적이 없기 때문에 User/Password에 system/oracle을 입력해서 접속합니다. 오른쪽 상단의 Port는 오라클 포트(1521)와 연결된 호스트의 포트인 59161로 연결합니다.



 저는 여기서 유저와 패스워드를 입력하는 부분에서 조금 애 먹었습니다. 아래와 같은 에러를 만났습니다. mysql도 기본 유저/패스워드가 있듯이 오라클도 기본 유저/패스워드가 있나봅니다.




 연결을 완료하면 아래와 같은 화면이 나타나고 오라클을 사용할 수 있게 됩니다.





- 로케일 문제


 오라클을 사용하다보면 로케일 설정 때문에 에러를 발생 시키는 경우가 발생합니다. 맥에서 한국어를 기본 언어로 사용할 경우에 발생하는 문제 입니다. 간단하게 시스템 환경 설정의 언어 및 지역에서 기본 언어를 다른 언어로 변경 했다가 한국어로 되돌리면 해결됩니다. 아래 화면에서 왼쪽 탭(선호하는 언어)에서 설정을 변경 했다가 되돌리면 됩니다.





- 도커 종료시 데이터가 삭제되는 현상


 도커를 종료 했을때 도커를 이용해서 사용한 오라클의 데이터가 삭제되는 현상이 발생했습니다. 이 글의 출처에 있는 블로그 관리자님과 대화를 통해서 볼륨의 존재를 알게 됐고 해결책을 찾았습니다. 호스트의 디렉토리에 볼륨을 생성하고 그 볼륨에 데이터를 저장하는 방법입니다. 아래의 커맨드를 활용하시면 됩니다. 관련 이슈에대한 내용은 아래의 링크에서 확인 가능합니다. 


https://github.com/wnameless/docker-oracle-xe-11g/issues/64 


docker run --name oracle11g -d -p 59161:22 -p 59162:1521 -p 59163:8080 -v /oracle11g-data/:/u01/app/oracle/oradata/oracle11g-data/ -e ORACLE_ALLOW_REMOTE=true --restart=always wnameless/oracle-xe-11g



ps.

 IntelliJ의 경우에는 학생용 소프트웨어를 사용했습니다. 학생용 소프트웨어 등록 방법은 검색으로 쉽게 찾아보실 수 있습니다. 졸업생일 경우에는 학교 메일을 갖고 있으면 사용 가능합니다. 학교 메일을 이용해서 학생 인증을 하기 때문입니다. xxx@xxxx.ac.kr에서 ac.kr로 끝나는 메일이 있어야됩니다.



출처 : http://jojoldu.tistory.com/169

Comments