맥(ARM)에서 도커로 오라클 데이터베이스 설치 및 사용하기

artp·2025년 4월 4일
0

기타

목록 보기
4/11
post-thumbnail

1. 오라클 도커 이미지 다운로드

도커 허브에는 오라클사에서 제공하는 공식 이미지가 없습니다. 따라서 오라클 깃허브 페이지에서 직접 이미지를 다운받습니다.
https://github.com/oracle/docker-images

  • git clone 명령어로 파일을 다운받거나 압축 파일을 다운로드 받습니다 (Download ZIP).

다운로드 받은 이미지를 확인해 보면 다음과 같은 구조를 확인할 수 있습니다.

  • docker-images/OracleDatabases/SingleInstance/dockerfiles
  • 여러 오라클 버전들이 존재함을 확인할 수 있습니다.

1.2 폴더 구조 살펴보기

오라클에서 공식 제공하는 docker-images/OracleDatabse 리포지토리에는 오라클 데이터베이스를 다양한 환경에서 실행하기 위한 설정들이 폴더별로 나뉘어 있습니다. 각 폴더의 용도와 역할을 정리하면 다음과 같습니다.

~/docker-images/OracleDatabase/
├── OracleConnectionManager/
├── RAC/
├── SingleInstance/
│   └── dockerfiles/
│       ├── 11.2.0.2/
│       ├── 12.1.0.2/
│       ├── 12.2.0.1/
│       ├── 18.3.0/
│       ├── 18.4.0/
│       ├── 19.3.0/
│       ├── 21.3.0/
│       ├── 23.6.0/
│       └── buildContainerImage.sh

1.2.1 RAC

  • RAC = Real Application Clusters
  • 오라클의 고가용성 클러스터 솔루션으로, 여러 개의 서버(노드)에서 하나의 DB를 동시에 구동할 수 있는 구조로 장애 복구나 분산 처리에 유리합니다.
  • 이 폴더에는 Oracle RAC 환경을 Docker 컨테이너로 시뮬레이션하기 위한 설정과 스크립트들이 포함되어 있습니다.
  • 일반적인 개발이나 학습 환경에서는 많이 사용하지 않으며, 인프라 실습이나 기업용 시스템 설계 시 주로 활용됩니다.

1.2.2 SingleInstance

  • 단일 인스턴스 오라클 데이터베이스를 위한 폴더입니다.
  • 오라클 DB 하나를 Docker 컨테이너를 실행할 수 있도록 구성되어 있습니다.
  • 일반적으로 사용하는 Oracle 19c, 21c, 23c Free 같은 버전들을 단일 컨테이너에서 띄우기 위한 설정이 이 폴더에 들어 있습니다.
  • 일반적인 실습, 개발, 테스트 용도로는 이 폴더만 사용하면 충분합니다.

1.2.3 dockerfiles

  • Oracle DB의 버전별 Docker 빌드를 위한 핵심 파일들이 담긴 곳입니다.
  • Oracle 11g 부터 23c까지의 여러 버전이 하위 폴더로 구분되어 있습니다.
    • 11.2.0.2/, 19.3.0/, 21.3.0/
  • 각 버전 폴더에는 다음과 같은 파일들이 포함되어 있습니다.
    • Dockerfile 또는 Dockerfile.ee, Dockerfile.xe (버전/에디션별 빌드 정의)
    • Oracle 설치 자동화를 위한 쉘 스크립트들
    • 오라클 설치 파일(*.zip)을 직접 넣어야 하는 공간
  • 실제 Docker 이미지를 만들 때, 이 폴더 구조가 기반이 됩니다.

1.2.4 buildContainerImage.sh

  • 이 파일은 오라클 이미지를 직접 만드는 메인 빌드 스크립트입니다.
  • 사용자가 지정한 버전과 에디션에 따라 적절한 Dockerfile을 선택하고 필요한 설정을 넣어 오라클 이미지를 자동으로 빌드합니다.
  • 아래처럼 명령어를 실행하면 Oracle 19c Enterprise Edition 이미지가 생성됩니다.
./buildContainerImage.sh -v 19.3.0 -e
옵션의미
-v빌드할 Oracle 버전 지정 (예: 19.3.0)
-e, -x, -fEnterprise, Express, Free 에디션 선택
(선택)-iMD5 체크(체크섬) 무시 (다운로드 확인 생략)
(선택)-t빌드 결과 이미지의 이름 지정

1.3 버전별 폴더 살펴보기

dockerfiles 폴더 내부에는 오라클의 버전별 설치 환경이 폴더로 구분되어 있습니다.

각 폴더는 해당 버전의 오라클을 Docker 이미지로 빌드할 수 있도록 필요한 스크립트와 설정을 포함하고 있으며, 예를 들어 19.3.0/ 폴더는 Oracle 19c를 위한 빌드 환경이 들어 있습니다.

  • 이 폴더 안에는 Dockerfile, 설치 자동화 스크립트(.sh), 응답 파일(.rsp), 그리고 직접 다운로드한 오라클 설치 파일을 넣는 공간이 있습니다.

❗️ 여기서 중요한 파일: LINUX.ARM64_1919000_db_home.zip

  • LINUX.ARM64_1919000_db_home.zip 파일은 Oracle Database 19c (ARM64 아키텍처용) 설치에 반드시 필요한 핵심 설치 패키지입니다.
  • Docker로 오라클 이미지를 빌드할 때, 이 파일을 unzip → 설치 → 설정하는 과정이 자동으로 수행됩니다.
  • 즉, 이 파일이 없으면 이미지 빌드는 시작조차 되지 않습니다.

