[DB] oracle database 19c with docker (arm 기반 mac) 설치 및 실행

Profile-exe·2023년 9월 29일
1

DataBase

목록 보기
2/3
post-thumbnail

이번 학기에 칼복학을 하게 되며 맥북 에어 구매와 함께 데이터베이스 강의를 듣게되었다.

데이터베이스 강의는 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 확장을 설치하면 된다.

위 이미지처럼 왼쪽 하단 ExtensionsVS 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 ARMOracle 19c 다운로드 링크가 존재한다.

이 파일을 가져다 설치를 진행할 예정이니 우선 다운로드를 받아둔다.

🚨 주의 🚨

파일을 다운로드(터미널 기준 ~/Downloads) 폴더에 다운로드 하는게 차후 파일 복사 명령어 입력 시 명령어 수정을 안해도 돼서 좋다.


4) VSCode Docker 확장에서 Oracle의 Docker 이미지 저장소 복제

Docker DesktopVSCode 확장을 들어간 뒤, 홈 디렉터리로 이동할 것이다.

  • 먼저 폴더 열기를 누른다.

  • /home/coder 경로를 입력하고 OK를 누른다.

여기서 새 터미널을 열어준다. 단축키로는 윈도우에선 Ctrl + j 맥에서는 Cmd + j로 터미널을 열 수 있다.

이 블로그에서는 myWorkspace 라는 폴더를 만들어서 진행하기 때문에 다음과 같이 입력하도록 하자.

  • myWorkspace 디렉토리 생성
cd ~ 					# 홈 디렉터리(~)로 이동
mkdir myWorkspace		# myWorkspace 폴더 생성
cd myWorkspace			# myWorkspace 폴더로 이동
  • 이후 myWorkspace 폴더 내에서 OracleDocker 이미지 저장소를 복제한다.
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 19cARM 기반 Mac OS에서 실행할 수 있도록 Docker를 이용해 컨테이너를 만들어보았다. 글이 길어져서 다음 글에 SQL PlusSQL Developer를 이용해 데이터베이스에 접속하는 방법을 작성했다. 아래 링크로 방문하면 된다.

SQL Developer와 docker 컨테이너 연결 - 데이터베이스 접속

profile
컴퓨터공학과 학부생

0개의 댓글