이번 학기에 칼복학을 하게 되며 맥북 에어 구매와 함께 데이터베이스 강의를 듣게되었다.
데이터베이스 강의는 oracle database 19c
를 설치해 실습을 진행하는 방식이고, 오라클 데이터베이스는 arm
기반의 mac OS
에 대한 지원이 없어서 docker
를 이용해 설치를 해보려 한다.
구글링을 해보니 10일 전에 올라온 따끈따끈한 글이 있어 이를 보고 설치를 해보았다. 영어로 되어있기 때문에 출처를 밝히고 한글로 내용을 요약해 정리한다. 또한, 내가 추가로 수정하거나 다르게 진행한 부분도 추가했으니 이 점 참고하길 바란다.
출처 : Oracle on ARM, Mac M1/M2 Docker images
이 글을 통해 arm 기반 Mac OS
에서 oracle database 19c
를 설치 및 실행해본다.
이 포스트를 끝까지 읽고 컨테이너 실행까지 완료했다면 SQL Developer와 docker 컨테이너 연결 - 데이터베이스 접속 포스트를 통해 DB에 쿼리를 날려보자.
1. Linux ARM 기반 Oracle Database 19c 이미지 빌드
1) Docker Desktop 설치
Docker
를 설치하는 여러 방법이 있는데 나는 homebrew
를 이용한 설치로 진행했다.
방법 1 : 홈페이지에서 설치
Docker Desktop 이 링크로 들어가 설치한다. Mac - Apple chip
을 선택해서 설치하면 되겠다.
방법 2 : homebrew
를 이용해 설치
brew install --cask docker
나는 iterm2
터미널이 있어 여기서 진행했다.
2) VsCode Docker Desktop Extension
설치 이후 VSCode Docker Desktop Extension을 설치한다. 이 링크를 클릭해 브라우저가 Docker Desktop
을 열게 하고 VS Code for the Web
확장을 설치하면 된다.
위 이미지처럼 왼쪽 하단 Extensions에 VS Code Web
이라는 확장이 설치된다.
이제 VS Code for the Web
확장에 Docker
지원을 추가하는 명령어를 입력해야한다. Mac 터미널
에서 진행하면 된다.
docker exec -ti --user root coder_embedded_dd_vm /bin/sh -c "curl -s https://raw.githubusercontent.com/marcelo-ochoa/coder-docker-extension/main/addDocker.sh | bash"
3) Oracle 19c EE(Enterprise Edition) 다운로드
사파리를 사용하면 자동 압축 해제가 되버린다. 이러면 설치가 불가능하기 때문에 크롬을 사용하거나
사파리 자동 압축 해제 끄기를 적용한 후 진행하자.
Oracle Database Enterprise Edition 이 링크를 타고 아래로 내리면 Linux ARM
용 Oracle 19c
다운로드 링크가 존재한다.
이 파일을 가져다 설치를 진행할 예정이니 우선 다운로드를 받아둔다.
파일을 다운로드(터미널 기준 ~/Downloads
) 폴더에 다운로드 하는게 차후 파일 복사 명령어 입력 시 명령어 수정을 안해도 돼서 좋다.
4) VSCode Docker 확장에서 Oracle의 Docker 이미지 저장소 복제
Docker Desktop
의 VSCode
확장을 들어간 뒤, 홈 디렉터리로 이동할 것이다.
먼저 폴더 열기를 누른다.
/home/coder
경로를 입력하고 OK
를 누른다.
여기서 새 터미널을 열어준다. 단축키로는 윈도우에선 Ctrl + j
맥에서는 Cmd + j
로 터미널을 열 수 있다.
이 블로그에서는 myWorkspace
라는 폴더를 만들어서 진행하기 때문에 다음과 같이 입력하도록 하자.
myWorkspace
디렉토리 생성cd ~ # 홈 디렉터리(~)로 이동
mkdir myWorkspace # myWorkspace 폴더 생성
cd myWorkspace # myWorkspace 폴더로 이동
myWorkspace
폴더 내에서 Oracle
의 Docker
이미지 저장소를 복제한다.git clone https://github.com/oracle/docker-images # 저장소 복제
cd docker-images/ # 저장소로 이동
ls -l # 저장소 폴더 내 목록 조회
5) 다운로드한 oracle 파일을 VSCode 폴더로 복사
이번 명령어는 VSCode
확장이 아닌 Mac 터미널에서 진행한다. 앞서 다운로드 했던 Oracle Database 19c
압축파일을 VSCode
확장의 Oracle
도커 저장소로 옮기는(복사하는) 것이다.
cd Downloads # 다운로드 폴더로 이동
docker cp LINUX.ARM64_1919000_db_home.zip coder_embedded_dd_vm:/home/coder/myWorkspace/docker-images/OracleDatabase/SingleInstance/dockerfiles/19.3.0
6) Docker 이미지 빌드
이번 명령어는 VSCode 확장의 터미널에서 진행한다. 도커 이미지 빌드 명령어를 입력하기 위한 것이다. 명령어는 블로그와 달리 cd
로 폴더를 이동할 때 절대경로로 입력하여 어떤 위치에 있더라도 빌드가 가능한 장소로 이동하도록 수정했다.
# 빌드를 위해 해당 폴더로 이동
cd ~/myWorkspace/docker-images/OracleDatabase/SingleInstance/dockerfiles/
# 빌드 명령어 실행
./buildContainerImage.sh -v 19.3.0 -e
2. Mac ARM용 oracle database 19c 이미지 빌드
Linux ARM
기반의 oracle database 19c
이미지를 성공적으로 빌드했다면, 다음은 Mac ARM
에서 실행 가능하도록 이미지를 빌드하는 것이다. 앞서 잘 따라왔다면 여기서는 명령어만 따라치면 되니 빠르게 진행해보도록 하자.
1) oci-oracle-free 저장소 복제
이 명령어들은 VSCode 확장의 터미널의 myWorkspace 폴더 내에서 진행한다.
cd ~/myWorkspace # myWorkspace로 이동
# oci-oracle-free 저장소 복제
git clone -b 19c-arm-slim https://github.com/marcelo-ochoa/oci-oracle-free
cd oci-oracle-free # oci-oracle-free 폴더로 이동
2) slim 버전 이미지 빌드
docker buildx build --build-arg BUILD_MODE=SLIM -t oracle/database:19.3.0-ee-slim -f Dockerfile.193 .
3) slim-faststart 버전 이미지 빌드
docker buildx build --build-arg BASE_IMAGE=oracle/database:19.3.0-ee-slim -t oracle/database:19.3.0-ee-slim-faststart -f Dockerfile.faststart .
3. Oracle 19c Docker 컨테이너 생성
이제 이미지를 다 만들었으니 실행 가능한 컨테이너로 만든다.
이 명령어들은 Mac 터미널에서 진행한다.
# 컨테이너 생성 및 실행
docker run -d --name test19c -e ORACLE_PASSWORD=Oracle_2023 -p 1521:1521 oracle/database:19.3.0-ee-slim-faststart
# 실행한 컨테이너 로그 확인
docker logs -f test19c
위 명령어에 대한 옵션을 설명하겠다.
d
: 컨테이너를 백그라운드에서 실행할 수 있게 한다. 즉, 컨테이너를 실행한 이후에도 터미널에서 다른 작업을 진행할 수 있고, 실행한 터미널을 종료하더라도 백그라운드에서 계속 실행된다.
name
: 생성될 컨테이너의 이름
-e
: 컨테이너의 환경변수 설정
ORACLE_PASSWORD
: 오라클 데이터베이스 접속 시 사용하는 비밀번호-p
: 호스트와 컨테이너의 포트포워딩
1521:1521
: Oracle Database
는 일반적으로 1521
포트로 열리므로 컨테이너의 1521 포트와 호스트의 1521 포트를 연결해 컨테이너 외부에서 프로그램이 1521 포트를 사용해 컨테이너 내부 1521 포트로 연결되어 데이터베이스에 접속할 수 있게 한다.명령어 입력 결과
로그를 보면 정상적으로 데이터베이스가 실행된 것을 볼 수 있다.
Docker Desktop
에서 확인Docker Desktop
에서 관리할 수 있다.여기까지 Oracle Database 19c
를 ARM 기반 Mac OS
에서 실행할 수 있도록 Docker
를 이용해 컨테이너를 만들어보았다. 글이 길어져서 다음 글에 SQL Plus
와SQL Developer
를 이용해 데이터베이스에 접속하는 방법을 작성했다. 아래 링크로 방문하면 된다.