웹이야기

오라클 리스너 설정(쓸데없이 장황) 본문

D/ORACLE

오라클 리스너 설정(쓸데없이 장황)

yeon.Biju 2020. 2. 22. 20:15

이전에 오라클을 윈도우에서 설치를 해봤다.

https://webobj.tistory.com/23

 

오라클 설치(Windows 10, 11g)

윈도우에서 오라클 설치 Windows 10, Oracle 11g(Oracle Database 11g Release 2) 11.2.0.1.0 윈도우에서 오라클을 설치할려고 한다. 다음 다음 누르기만 하면 되니 어려운 것은 없지만 그래도 한번 정리해본다. 1..

webobj.tistory.com

리스너 설정등을 통해 외부에서 연결이 되도록 할 생각이다.

이 글의 요약본은 아래 글에 기술해놨다.

https://webobj.tistory.com/24

 

오라클 리스너 설정(요약본)

오라클 설치를 완료하고 나서 다른 pc에서 연결을 하기 위해서는(Toad 나 sql developer등으로 연결을 위해서) 리스너를 설정해야 한다. 여기서는 오라클 리스너 설정에 대한 자세한 내용보다는 오라클을 처음 설..

webobj.tistory.com

 

이 글은 좀 길게 작성해볼려고 한다. 매번 이상하게 헤맨다. 벌써 수십번은 해봤을텐데 말이다.

 

 

1. 방화벽을 열어준다.

오라클은 1521 포트를 사용하므로 1521 포트에 대한 방화벽을 열어준다. 

 

2. telnet 을 실행하여 다음 명령어를 입력해본다.

C:\Users\test>telnet localhost 1521

화면이 전환이 되면 1521 포트가 열린 것이고

화면이 전환되지 않고 

호스트에 연결할 수 없습니다. 포트 1521: 연결하지 못했습니다.

가 나오면 1521 포트가 열리지 않은 것이다.

 

3. toad를 설치해서 연결해본다.

오라클 설치한 pc에 Toad를 설치해서 아래 정보로 연결해본다. 

test 란 사용자를 추가하였고, 권한을 부여한 다음에

host 를 localhost 로 적고, 

Service name 에 orcl 이라고 적고 연결을 시도해본다.

orcl이라는 Service name은 윈도우에서 오라클 설치시 입력한 내용이다.

 

연결이 성공하였다.

 

4. 다른 pc에서 Host 부분에 ip를 입력하여 toad로 연결을 시도하니 

ORA-12170: TNS:Connect timeout occurred

와 같은 오류가 나오면서 연결이 되지 않는다.

간혹

ORA-12514: TNS:listener does not currently know of service requested in connect descriptor

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

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

 

위와 같은 오류도 나올 수도 있다. 

 

5. 설정파일을 수정한다.

설정파일의 경로는 C:\app\oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN 이다.

 

listener.ora, sqlnet.ora, tnsnames.ora 3개의 파일이 있는데 sqlnet.ora 파일의 경우 거의 수정하지 않는다.

그래도 한번은 수정할 일이 있을 수 있다. 예전에 sqlnet.ora 파일을 수정해서 해결한적이 있다.

 

listener.ora, tnsnames.ora 파일을 바탕화면으로 복사를 한다. 해당 경로에서 바로 수정하면

엑세스가 거부되었습니다. 라고 오류가 나온다. 

 

 

5-1 listener.ora 수정

 

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

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    )
  )

ADR_BASE_LISTENER = C:\app\oracle

 

라고 되어 있다.

아까 localhost는 연결이 되었으므로 localhost 부분이 들어간 것을 참고로 하여 수정을 한다. 

LISTENER = 
  (DESCRIPTION_LIST = 
    (DESCRIPTION = 
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) 
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) 
    ) 
  ) 

 

부분에서 localhost 를 ip로 변경하여 추가한다. 

 

그러면 파일 전체는 아래와 같은 모습이 된다.

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

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = IP)(PORT = 1521))
    )
  )



ADR_BASE_LISTENER = C:\app\oracle

 

 

 

5-2 tnsnames.ora 수정

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

LISTENER_ORCL =
  (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(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 = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

이 파일도 마찬가지로 localhost 로 기술되어 있는 2곳을 같은 방식으로 추가한다. 

 

LISTENER_ORCL =
  (ADDRESS = (PROTOCOL = TCP)(HOST = IP)(PORT = 1521))

 


ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = IP)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

 

위와 같이 2곳이다.

 

 

그럼 전체 파일은 아래와 같은 모습이 된다.

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

LISTENER_ORCL =
  (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))

LISTENER_ORCL =
  (ADDRESS = (PROTOCOL = TCP)(HOST = IP)(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 = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = IP)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )


파일을 복사해서 C:\app\oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN 경로에 잘 넣어준다.

 

 

6. 리스너 재시작

도스창을 관리자 권한으로 실행하여

> lsnrctl stop

> lsnrctl start 

를 하였는데 여전히 오류가 발생한다.

 

 

7. 컴퓨터를 재시작 하였다. 

이제 다시 연결해보니 연결이 잘 된다.

'D > ORACLE' 카테고리의 다른 글

Oracle JDBC drivers 다운로드  (0) 2020.02.25
Windows 10에서 1521 포트 열기  (0) 2020.02.24
오라클에서 사용자 추가  (0) 2020.02.24
오라클 리스너 설정(요약본)  (0) 2020.02.22
오라클 설치(Windows 10, 11g)  (1) 2020.02.21
Comments