WHITEPAEK Tech Docs

Total : 1,085,201 Today : 94 Yesterday : 446

macOS 오라클 DB 설치 및 실행 방법

macOS에서 오라클 데이터베이스(oracle database)를 사용하기 위해서는..

맥 OS에서 오라클 데이터베이스를 사용하기 위해서는 도커(docker)를 이용해야 합니다. MySQL처럼 바로 설치하여 사용할 수 있으면 좋겠지만 macOS에서는 지원을 하지 않기 때문에 도커를 이용해서 Oracle Database 환경을 설정해야 합니다. 도커와 오라클 데이터베이스에 대한 자세한 내용은 추후에 포스팅을 통해 설명드리도록 하겠습니다. 이번 글에서는 macOS에서 오라클 데이터베이스를 이용해야 하는 초보자를 위한 글이기 때문에 도커를 이용해서 설정 방법에 대해 자세하게 설명하도록 하겠습니다.

 

오라클 데이터베이스를 설치하기에 앞서 도커(Docker)를 실행시켜주세요. 도커 설치가 안되신 분은 macOS 도커 설치 방법 포스트를 참고하여 설치해주세요.

 

Oracle 11g  이미지 다운로드 및 컨테이너 생성

먼저 터미널(Terminal)을 실행시켜주세요. 


 

[그림 1.1] Oracle Database 이미지 검색

docker search oracle-xe-11g 명령어를 이용하여 다운로드할 이미지를 검색합니다.

검색한 이미지 목록 중 jaspeen/oracle-xe-11g를 이용하도록 하겠습니다.

 


 

[그림 1.2] Oracle Database 이미지 다운로드

docker pull jaspeen/oracle-xe-11g 명령어를 이용하여 이미지를 다운로드해주세요.

 


 

[그림 1.3] 다운로드된 이미지 확인

docker images 명령어를 이용하여 다운로드한 이미지 목록을 확인할 수 있습니다.

 


 

[그림 1.4] 컨테이너 생성 및 실행

docker run --name oracle11g-test -d -p 8080:8080 -p 1521:1521 jaspeen/oracle-xe-11g

명령어를 이용하여 컨테이너 생성과 실행을 해주도록 합니다.

 

oracle11g-test 부분은 컨테이너 이름이므로 자신이 설정하고 싶은 이름으로 입력하셔도 됩니다.

저는 예시로 oracle11g-test라는 이름으로 컨테이너를 생성하도록 하겠습니다.

 


 

[그림 1.5] 실행중인 컨테이너 목록 확인

docker ps 명령어를 이용하여 실행 중인 컨테이너 목록을 확인합니다.

정상적으로 oracle11g-test 컨테이너가 생성되어 실행되고 있는 것을 확인할 수 있습니다.

 

Oracle Database SQLPlus 실행하기

[그림 1.4]에서 run 명령어를 통해서 컨테이너 생성과 동시에 실행하였기 때문에

도커를 종료시키거나 컨테이너를 정지시키지 않았다면 오라클 데이터베이스 컨테이너가 실행 중인 상태입니다.

 


 

[그림 1.6] SQLPlus 실행

docker exec -it oracle11g-test sqlplus 명령어를 이용하여 오라클 데이터베이스 SQLPlus를 실행시켜 주세요.

user-name에는 system을 입력하고 password는 oracle를 입력해주세요.

password의 경우 입력을 해도 터미널 창에는 따로 보이지 않으니 입력 후 엔터 버튼을 눌러주세요.

 


 

[그림 1.7] SQL 명령어 입력

SQLPlus가 실행되면 정상적으로 SQL 명령어를 사용할 수 있습니다.

예시로 select * from tab; 명령어를 이용하여 모든 테이블을 출력해보도록 합니다.

 


 

[그림 1.8] SQLPlus 종료

exit 명령어를 통해서 SQLPlus를 종료할 수 있습니다.

SQLPlus만 종료될 뿐 컨테이너는 계속 실행 중인 상태입니다.

 

데이터그립(DataGrip)을 이용해서 오라클 데이터베이스 접속하기

[그림 1.9] 데이터그립으로 오라클 데이터베이스 접속하기

다음 표를 참고하여 오라클 데이터베이스 접속 정보를 입력 후

Test Connection 버튼을 클릭하여 정상적으로 연결된 걸 확인할 수 있습니다.

 

Host localhost
SID XE
Port 1521
User system
Password oracle

 

* 연결이 안되는 문제가 발생할 수 있습니다.

이런 경우 macOS 언어를 영어로 변경하면 정상적으로 연결됩니다.

영어로 변경했다가 다시 한국어로 변경하여도 문제없이 연결할 수 있습니다.

 


 

