DataBase

Oracle 외부 접속 허용

유가엘 2019. 7. 19. 16:22

외부에서 접속시, 기본적으로 차단되어 있기 때문에 아래와 같은 메시지가 출력됩니다.

ORA-12514: TNS: 리스너가 없습니다. 

ORA-12514: TNS:리스너가 현재 접속 기술자에 요청된 서비스를 알지 못함

1. cmd 창을 실행 후, lsnrctl services 입력 하면 아래와 같이 출력 됩니다. ( Listener Service 상태 확인 )

2. tnsnames.ora, listener.ora 설정 확인

   기본적으로 DB를 설치할 때 localhost가 입력이 되어 있으며, 해당 부분을 ip로 변경 합니다.

    ip 확인 방법

    cmd > ipconfig > IPv4 주소 확인

   경로 : C:\app\product\12.1.0\dbhome_1\NETWORK\ADMIN

Listener.ora

# listener.ora Network Configuration File: C:\app\NOHSUHYUK\product\12.1.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:\app\NOHSUHYUK\product\12.1.0\dbhome_1)
      (PROGRAM = extproc)
      (ENVS = "EXTPROC_DLLS=ONLY:C:\app\product\12.1.0\dbhome_1\bin\oraclr12.dll")
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.31.80)(PORT = 1521))	// 해당 부분 HOST 변경
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )

Tnsname.ora

# tnsnames.ora Network Configuration File: C:\app\NOHSUHYUK\product\12.1.0\dbhome_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.

LISTENER_ORCL =
  (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.31.80)(PORT = 1521))// 해당 부분 HOST 변경


ORACLR_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
    (CONNECT_DATA =
      (SID = CLRExtProc)
      (PRESENTATION = RO)
    )
  )

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.31.80)(PORT = 1521))// 해당 부분 HOST 변경
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

시작 프로그램 > 검색창 > 서비스로 들어가게 되면 존재하는 OracleOraDB12HomeTNSListener 와 OracleServiceORCL을 다시 실행 시킵니다.

PORT 1521은 Oracle 설치 시, 기본 포트이며, HOST를 현재 IP와 동일하게 맞출 경우, 성공적으로 접속 할 수 있게 됩니다.