오라클 리스너 포트 확인 - olakeul liseuneo poteu hwag-in

lsnrctl start  : 리스너 구동하기
lsnrctl stop  : 리스너 중단하기

이 명령어는 오라클이 설치되어 있는 서버에서 실행해야 한다. 당연 oracle 유저로 실행해야 먹을 것이다. 윈도우 커맨드모드에서 실행하는 client 용 명령어는 아니다.

2. 리스너 환경 파일

$ORACLE_HOME/network/admin  아래에 있는 listener.ora

3. tnsping 사용하여 외부에서 리스너 동작 확인하기

사용법 : tnsping TNS명

C:\Documents and Settings\SHCHOI>  tnsping DBDCBS1

TNS Ping Utility for 32-bit Windows: Version 10.2.0.1.0 - Production on 28-8월 -2008 12:25:17

Copyright (c) 1997, 2005, Oracle.  All rights reserved.

사용된 매개변수 파일:
C:\oracle\product\10.2.0\client_1\network\admin\sqlnet.ora

별칭 분석을 위해 TNSNAMES 어댑터 사용
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 111.60.1.61)(PORT = 1543))) (CONNECT_DATA = (SERVICE_NAME = DBDCBS1)))
확인(10밀리초)

여기서 사용한 DBDCBS1 는 tns명으로서 client pc의 $ORACLE_HOME/network/admin   아래에 있는 tnsname.ora 파일 속에 정의되어 있다. oracle 10g 의 경우 보통 C:\oracle\product\10.2.0\client_1\NETWORK\ADMIN  아래에 있다.

DBDCBS1 =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 111.60.1.61)(PORT = 1543))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = DBDCBS1)
    )
  )

위와 같은 파일을 직접 울트라에디터 같은 것으로 열어서 편집을 할 수도 있으나 주의할 점이 있다. tnsname명 앞에 스페이스 같은 문자가 끼어들어가면 안된다. 즉  "DBDCBS1=" 이라고 써야 되는데 실수로  " DBCBS1=" 이라고 D자 앞에 스페이스나 탭문자가 들어가면 제대로 인식되지 못 한다는 말이다.

오렌지나 토드 같은 SQL 쿼리 툴이 있다면 위의 그림과 같이 쉽게 tnsname.ora 파일을 편집할 수 있다.

그러나 위의 그림과 같이 오라클에서 기본 제공하는 tnsname설정하는 용도의 Net Configuration Assistant 프로그램이 있지만 사용하기가 약간 어렵워 초보자에게 혼란만 주게 된다.

C:\Documents and Settings\SHCHOI> tnsping DBDCBS1

TNS Ping Utility for 32-bit Windows: Version 10.2.0.1.0 - Production on 28-8월 -2008 12:34:39

Copyright (c) 1997, 2005, Oracle.  All rights reserved.

사용된 매개변수 파일:
C:\oracle\product\10.2.0\client_1\network\admin\sqlnet.ora

별칭 분석을 위해 TNSNAMES 어댑터 사용
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 111.60.1.61)(PORT = 154))) (CONNECT_DATA = (SERVICE_NAME = DBDCBS1)))
TNS-12541: TNS:리스너가 없습니다.

해당 지정된 포트에 리스너가 떠 있지 않을 경우 위와 같은 메시지를 볼 수 있다.

3. telnet 사용하여 외부에서 리스너 동작 확인하기

사용법 :

telnet  IP 포트번호

이 때 방화벽은 뚫려 있으나 해당 포트에 리스너가 떠 있지 않을 경우에는 "연결하지 못했습니다."  라는 메시지가 바로 나오고 방화벽으로 막혀 있다면 20여초 가량 지체되다가 연결하지 못 했다는 메시지가 나오게 된다.

이것은 tcp/ip 프로토콜의 특성상 해당 destination 장비로 연결이 되지 못 했을 경우 연결(패킷 전송)을 여러번 재시도를 하기 때문이다.
만약 지정된 포트에 정상적으로 리스너가 떠 있고 방화벽이 뚫려있다면 다음과 같은 black 화면이 뜰 것이다. 이것은 해당 포트에 떠 있는 daemon 프로세서에 접속이 되어 다음 전문을 기다리고 있는 상태이다.

이렇게 연결된 상황을 탈출하고자 한다면 CTRL+] 문자를 입력한다. (Ctrl을 누른 상태에서 ] 를 친다) 그런 후에 quit 를 입력하면 다시 커맨드 모드로 빠져나올 수 있다.

SQL툴을 사용하거나 자바에서 오라클 연결을 하려고 할 때 필요한 것이 포트번호와 SID(전역 데이터베이스 이름)이다. 이 두 가지는 설치 초기에 지정하게 되어있는데, 변경하지 않았다면 포트번호는 1521, SID는 orcl 이다.

그런데 만약 변경을 했는데 잊어버렸다던가 하는 문제가 발생할 수 있다. 이럴 경우에는 어떻게 알 수 있을까?

listener.org 파일 해 알내기

오라클을 설치하고 나면 listener.org이 생성되어 있다. 이 파일에는 각종 정보들이 들어있는데 여기에 포트와 SID가 입력되어 있다.

여기에서는 listener.org 파일이 있는 경로는 C:\app\admin\product\11.2.0\dbhome_1\NETWORK\ADMIN 이다. 보통 설치 경로가 다를 것이니 아래 경로를 보고 확인해 보면 된다.

  • 경로 : 드라이버:\app\사용자 계정\product\11.2.0\dbhome_1\NETWORK\ADMIN
  • 드라이버 : C, D, E 등..
  • 사용자 계정 : 윈도우 사용자 계정명

listener.org을 열어보면 SID와 포트가 있다. 

명령어를 통해 알아내기 

먼저 cmd에서 오라클 관리자 계정으로 접속을 해야 한다. 

  • 관리자 계정 : sys 또는 system
  • 비밀번호 : 본인이 설정한 비밀번호

  • 명령어 : sqlplus system/비밀번호

접속을 하였다면 다음 명령어를 통해 포트번호와 SID를 확인할 수 있다.

  • SID 확인 명령어 : select name from v$database;
  • 포트 확인 명령어 : select dbms_xdb.gethttpport() from dual;
  • 포트 변경 명령어 : exec dbms_xdb.sethttpport(변경할포트번호);

관련 게시물

Toplist

최신 우편물

태그