회사에서 오라클 데이터베이스를 상당히 비중있게 다루고있고, 마침 인프런으로 듣던 강의에서도 오라클을 사용하길래 이번기회에 현재 제가 사용하고있는 노트북인 맥북 m1에 오라클 데이터베이스를 세팅해보기로 했습니다. 맥 OS는 오라클을 지원하지 않기 때문에 도커를 사용합니다만 맥북 m1에서 도커가 잘 안 돌아가는 듯 합니다. 다행히 정리된 포스팅들이 있어 삽질이 오래 가지는 않았으나, 앞으로 개발할때마다 계속 써야할것같기 때문에 정리해두려고 합니다. 맥북 m1에서 오라클을 사용하기 위해 필요한 것은 다음과 같습니다.
- 오라클을 돌리기 위한 도커 설치
- 도커를 돌리기 위한 colima 설치
- 로컬에서 연결하기 위한 sql developer 설치
도커 설치
$ brew install docker
도커는 터미널에 다음의 명령어를 입력하여 손쉽게 설치할 수 있었습니다. 하지만 노트북을 종료 후 다시 켜면
이런식으로 연결이 종료되어 docker와 docker desktop을 완전히 삭제하고 재설치하기도 했습니다만, 여전히 다음 날이 되면 똑같은 상태더라고요. 그래서 colima를 사용해야된다는걸 몇시간의 삽질 끝에 깨달았습니다.
colima 설치
설치 전에 어떤 소프트웨어인지 알아보기 위해 잠시 공식 깃허브로 이동해봅시다.
https://github.com/abiosoft/colima
인텔과 맥 m1에서 CLI Interface를 사용하여 도커 컨테이너를 실행시켜주는 컨테이너 런타임 소프트웨어라고 합니다. 쿠버네티스도 지원하는 아주 바람직한 소프트웨어네요. 설치해봅시다.
$ brew install colima
설치 후, x86_64 환경으로 실행시켜줍니다.
$ colima start --memory 4 --arch x86_64
colima 실행 후 다시 docker 명령어를 입력하니 정상적으로 작동합니다. 이후에 colima가 잘 돌아가고 있는지 확인하려면 다음의 명령어를 입력해줍니다.
$ colima status
docker에 oracle-xe 설치
이제 docker에서 jaspeen/oracle-xe-11g 이미지를 다운받아 컨테이너에서 실행시킴으로서 오라클 서버를 띄우겠습니다.
$ docker run --name oracle11g -v ~/Desktop/Repository/oracledb:/u01/app/oracle -p 1521:1521 -d jaspeen/oracle-xe-11g
‘-v’ 이 옵션을 통해 호스트와 볼륨을 공유함으로써 컨테이너를 재실행해도 이전의 데이터가 유지됩니다.
이제 컨테이너 로그를 실시간으로 모니터링해보겠습니다. 그만두려면 Ctrl+C를 입력하시면 됩니다.
$ docker logs -f oracle11g
데이터베이스 사용준비가 되었다고 하네요. 이제 sql developer로 연결해보겠습니다.
- 사용자이름 : system
- 비밀번호 : oracle
- 호스트이름 : localhost
- 포트 : 1521
다음으로 도커 컨테이너의 오라클 데이터베이스에 접속할 수 있습니다.
앞으로는 재접속시에 다음과 같은 순서로 오라클을 실행시킬 수 있을 것 같습니다.
- colima 실행
$ colima start --memory 4 --arch x86_64
- docker container 실행
$ docker start oracle11g
- oracle developer로 접속
추가)
며칠 후 jdbc와 docker에서 돌아가는 oracle을 연결해보려고 하니… 이런 오류가 떴습니다.
검색해보니 가상환경의 disk가 꽉차서 그렇다고 하네요. https://stackoverflow.com/questions/23743910/ora-12528-tns-listener-all-appropriate-instances-are-blocking-new-connections 컨테이너 재실행해줬습니다.