[그림 1.10] 데이터그립을 통한 SQL 명령어 입력

[그림 1.7]처럼 select * from tab; 명령어를 통해 정상적으로 SQL 명령어가 실행되는지 확인할 수 있습니다.

또한 데이터그립 뿐만 아니라 다른 데이터베이스 GUI 응용프로그램에서도 동일하게 접속할 수 있습니다.

 

이상으로 도커를 이용하여 macOS에서 오라클 데이터베이스 설치 및 실행 방법에 대한 설명이 끝났습니다.

이어서 도커에서 오라클 데이터베이스 컨테이너 실행, 정지에 대한 방법을 설명드리도록 하겠습니다.

 

 

오라클 데이터베이스 컨테이너 실행하기

[그림 1.11] 정지된 컨테이너 목록 확인

docker ps -a 명령어를 이용하여 정지된 컨테이너 목록을 확인할 수 있습니다.

자신이 실행할 컨테이너 이름을 확인해주세요.

 


 

[그림 1.12] 컨테이너 실행

docker start oracle11g-test 명령어를 이용하여 컨테이너를 실행할 수 있습니다.

 


 

[그림 1.13] 실행 중인 컨테이너 목록 확인

docker ps 명령어를 이용하여 정상적으로 컨테이너가 실행되었는지 확인할 수 있습니다.

 

 

오라클 데이터베이스 컨테이너 정지하기

[그림 1.14] 컨테이너 정지하기

docker stop oracle11g-test 명령어를 이용하여 실행 중인 컨테이너를 정지할 수 있습니다.

 


 

[그림 1.15] 실행중인 컨테이너 목록 확인

docker ps 명령어로 실행 중인 컨테이너 목록에서 정지시킨 컨테이너가 사라졌는지 확인하도록 합니다.

 

 

 

Reference

