과거에 Windows 환경에서 Oracle 11g 실습을 했었는데, Mac을 사용하면서 똑같이 실습환경을 구축하고 공유해보려 한다.
1. Docker 설치하기
나는 Docker 가 설치되어 있어서 이 과정은 스킵하도록 한다.
docker docs 를 참고하면 된다.
https://docs.docker.com/desktop/install/mac-install/
2. Oracle Docker Image 내려받기
docker search oracle-xe-11g
stars 가 가장 많은 이미지는 oraceinanutshell/oracle-xe-11g 이다. 보통 stars가 가장 많은 이미지를 사용하면 된다.
wnameless/oracle-xe-11g-r2 를 다운받아주려 한다.
docker pull wnameless/oracle-xe-11g-r2
3. 도커 컨테이너 생성 및 실행하기
도커 이미지를 내려받았으므로, 이미지를 기반으로한 컨테이너를 생성하려 한다.
docker run -d --name oracle-xe-11g -p 1521:1521 wnameless/oracle-xe-11g-r2
방금 생성된 컨테이너를 확인해보자.
docker ps -a
-a 옵션을 추가해 준 이유는 모든 컨테이너를 보기 위해서다. -a 옵션이 없으면 실행중인 컨테이너만 보여준다.
이제 컨테이너를 실행해준다
docker start oracle-xe-11g
이제 실행해줬으므로 아래 명령어로도 확인되는 것을 볼 수 있다.
docker ps
4. 클라이언트로 오라클 DB 접속하기
나는 무료 DB 클라이언트인 DBeaver Community Edition을 이용하려 한다.
https://dbeaver.io/download/
위 링크에서 Community Edition을 설치한다.
설치가 완료되고 실행되면, 연결할 DB 클라이언트를 선택할 수 있다.
오라클을 선택했다면, 아래의 이미지처럼 폼을 채우고 OK 버튼을 클릭하면 도커 컨테이너의 오라클과 DBeaver 클라이언트가 연결 된다.
Database는 XE로, Username은 system, Password 는 oracle로 입력하면 접속 할 수 있다.
(여기서 localhost가 아닌 docker 설치 ip 를 입력해주면 된다)
필요한 드라이버를 설치할 수 있다.
연결이 되었다면, SQL편집기를 추가해서 여기서 쿼리를 작성할 수 있다.
쿼리를 실행해보니 잘 조회가 된다.
4. SCOTT 계정 생성하기
CREATE USER scott IDENTIFIED BY tiger;
GRANT CONNECT, resource, dba TO scott;
6. SQL 파일 생성하여 테이블 및 데이터 쿼리 작성하기
실습환경을 구축하는데 필요한 DDL, DML 쿼리가 담긴 파일을 구글 드라이브에 저장해두었다. 이 파일을 도커 컨테이너에서 wget 을 이용해서 가져오려 한다.
먼저 패키지 매니저인 apt-get 을 업데이트하고, wget을 설치해준다.
apt-get update
apt-get install wget
이제 wget을 이용해서 구글 드라이브의 공유링크를 이용해서 파일을 다운받을 것이다.
구글 드라이브 공유링크는 아래와 같다.
https://drive.google.com/uc?export=download&id=17PkqEUz1omSSsJ_cUYu9jMn45kFNQlhA
위의 링크에서 필요한 부분은 파일의 id 만 ㅍ 필요하다. id는 d/ 와 /view 사이의 문자열이 파일의 id에 해당한다.
위 id를
https://drive.google.com/uc?export=download&id=
에 조합하면 된다.
wget --no-check-certificate -O create_scott.sql 'https://drive.google.com/uc?export=download&id=17PkqEUz1omSSsJ_cUYu9jMn45kFNQlhA'
그럼 이제 잘 다운로드 되었는지 파일을 확인해보자.
7. SQL 파일로 한번에 insert하고, Commit 하기
위에서 작성한 SQL 파일 (create_scott.sql) 을 한 번에 커밋까지 쿼리를 실행하려한다.
도커 컨테이너에 bash 모드로 진입하고, SQL플러스를 실행한다.
docker exec -it oracle-xe-11g bash
sqlplus
로그인해서 오라클에 연결하면 된다. user-name : system, password : oracle 이다.
이제 전체 테이블을 조회해보면 실습에 필요한 테이블이 조회된다.
실습환경 구축 완료!