맥(MacOS)에서 오라클(11g) 실습환경 구축하기

처음 국비교육 받을때 오라클을 사용하기 위해서 도커 컨테이너 사용법을 익혔는데, 그 때 다른 윈도우 컴퓨터 환경의 친구들과 달리 실습환경인 scott 계정이 없어서 난감했던 기억이 있다.

그 때 결국 학원 다른 친구들과 똑같은 환경(Windows)에서 실습을 따라했던 기억이 있는데, 맥에서도 똑같이 할 수 있는 환경을 만드는법을 공유하기 위해 작성해본다. 절차는 아래와 같다.

맥에서 실습 환경 구축하기라고 이름 짓긴 했지만, 사실 윈도우에서도 똑같이 할 수 있다.

  1. Docker 설치하기
  2. 오라클 도커 이미지 내려받기
  3. 도커 컨테이너 생성 및 실행하기
  4. 클라이언트로 오라클 DB 접속하기
  5. SCOTT 계정 생성하기
  6. SQL 파일 생성하여 테이블 및 데이터 쿼리 작성하기
  7. SQL 파일로 한번에 insert하고, commit하기

1. Docker 설치하기

도커 공식 웹 사이트에서 도커를 설치한다.

출처 : Docker Docs


2. 오라클 도커 이미지 내려받기

11g 버전의 오라클 환경을 구축하려고 한다.

1
$ docker search oracle-xe-11g

stars가 가장 많은 이미지는 oracleinanutshell/oracle-xe-11g이다. 보통 stars가 가장 많은 이미지를 사용해도 될텐데 필자는 wnameless/oracle-xe-11g-r2 를 내려받았다.

1
$ docker pull wnameless/oracle-xe-11g-r2

3. 도커 컨테이너 생성 및 실행하기

도커 이미지를 내려받았으므로, 이미지를 기반으로 컨테이너를 생성할 차례이다.

1
$ docker run -d --name oracle-xe-11g -p 1521:1521 [oracle-image-name]

--name은 컨테이너 이름을 지정할 때 사용하는 명령어이다.

아래 명령어를 입력하면 방금 생성된 컨테이너를 확인할 수 있다.

1
$ docker ps -a

-a 옵션을 추가하면 모든 컨테이너 목록을 보여주며, -a 옵션이 없으면 실행중인 컨테이너만 보여준다.

이제 컨테이너를 실행해준다.

1
$ docker start oracle-xe-11g


4. 클라이언트로 오라클 DB 접속하기

인텔리제이 유료 버전(Ultimate)에서는 RDBMS를 지원하기 때문에 IDE에서 바로 사용할 수 있다.

아래 동욱님 블로그에서 사용 방법을 알 수 있다.

필자는 무료 DB 클라이언트인 DBeaver Community Edition을 이용했다.

링크에서 Community Edition을 설치한다.

설치가 끝나고 실행하면, 아래의 이미지처럼 연결할 DB 클라이언트를 선택할 수 있다.

오라클을 선택했다면, 아래의 이미지처럼 폼을 채우고 OK 버튼을 클릭하면 도커 컨테이너의 오라클과 DBeaver 클라이언트가 연결이 된다.

Database는 XE로, Username은 system, Password는 oracle로 입력하면 접속할 수 있다.

필요한 드라이버를 설치할 수도 있다.

연결이 되었다면, SQL script를 추가해서 여기서 쿼리를 작성할 수 있다.

쿼리를 실행해보니 잘 조회가 된다. 아래의 결과는 이미 실습환경이 셋팅되었기 때문에 조회가 되는 것이다.


5. SCOTT 계정 생성하기

1
2
CREATE USER scott identified by tiger;
GRANT CONNECT, resource, dba TO scott;


6. SQL 파일 생성하여 테이블 및 데이터 쿼리 작성하기

실습환경을 구축하는데 필요한 DDL, DML 쿼리가 담긴 파일을 구글 드라이브에 저장해두었다. 이 파일을 도커 컨테이너에서 wget을 이용해서 가져올 것이다.

먼저 패키지 매니저인 apt-get을 업데이트하고, wget을 설치해준다.

1
2
$ apt-get update
$ apt-get install wget

이제 wget을 이용해서 구글 드라이브의 공유링크를 이용해서 파일을 다운받을 것이다.

구글 드라이브 공유링크는 아래와 같다.

https://drive.google.com/file/d/1KL0ssoVJVlLslu3kQvdbbH4jAGHw5jZv/view?usp=sharing

위의 링크에서 필요한 부분은 파일의 id만 필요하다. id는 d//view 사이의 문자열이 파일의 id에 해당한다.

이걸 https://drive.google.com/uc?export=download&id=에 조합하면 된다.

1
$ $ wget --no-check-certificate -O demobld.sql 'https://drive.google.com/uc?export=download&id=1KL0ssoVJVlLslu3kQvdbbH4jAGHw5jZv'

그리고 잘 다운로드 되었는지 파일을 확인해보자.

1
$ cat demobld.sql

사실 구글 드라이브 링크를 통해 파일을 다운받고, 파일의 쿼리를 클립보드에 저장해서 도커 컨테이너 내부에선 Vim 에디터에서 붙여넣는 방식으로 파일을 생성할 수도 있었으나 wget을 사용하는 경험을 위해 위의 방법을 사용했다.


7. SQL 파일로 한번에 insert하고, commit하기

위에서 작성한 SQL 파일(demobld.sql)을 한 번에 커밋까지 쿼리를 실행할 차례이다.

도커 컨테이너에 bash 모드로 진입하고, SQL플러스를 실행한다.

1
2
$ docker exec -it oracle-xe-11g bash
$ sqlplus

로그인까지 해서 오라클에 연결되었다면, 이제 컨테이너 내부에 있는 파일속 쿼리를 한 번에 실행할 차례이다.

1
$ START demobld.sql

이제 전체 테이블을 조회해보면 실습에 필요한 테이블이 조회될 것이다. 이제 실습환경이 구축되었다!