댓글(56)

  • 이전 댓글 더보기
  • hailey15
    2020.03.05 00:39

    진짜 너무 감사합니다ㅜㅜ 하나하나 따라하느라 시간이 많이 걸리기는 했지만 이렇게까지 자세하게 가이드라인을 해주시다니... 맥북 처음 쓰는 컴맹인데 오류없이 착착 진행되는 희열이란... ㅎㅎ 감사합니다 !!

  • hailey15
    2020.03.06 14:25

    한가지 질문해도 될까요? 제가 DB는 아예 처음배워서 그런데 생활코딩을 듣다보니 oracle developer를 다운받아서 client로 이용하더라구요 근데 이게 data grip이랑 비슷한 도구인가요? 똑같은 client면 datagrip을 지워도 되는지 궁금해서요..!! 용량때문에ㅜㅜ

    • hailey15
      2020.03.06 14:47

      똑같은 툴이라면 data grip을 써보려고 하는데
      터미널에서 sql plus로 테이블을 만들고 commit했는데 data grip에서 어떻게 연동이 되나요,,,,? 오라클11g connection되어 있어서 SELECT * FORM topic(테이블이름); 했더니 테이블이 없다는 오류가 나와서요ㅠㅠ

    • 2020.03.06 21:23 신고

      두 개의 도구는 DB GUI Tool 입니다. 터미널에서 작업할 수 있으나 Tool을 이용할 경우 다양한 기능을 이용하고 좀 더 편리하게 DB를 관리할 수 있습니다.
      DataGrip에 MySQL 연동하는 방법에 대한 포스팅이 있으니 참고하여 Oracle도 연동해보세요! 큰 어려움이 없기에 한번 해보시면 금방 이해하실 수 있습니다.
      > https://whitepaek.tistory.com/20

  • 코린이
    2020.03.15 14:48

    안녕하세요, MacOS에서 oracle-xe-11g 다운로드 할 때 위에 알려주신 대로 했는데
    user-name: system, password: oracle 입력하고 나니
    아래와 같은 에러가 뜹니다. 초기 비밀번호가 문제일까요? 감사합니다!
    ORA-01034: ORACLE not available
    ORA-27101: shared memory realm does not exist

  • Kama
    2020.03.16 19:24

    안녕하세요. Mac OS에서 The Network Adapter could not establish the connection IO 오류라고 나와서 이걸 해결하는 방법을 잘 모르겠습니다. ㅠㅠ
    맥이 아닌 Windows로는 관리->서비스로 들어가서 해결하는 순서방법이 나와있는데 암만 찾아봐도 맥에서는 어떻게 해결하라는 방법이 안보이네요...
    해결 예상으로는 OracleServiceXE'와 'OracleXETNSListener 에서 변경만 해주면 될 것같은데....
    해결 방법좀 알려주시면 감사드리겠습니다.

    • 2020.03.17 11:42 신고

      해당 이슈를 겪어보지 못해서 해결 방법은 찾아봐야 합니다.

    • 2021.03.29 19:05 신고

      Kama님 이슈 해결 하셨나요??

    • 2022.06.09 12:04

      컨테이너 생성시에 만든 포트번호를 1521:1521로 설정하지 않고 xxxx:1521 로 생성하셨다면 sqldeveloper 접속시 포트번호를 1521에서 xxxx로 변경해주셔야 합니다!

  • 2020.04.25 06:54 신고

    안녕하세요
    블로그를 보고 도커를 깔았습니다.
    그런데 인텔레제이나 php스톰에서는 오라클이 접속이 되는데
    맥 터미널에서 접속을 하면 ORA-12162: TNS:net service name is incorrectly specified 나옵니다.
    도커에 설치된 오라클을 맥 터미널에서도 환경변수 설정해주어야하나요?

    • 2020.04.25 23:22 신고

      서버를 실행하고 오라클 접속이 정상적으로 안되시는건가요?

  • 부부부부
    2020.05.01 00:30

    데이터 가지고 놀때마다 엑셀 쓴다고 힘들었는데 db쓰면 나아지겠죠?

    잘 보고 설치 했습니다 :)

    • 2020.05.01 19:02 신고

      업무 특성에 따라서 다르겠지만, 데이터베이스를 공부하시는 목적이라면 편하실거예요~

  • 린다
    2020.05.08 09:16

    안녕하세용
    혹시 도커랑 오라클 둘다 설치했을 때 사용되는 총 용량이 어느정도 되나요?

  • 아메리카노
    2020.05.21 15:45

    안녕하세요. 덕분에 맥북에 오라클 설치까지 성공했습니다!
    터미널을 끄고 킬떄마다 터미널 실행을 새로 해야하는 건가요?
    혹시 jdbc에 연동도 해보셨을까요...?
    계속 시도하는데 실패하고 찾아봐도 안나와서요...
    많은 도움 받았습니다.
    감사합니다.

    • 2020.05.21 16:03 신고

      도커와 오라클이 전부 실행 중이면 터미널과 상관없이 접속 가능합니다.
      JDBC 연동은 MySQL 기준으로 포스트를 작성했는데 큰 차이 없으니 참고하여 해보시기 바랍니다.

    • 아메리카노
      2020.05.22 00:26

      감사합니다!

    • 2020.05.22 09:59 신고

      :)

  • 2020.05.30 03:41 신고

    덕분에 너무 편하게 했습니다. 감사합니다.

  • 2020.06.13 17:24

    docker run --name oracle11g-test -d -p 8080:8080 -p 1521:1521 jaspeen/oracle-xe-11g

    여기서 -p로 포워딩을 2번 한 이유가 궁금합니다!

    그리고 제가 a라는 컴퓨터 도커환경에 오라클 설치후 작업한 후
    b라는 컴퓨터 도커환경에 똑같은 오라클 설치 후 작업했는데
    둘다 커밋, 푸시는 하지 않은 상태입니다!
    그럼 현재 a 컴퓨터에 오라클 디비 테이블이 그대로 남아있을까요..?
    오라클 계정은 동일한 것을 사용햇지만 a컴퓨터에서 작업한 디비테이블들은 나타나지 않았습니다...ㅠ

    • 2020.06.14 18:02 신고

      사용할 포트만 지정해서 열어주면 됩니다~!
      말씀하시는 A와 B라는 각 PC에 각자 작업 환경을 설치한 것이 아닌가요? 말씀하신 걸로는 두 개는 전혀 상관이 없어 보입니다..

  • avery
    2020.07.23 07:36

    안녕하세요. 포스팅 감사합니다. 다름이 아니라 'password의 경우 입력을 해도 터미널 창에는 따로 보이지 않으니 입력 후 엔터 버튼을 눌러주세요.' 이 과정을 진행하니 아래와 같은 오류가 발생했습니다.
    ERROR:
    ORA-01089: immediate shutdown in progress - no operations are permitted
    Process ID: 0
    Session ID: 0 Serial number: 0
    어떻게 해결해야 하는지 조언해주실 수 있으실까요?

  • 방문객1..
    2020.07.24 20:33

    너무너무 감사합니다 ㅠ_ㅠ

  • 방문객hang
    2020.08.18 01:28

    너무 감사합니다 !! 덕분에 많이 도움 얻어요 ㅠㅠ 그리고 다름 아니라 궁금한게 있어서..
    이클립스에서 제대로 된 jdbc 연결코드를 작성하더라도 docker 에서 container를 실행하지 않으면
    이클립스에서 jdbc 드라이브 커낵션이 연결이 안되더라구요 ㅠㅠ
    그래서 맥은 이클립스에서 오라클 디비 연결하려면 항상 도커에서 컨테이너 실행후에 jdbc 연결해야하나요?
    매번 이러니까 불편해서 혹시나 하는 방법이 있나 여쭤봅니다..

    • 2020.08.18 10:19 신고

      DB 서버가 실행되고 있어야지 연결 가능합니다.
      OS와는 상관없이 서버가 죽어있는 상태에서 연결할 수 있는 방법은 없습니다..

  • 도커도커
    2020.08.28 12:42

    docker: Error response from daemon: driver failed programming external connectivity on endpoint oracke11g-test (f738b32a373785d6740ee824785eea19b7aa06e9cc37b7b18b423f2905ae63df): Bind for 0.0.0.0:8080 failed

    이렇게 뜨는데 해결방안 아시나요? 뭐가문제일까요..

    • 2020.08.29 23:27 신고

      이미 해당 포트를 사용하고 있을 수 있으니 확인해보세요~

  • 방문자7
    2020.09.21 18:23

    글 보고 도커로 오라클 설치 잘했습니다!!
    근데 하다보니 질문이 있어서요
    table을 만들때 데이터에 한글을 줬는데,
    select 로 보면 한글이 ????? 이렇게 물음표로 나오는데 (터미널 환경)
    혹시 글 작성자님도 그런경우 있으셨나요?

  • 바부
    2021.01.05 00:23

    이제막 db공부위해서 설치중인데요 도커로 오라클을 쓰면 도커 종료시 데이터가 날아가기 때문에 -v 옵션을 주고 실행해야 한다던데 맞나요? 그런데 잘이해가 가지 않는 부분이 도커나 오라클 컨테이너를 종료했다가 재실행 할때 맥북에 설치된 도커를 실행하면 컨테이너/앱스 목록에 남아있는 제가 실행했던(실행중이거나 정지시켰거나) 했던 걸 다시 start 시켜주면 되는건지 아니면 그 컨테이너는 지우고 매번 재실행 할때마다 -v 옵션을 주고 실행해야 되는건지 궁금합니다.

    • 2021.01.07 08:10 신고

      컨테이너를 지웠다면, 이미지로 컨테이너를 생성할 때 옵션을 다시 주셔야 합니다.

      도커 문서에서 볼륨 사용 부분을 참고해서 이해하고 직접 해보시는 걸 추천드리겠습니다 :)
      > https://docs.docker.com/storage/volumes/

  • 인간랜덤
    2021.01.31 17:15

    글 잘 봤습니다.
    이번에 맥북 m1으로 넘어와서 오라클 설치중에 이 글이 너무 정리가 잘 되어 있어서 참고해서 진행했습니다!
    도커로 오라클을 돌리는 순간

    docker run --name oracle11g-test -d -p 8080:8080 -p 1521:1521 jaspeen/oracle-xe-11g
    WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
    1b982238494cc4b35ae10947db4fd055b76252e51e32030574058519c55f6b78

    이런 warning이 발생하고 sqlplus로 로그인 시
    ORA-12547: TNS:lost contact
    이라는 에러가 뜨면서 에러가 나네요 ㅠㅠ
    혹 이 증상을 고칠수 있는 방법이 있으면 알려주시면 너무너무너무 감사하겠습니다!

    • 2021.02.01 13:40 신고

      실리콘 맥에서는 지원을 아직 안 하는 거 같아요.

    • 2021.02.02 09:07

      단순 호스트? 설정문제인줄 알았는데 아예 플랫폼 지원안하는군요 ㅠ
      답변 감사드립니다! 빨리 실리콘 맥에서도 설치가 가능하면 좋겠네요

  • 박대민
    2021.03.25 12:14

    안녕하세요 저도 m1 맥북 이용중이고 위에분이랑 같은 오류 발생합니다.
    해결 방법이 아직 없나요?

    • 2021.03.27 12:50 신고

      제가 아직 실리콘 맥을 구매하지 않아서.. 잘 모르겠네요 ^^;

  • 2021.03.29 19:05 신고

    감사합니다~

  • 야주챠
    2021.10.01 16:08

    너무 잘 알려주셔서 감사합니다ㅠㅠ
    그런데 로그인에서 문제입니다
    Enter user-name: system
    Enter password:
    ERROR:
    ORA-12547: TNS:lost contact


    Enter user-name:

    아이디 : system 패드워드 : oracle 이렇게 했는데 위에서첨 오류가 나와요 ㅠㅠ 어떻게 해야할까요??