M1맥북에서 oracle DB 사용하기

단이·2024년 3월 17일

데이터베이스

목록 보기
1/2

참고1: [MacOS] M1 맥북 도커로 ORACLE DB 실행하기
참고2: M1, M2 Mac OS에서 Oracle DataBase 사용하기


가상화에 대한 기본적인 지식이 있어야 이해하기 쉬울 것이다. 나는 설마 또 지나치는 거 아니지? 궁금해하던 도커인데? 포스트를 추천한다.


Oracle은 m1과 같이 arm 아키텍처를 사용하는 칩에 공식적인 지원을 하지 않는다. 즉, Intel x86 아키텍처 용으로만 제공되는 소프트웨어 환경에서 사용해야 된다는 뜻이다. 따라서 docker desktop만을 이용해서 oracle database를 m1 맥북에서 사용하면 호환성 문제가 발생할 수 있다. 그래서 우리는 colima라는 docker를 docker desktop없이 가볍게 시작해주는 mac용 도구를 활용할 것이다.

설치와 첫 실행

1. Docker Engine설치

brew가 뭔지 모른다면 여기를 클릭해서 홈브루 설치 방법만 참고하길 바람

brew install docker #Colima 사용을 위한 docker CLI설치

2. Colima 설치

Colima는 CLI 환경에서 docker와 같은 컨테이너를 사용할 수 있게 해주는 mac용 도구임. 즉, 도커 데스크탑을 실행하지 않았을 때도 docker사용이 가능하며, 도커 데스크탑을 사용하는 때보다 가볍게 사용이 가능하다.

터미널에 접속해서 해당 명령어를 입력

arch -arm64 brew install colima

앞에 arch arm64를 붙여주는 이유는 M1은 arm 아키텍처 기반이기 때문이다. Intel x86 아키텍처용으로만 제공되는 소프트웨어를 사용해야할 때 붙여야 한다. 안 붙이고 설치하면 나중에 좀 깊게 팔 때 호환성 때문에 고생한다는 글을 봤다. 이러한 특수한 경우를 제외하면 arch -arm64를 붙여서 brew를 설치할 필요는 없다.

3. Colima 실행

m1은 arm아키텍처를 사용하고 oracle은 arm아키텍처를 지원하지 않는다. 따라서 x86_64 아키텍처를 띄워야한다. Rosseta 2라는 맥용 도구가 x86_64 애플리케이션을 처음 실행할 때, 해당 애플리케이션의 코드를 Apple Silicon 칩이 이해할 수 있는 ARM 명령어로 변환하게 해주어 m1환경에서도 사용할 수 있게 해준다.

터미널에 아래 명령어 입력

colima start --memory 4 --arch x86_64
#--memory 4: Colima가 시작할 가상 머신에 4GB의 메모리를 할당
#--arch x86_64: 가상 머신의 아키텍처를 x86_64로 설정

실행되고 done이 뜨면 실행 완료

4. docker가 돌아가는지 확인하기

터미널에 아래 명령어 입력

docker ps

실행되고 있는 컨테이너들이 뜰 것이다.

5. 컨테이너 생성

아래 명령어를 터미널에 입력

docker run --restart unless-stopped --name oracle -e ORACLE_PASSWORD=pass -p 1521:1521 -d gvenzl/oracle-xe
  • docker run: docker 컨테이너 실행 명령어
  • --restart unless-stopped: 비정상적으로 컨테이너가 종료됐을 시 재실행, 수동 종료는 해당 안 됨
  • --name oracle: 컨테이너 이름을 oracle로 설정
  • -e ORACLE_PASSWORD=pass: Oracle 데이터베이스의 SYS 및 SYSTEM 사용자의 비밀번호를 pass로 설정
  • -d: 컨테이너를 백그라운드(background) 모드로 실행하는 옵션 (컨테이너가 실행되면서도 터미널을 차지하지 않고 docker와 관련된 명령어로만 컨테이너 상태를 확인 가능)
  • -p 1521:1521: 호스트의 포트 1521을 컨테이너의 포트 1521로 매핑하여 Oracle 데이터베이스에 연결 (1521 포트는 Oracle 데이터베이스에서 기본적으로 사용되는 포트)
  • gvenzl/oracle-xe: 실행할 이미지의 이름(pull을 이용해 다운로드 하지 않아도 없다면 알아서 다운로드를 해 준다.) oracle-xe는 오라클의 무료 rdbms를 뜻함

6. 로그 확인

데이터 베이스를 쓸 준비가 됐는지 해당 컨테이너의 로그를 확인

docker logs -f oracle #oracle 컨테이너의 로그 띄우기
#########################
DATABASE IS READY TO USE!
#########################

라고 중간에 있다면 사용할 준비가 된 것이다. 로그는 control+c키로 나갈 수 있다.

7. SQLplus 실행

SQLplus는 Oracle Database와 함께 제공되는 명령줄 인터페이스임

아래의 명령어를 이용해서 sqlplus를 실행

docker exec -it oracle sqlplus #sqlplus를 위한 가상의 터미널과 인터페이스 할당 후 실행

유저 네임과 패스워드 입력

[Enter user-name: system #기본적으로 system이라고 설정 돼 있음
[Enter password: pass #비밀번호는 터미널상에서 보이지 않음 그냥 치면 됨

정상적으로 연결됐다면 SQL>이 뜰 것이고, 제대로 작동되는지 확인을 위해 아래 명령어를 입력

select * from tab; #모든 테이블 출력

테이블이 출력됐다면 !!!설치 끝!!!


이후는 위의 제일 쉽게 시작하기 방법을 했다면 오른쪽 목록에 띄워지는 재실행2 방법대로 하면 됨

제대로 종료하기

1. SQLplus 종료

아래 명령어를 입력해 sqlplus를 종료

exit

2. Colima 종료

colima stop #알아서 colima와 함께 실행된 docker 컨테이너도 종료된다.

실행했을 때와 마찬가지로 done이 뜨면 종료된 것


재실행

1. colima 실행

colima start --memory 4 --arch x86_64

done이 뜨면 콜리마 실행 완료

2. 터미널에 오라클 컨테이너 실행

docker start oracle

입력 후 oracle이 뜨면 컨테이너 실행 완료

3. SQLplus 실행

docker exec -it oracle sqlplus

유저 네임과 패스워드 입력

[Enter user-name: system
[Enter password: pass

끝~

0개의 댓글