• docker로 oracle 연결하기

    2023. 11. 6.

    by. Sohyun

    못본새 오라클 버전이 많이 올랐다.
    12쓰던것이 어제 같은데 벌써 19, 21을 쓰고 있다.
    12는 공홈에서 찾아보기도 힘들다.
    ojdbc는 오라클 버전에 따라 호환되는 것을 사용해야하는 등
    찾기 어려운데  dbeaver에서 다운로드 받으면 알아서 맞춰주는 장점이 있다.
     
    ## 일단 도커 스타트
     
    1. 이미지 받기
    도커가 설치되었다는 가정하에 오라클 이미지를 다운로드 받아준다.

    docker pull doctorkirk/oracle-19c

     
    2. 도커 run + 부가정보
    이미지만 받았다고 실행되지 않는다.
    도커를 실행시켜주면서 오라클을 실행시키기 위한 부가정보들도 같이 입력해준다.
    물론 부가정보 없이도 실행은 되지만 길을 헤멜 수 있다.

    docker run -d --name [원하는 이름] -p 1521:1521 -e ORACLE_SID=[원하는 SID] -e ORACLE_PWD=[원하는 비밀번호] -v C:\Users\내경로/:/opt/oracle/oradata  이미지

    SID는 XE, ORCL, EE 등이 있다. 그런데 여기서 xe로 설정해주어도 orcl로 접속해야하는... 정해져있는건 바뀌지 않는단 말인가(..?)
    간단히 설명하자면 -p를 통해 로컬 1521과 도커 1521 포트가 포트포워딩 되었으며,
    -v 볼륨이 로컬경로 : 도커내 경로 해서 연결되었다.
    후에 데이터베이스 연결시 내 경로를 연결해주면 된다.
     
    3. 도커 접속하기

    docker exec -it oracledb /bin/bash

     
    4. 오라클 리스너 켜주기
    lsnrctl start
     
    5. sqlplus 접속하기

    sqlplus '/as sysdba'

    저 따옴표 안써주니 무슨이유에서인지 작동되지 않았다.
    문법인 것 같다.
     
    5. 아래 두줄 입력하면 비밀번호 입력하라고 하는데 처음에 설정한 비밀번호 입력하면 Connected.가 나온다.

    sqlplus /nolog
    
    conn sys as sysdba
    
    Enter password:

     
    연결 완료하고 dbeaver가 설치되었다는 가정하에
     
    6. 데이터베이스 연결하기
    위에 설정한 내용을 입력하고, 

    test Connection으로 Connected되면 연결 완료인데
     
    1. Client경로 맞춰주기
    도커 설정하면서 지정해준 내 경로 XE까지로 지정해주었더니 연결이 되었다.
    그 직전에 났던 에러...

    ORA-12526, TNS:listener: all appropriate instances are in restricted mode

     
    2. driver LIbraries  설정하기
     
    Edit Driver Settings 에서 LIbraries 다운로드 받거나 ojdbc 버전에 맞게 Add File 해주고
    Find Class 형광펜 친 버튼 눌러서 하나 선택해준다.

     
     
     
     
    연결되면 메뉴바에 연결된 오라클 데이터베이스가 보인다.

    댓글