Oracle 설치
오라클은 공식적으로 맥을 지원하지 않는다. 그러므로 도커를 이용하여 오라클 데이터베이스를 사용할 수 있도록 설치해야 한다.
To do
•
Oracle XE 설치
•
SQL Developer와 연결하여 Oracle XE 사용
•
HR 샘플 스키마 사용
Oracle XE 설치
Oracle XE (Oracle Database Express Edition)란 오라클 데이터베이스의 기능을 무료로 사용할 수 있도록 제공하는 에디션이다. 공식 홈페이지에 접속하면 간편한 다운로드, 완전한 기능, 손쉬운 사용이라는 문구로 XE를 자랑하고 있다.
하지만 다운로드 페이지에 접속한 MacOS 사용자에게는 오라클을 다운로드 할 수 있는 자격이 없다.
그렇기 때문에 도커 엔진을 이용하여 Oracle XE가 설치된 컨테이너를 만들고, 컨테이너 내부에서 오라클 데이터베이스를 사용할 수 있도록 해줄 것이다.
Colima
도커 이미지로 컨테이너를 생성하기 전에 필요한 작업이 있다. Oracle XE가 설치된 컨테이너는 x86_64 아키텍처를 요구한다. 그렇기 때문에 사용하는 맥북의 CPU 아키텍처를 확인해야 한다.
# 터미널에서 CPU 아키텍처를 확인하는 명령어
uname -m
Shell
복사
내가 사용하는 맥북은 M 시리즈 M2 pro로 arm64 아키텍처를 쓰는 모델이다. 따라서 지금 상태로는 컨테이너를 실행할 수 없기 때문에 Colima로 x86_64 가상 머신을 생성하여 그 위에 컨테이너를 띄울 것이다. Colima는 경량화된 리눅스 가상 머신을 통해 도커 엔진을 사용할 수 있는 컨테이너 런타임 환경이다.
# Colima 설치
brew install Colima
Shell
복사
Colima 설치가 끝나면 다음 명령어를 입력한다.
# Colima 실행
colima start --arch x86_64 --memory 4
Shell
복사
•
-arch: x86_64 CPU architecture
•
-memory: 4GB memory
참고로 설치를 진행하는 과정에서 다음과 같은 메시지가 뜨는데 이 경우 프롬프트에서 요구하는 대로 명령어를 작성하여 진행해주면 된다. 설치가 끝나면 colima start --arch x86_64 --memory 4 를 다시 입력하여 설치 진행해준다.
Docker Container 생성 및 실행
도커 허브에 oracle-xe를 검색했을 때 스타가 가장 많은 gvenzl/oracle-xe 이미지를 사용하였다. 최신 버전인 21c를 포함하고 있다. Overview를 읽어보고 필요에 따라 더 낮은 버전의 이미지를 사용할 수도 있다.
# Pull an image from Docker Hub
docker pull gvenzl/oracle-xe
# Run (create + start) Docker Container
docker run --name {$containerName} -d -p 1521:1521 -e ORACLE_PASSWORD={$yourOwnPassword} gvenzl/oracle-xe
Shell
복사
•
오라클은 기본적으로 1521 포트를 사용한다.
•
-e : 컨테이너에 ORACLE_PASSWORD라는 환경변수를 주입한다. 오라클 데이터베이스에 접속할 때 사용할 비밀번호를 설정해준다.
# 실행중인 Container 확인
docker container ls -a
Shell
복사
컨테이너가 정상 실행 중이라면 해당 컨테이너 내부로 들어간 후 bash로 oracle 데이터베이스에 접속한다.
# 컨테이너 접속 후 bash 실행
docker exec -it {$containerName} bash
# oracle 접속
sqlplus
[Enter user-name]: system
[Enter password]: {$yourOwnPassword}
Shell
복사
오라클 데이터베이스의 기본 계정은 system이기 때문에 system, 설치 시 입력한 비밀번호로 접속하면 된다.
위 사진처럼 SQL> 쉘이 나타나면 오라클 데이터베이스에 성공적으로 접속한 것이다.
SQL Developer를 통해 Oracle 접속하기
쉘 창에서 작업하는 것보다 좀 더 직관적이고 아름다운 시각 효과를 얻고 싶다면 추가로 애플리케이션 인터페이스를 사용할 수 있다. SQL Developer는 오라클 데이터베이스 개발과 관리를 단순화하는 무료 통합 개발 환경이다. SQL Developer는 맥 유저도 간편하게 다운로드할 수 있다.
다운로드 링크: ❗️ SQL Developer Downloads
설치 후 SQL Developer를 실행하고 왼쪽 위 초록색 + 버튼으로 새 접속을 생성해준다. 데이터베이스 이름 설정, 사용자 지정, 호스트와 포트 번호, SID를 확인해준 뒤 테스트 먼저 진행해준다. 테스트가 성공하면 접속하면 된다.
•
cf. SID: 기존에는 하나의 인스턴스에서 하나의 DB만 사용했는데, 오라클이 Multi-tenant DB가 되면서 하나의 인스턴스에서 여러 DB를 사용할 수 있게 되었다. 따라서 이 여러 개의 데이터베이스를 구별해주는 것이 SID이다.
SELECT instancee from v$thread;
Shell
복사
위 명령어를 통해 현재 사용하고 있는 DB가 인스턴스 내부에서 어떤 이름으로 식별되는지 확인할 수 있다. 동일한 과정을 진행했다면 XE일 것이다.
HR Sample Database 사용하기
오라클에서 제공하는 샘플 데이터베이스를 가져와 편리하게 SQL문을 연습해볼 수 있다. 데이터베이스 수업 시간에 자주 사용했던 HR 스키마를 오라클 데이터베이스에 가져올 것이다. 아래의 레포지토리에서 설치 파일과 방법을 확인할 수 있다.
여기서 두 번째 문제가 생기는데, 설치 파일을 받아서 바로 실행하면 당연히 오라클이 설치되지도 않은 내 맥 컴퓨터에 설치를 진행하려 할 것이다. 따라서 샘플 스키마 설치를 위한 파일들을 오라클이 설치된 컨테이너 오라클이 설치된 컴퓨터라고 생각하자 로 복사하여, 컨테이너 내부에서 하나하나 실행시키는 방법을 사용하기로 했다.
# 아래 파일들이 있는 위치에서 실행
# cd ~/db-sample-schemas-23.3/human_resources
docker cp hr_install.sql {$containerId}:/home
docker cp hr_code.sql {$containerId}:/home
docker cp hr_create.sql {$containerId}:/home
docker cp hr_populate.sql {$containerId}:/home
docker cp hr_uninstall.sql {$containerId}:/home
Shell
복사
HR 스키마를 위한 파일들을 컨테이너의 홈 디렉토리에 전부 복사해줬다.
이제 컨테이너의 홈 디렉토리에서, 오라클 데이터베이스에 접속한 뒤 hr_install.sql 스크립트를 실행해주면 된다.
Enter a tablespace for HR [USERS]: 에서 Enter 클릭 후 다음 질문에서 yes를 입력하면 테이블을 생성해준다. 스크립트를 실행하면 HR 스키마를 사용할 hr 유저의 비밀번호를 포함한 몇 가지 설정 과정이 진행된다. 나중에 여기서 설정한 비밀번호와 사용자명 hr으로 데이터베이스에 접속하면 된다.
해당 화면을 확인했다면 정상적으로 샘플 데이터가 추가된 것이다.
이렇게 설치가 완료되고 데이터베이스 접속이 해제되면 이제 오라클 데이터베이스에서 샘플 스키마를 사용할 수 있게 된다!