2. LINUX.ARM64_1919000_db_home.zip 파일 다운로드

buildContainerImage.sh 스크립트 파일 내용을 보면, ARM64 플랫폼(예: M1/M2 Mac)에서는 다음과 같이 19c EE 버전만 빌드 가능하도록 제한되어 있습니다

  • ARM64 환경에서는 19.3.0 버전의 Enterprise Edition만 공식적으로 지원됩니다.
  • 또한, 설치 파일로 반드시 LINUX.ARM64_1919000_db_home.zip 파일을 사용해야 하며, 이 파일명은 스크립트 내부에 하드코딩되어 있기 때문에 이름이 조금만 달라도 오류가 발생합니다.

2.1 ZIP 설치 파일을 직접 다운로드해야 하는 이유

LINUX.ARM64_1919000_db_home.zip 파일은 기본 제공되지 않으며, Oracle 공식 홈페이지에서 별도로 다운로드해야 합니다.

오라클은 자사 소프트웨어에 대한 재배포를 허용하지 않기 때문에, 공식 깃허브 저장소에는 설치 파일이 포함되어 있지 않습니다.
따라서 사용자가 직접 오라클 공식 웹사이트에 접속해 로그인 후 다운로드해야 합니다.

2.2 다운로드 방법

1. 오라클 공식 ARM64 다운로드 페이지 접속 (❗️오라클 계정 필요)

https://www.oracle.com/database/technologies/oracle19c-linux-arm64-downloads.html

2. 오라클 계정으로 로그인 (로그인 및 라이선스 동의 후 파일 다운로드 가능)

3. LINUX.ARM64_1919000_db_home.zip 파일 다운로드

4. 다운로드한 파일을 아래 위치로 이동

~/docker-images/OracleDatabase/SingleInstance/dockerfiles/19.3.0/
  • 위 경로에 정확히 파일을 넣지 않으면 에러가 발생합니다.

3. 빌드 실행

buildContainerImage.sh는 아래 폴더에서 설치 파일이 있는지 확인하고, MD5 체크 및 unzip 후 설치를 진행합니다.

# LINUX.ARM64_1919000_db_home.zip 파일은 아래 경로에 위치해야 합니다.
~/docker-images/OracleDatabase/SingleInstance/dockerfiles/19.3.0/

터미널에서 아래 디렉터리로 이동합니다.

cd ~/docker-images/OracleDatabase/SingleInstance/dockerfiles

아래 명령어로 빌드를 실행합니다.

./buildContainerImage.sh -v 19.3.0 -e
옵션설명
-v 19.3.0Oracle 19c 버전 사용
-eEnterprise Edition
(선택) -iMD5 체크를 무시하려면 이 옵션 추가 가능

빌드가 성공하면 다음과 같은 이미지가 생성됩니다.

oracle/database:19.3.0-ee

4. 도커 컨테이너 실행

아래 명령어(예시)로 도커 컨테이너를 실행합니다.

docker run --name oracle19c \ 
	-p 1521:1521 \
    -e ORACLE_PWD=oracle \
    -d oracle/database:19.3.0-ee
  • docker run
    새 컨테이너를 실행하는 Docker 명령어입니다.
  • --name oracle19c
    실행될 컨테이너의 이름을 oracle19c로 지정합니다.
  • -p 1521:1521
    호스트(맥)와 컨테이너 간의 포트를 연결합니다. 오라클의 기본 포트인 1521을 외부에서 접근 가능하게 설정합니다.
  • -e ORACLE_PWD=oracle
    오라클 컨테이너 초기 비밀번호를 설정합니다. 여기서는 SYS, SYSTEM 계정의 패스워드를 oracle로 설정합니다.
  • -d
    컨테이너를 백그라운드(detached) 모드로 실행합니다.
  • oracle/database:19.3.0-ee
    사용할 Docker 이미지 이름입니다. 앞에서 직접 빌드한 Oracle 19c Enterprise Edition 이미지입니다.

도커 허브에서 컨테이너가 잘 생성/실행되었는지 확인해 보겠습니다.

  • 오라클 컨테이너가 잘 실행 중인 것을 확인할 수 있습니다.

5. DataGrip에서 오라클 데이터베이스 연결 확인

  • SID: ORCLCDB
  • User: sys as sysdba
  • Password: 도커 빌드 시 설정한 비밀번호

위의 설정을 참고하여 작성 후 연결해 보면, 오라클 데이터베이스에 정상적으로 접속됨을 확인할 수 있습니다.

참고: SID vs Service Name

DataGrip에서는 SID 방식 또는 Service Name 방식으로 접속 설정을 선택할 수 있습니다.

항목설명
SIDSystem Identifier, 데이터베이스 인스턴스의 고유 이름
SERVICE_NAME클라이언트가 접속할 때 사용하는 논리적 서비스 이름, PDB 접속 시 필수

오라클이 제공하는 Docker 이미지는 기본적으로 하나의 CDB(Container DB)를 만들고, 그 이름이 ORCLCDB로 설정되어 있습니다.
또한, 기본으로 하나의 PDB도 자동으로 만들어지는데, 이름은 보통 ORCLPDB1입니다.

Oracle Container DB     → SID: ORCLCDB
└── Pluggable DB        → Service Name: ORCLPDB1

DataGrip에서 SID = ORCLCDB로 입력한다는 것은 CDB 자체에 접속하는 것을 의미합니다.
보통 SYS, SYSTEM 같은 관리자 계정으로 접속할 때 사용되며, CDB에서 PDB 생성, 유저 관리, 전체 시스템 관리 등의 작업을 할 수 있습니다.

profile
donggyun_ee

0개의 댓글