OS

[Linux] Oracle Listener 와 Tnsname 개념 정리

파주상남자의 오답노트 ㅣ 2025. 4. 29. 15:30

반응형

✅ 1. Oracle Listener란?

Oracle Listener는 외부에서 오는 DB 접속 요청을 받아 Oracle DB에 연결해주는 네트워크 서비스임.

🔹 역할

  • 클라이언트가 DB 서버에 접속하려 할 때,
    • 어떤 DB 인스턴스를
    • 어떤 포트로
    • 어떤 프로토콜로 접속할지 중계함
  • 실제 연결 처리는 Oracle이 하고, Listener는 중개자 역할

🔹 동작 위치

  • 일반적으로 서버 측에서 백그라운드로 동작
  • 리눅스에서는 listener는 listener.ora 파일 기준으로 동작
  • 리스너 프로세스: tnslsnr

✅ 2. listener.ora 파일

리스너 설정이 저장된 파일. 보통 아래 경로에 존재함:

$ORACLE_HOME/network/admin/listener.ora

🔹 기본 예시:

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = dbserver)(PORT = 1521))
    )
  )

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = orcl)
      (SID_NAME = orcl)
      (ORACLE_HOME = /u01/app/oracle/product/19.0.0/dbhome_1)
    )
  )

🔹 주요 항목 설명

 

항목 설명
PROTOCOL 보통 TCP 사용
HOST DB 서버 IP 또는 호스트명
PORT 기본 포트는 1521
SID_NAME Oracle 인스턴스 이름
ORACLE_HOME Oracle 설치 경로

✅ 3. tnsnames.ora 파일

클라이언트 측에서 Oracle DB에 접속하기 위한 접속 정보(alias) 를 저장하는 설정 파일

🔹 위치

$ORACLE_HOME/network/admin/tnsnames.ora

🔹 예시

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

🔹 구성 요소 설명

항목 설명
ORCL 접속 별칭(alias), SQL*Plus 등에서 사용할 이름
HOST 접속할 DB 서버의 IP 또는 도메인
PORT 접속 포트
SERVICE_NAME DB 서비스 이름 (select value from v$parameter where name='service_names'; 로 확인 가능)

✅ 4. 접속 흐름 (Linux 기준)

[클라이언트]
  ↓ tnsnames.ora (접속 정보)
  ↓
[리스너가 열려 있는 Oracle 서버: 1521포트]
  ↓ listener.ora 기준으로 연결 판단
  ↓
Oracle 인스턴스와 접속

✅ 5. 리스너 관련 명령어

🔹 리스너 시작/정지/재시작

lsnrctl start
lsnrctl stop
lsnrctl reload # 설정파일 재반영

🔹 리스너 상태 확인

lsnrctl status

출력 예시:

Service "orcl" has 1 instance(s). Instance "orcl", status READY, has 1 handler(s) for this service...

✅ 6. 실무 팁 (Linux 기준)

  •  
리스너 로그 확인:
$ORACLE_BASE/diag/tnslsnr/<hostname>/listener/trace/listener.log

포트 확인:
netstat -tnlp | grep 1521

tnsnames.ora 없이 직접 접속:
sqlplus user/pass@//dbhost:1521/orcl

📌 핵심 요약

 

항목 설명
listener.ora 서버 측 리스너 설정
tnsnames.ora 클라이언트 측 접속 정보 설정
포트 기본 1521
리스너 명령 lsnrctl start/status/reload

 

반응형