개발 ON
  • [Network | Oracle] Oracle 11g 외부 원격 접속
    2024년 07월 10일 23시 47분 58초에 업로드 된 글입니다.
    작성자: 이주여이

    KDT 들어가기 전에 처음으로 만들었던 개인 프로젝트의 DBMS를 oracle로 사용하고 이후에는 계속 mariaDB를 쓰긴 했는데.. 이번에 배포하는 거 알게 되면서 처음 만들었던 프로젝트도 배포해보려고 오랜만에 sql developer를 들어가게 되었다. 배포할 때 ip를 공인 ip로 설정하진 않지만 해당 서버가 있는 호스트 PC가 아닌 외부 장소에서 작업해야한다면.. 싶어서 적용해봤다.

     

    1. 공유기 포트 포워딩

    가상 서버에 Oracle 부분만 보면 된다.(DBMS 기본 포트 빼곤 SSH & SFTP 접속용이라..)

    외부에서 1521 포트로 들어오는 요청은 내부에 1521 포트로 포워딩된다.

    2. 방화벽 포트 추가

    1. windows 키 누른 후 ‘방화벽’ 입력
    2. 방화벽 및 네트워크 보호 - 고급 설정 클릭

    인바운드 규칙, 아웃바운드 규칙에 위에 포트 포워딩했던 포트를 추가한다.

     

    ~ 사진 생략 ~

    3. listener.ora 및 tnsnames.ora 수정

    🛠 C:\oraclexe\product\11.2.0\dbhome_1\NETWORK\ADMIN
    📢 만약에 권한 때문에 수정이 안된다면 해당 파일 오른쪽 클릭 후 속성 - 보안 - Authenticated Users의 수정 / 쓰기 권한을 허용해준다.(이후 막아주면 더 좋고..)

    listener.ora

    # listener.ora Network Configuration File: C:\oraclexe\product\11.2.0\dbhome_1\network\admin\listener.ora
    # Generated by Oracle configuration tools.
    
    SID_LIST_LISTENER =
      (SID_LIST =
        (SID_DESC =
          (SID_NAME = CLRExtProc)
          (ORACLE_HOME = C:\oraclexe\product\11.2.0\dbhome_1)
          (PROGRAM = extproc)
          (ENVS = "EXTPROC_DLLS=ONLY:C:\oraclexe\product\11.2.0\dbhome_1\bin\oraclr11.dll")
        )
      )
    
    LISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
          (ADDRESS = (PROTOCOL = TCP)(HOST = 0.0.0.0)(PORT = 1521))
        )
      )
    
    ADR_BASE_LISTENER = C:\oraclexe

    HOST에 localhost로 되어있을텐데 0.0.0.0으로 변경한다.

     

    tnsnames.ora

    # tnsnames.ora Network Configuration File: C:\oraclexe\product\11.2.0\dbhome_1\network\admin\tnsnames.ora
    # Generated by Oracle configuration tools.
    
    LISTENER_ORCL =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 0.0.0.0)(PORT = 1521))
    
    ORACLR_CONNECTION_DATA =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
        )
        (CONNECT_DATA =
          (SID = CLRExtProc)
          (PRESENTATION = RO)
        )
      )
    
    ORCL =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = 0.0.0.0)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = orcl.181.181.227)
        )
      )

    해당 파일도 localhost로 되어있는 IP 주소를 위와 같이 0.0.0.0으로 변경한다.

     

    ~ 재부팅 해준다 ~

    4. 확인

    테스트 클릭 시 성공이 뜨며 접속도 잘된다.


    참고 레퍼런스

    https://programmers.tistory.com/entry/요청한-작업을-수행하는-중-오류-발생IO-오류-The-Network-Adapter-could-not-establish-the-connection-CONNECTIONIDjHxZeyRjRwe0bH4CBvuaxg업체-코드-17002

    댓글