오라클 네트워크 연결 가이드[기초]

반응형

오라클 네트워크 연결 완벽 가이드: Listener.ora & Tnsnames.ora

오라클 데이터베이스를 원격으로 연결할 때 가장 핵심이 되는 두 가지 설정 파일, listener.oratnsnames.ora에 대해 알아보겠습니다. 이 설정은 서버와 클라이언트 간의 통신 통로를 열어주는 아주 중요한 단계입니다.

쉽게 이해하기

  • Listener.ora: 외부 손님을 맞이하는 서버의 '안내 데스크'
  • Tnsnames.ora: 서버를 찾아가기 위해 클라이언트가 가진 '주소록'

1. 사전 준비: 방화벽 포트 개방

오라클의 기본 통신 포트는 1521입니다. 설정 전 서버 환경에서 해당 포트가 열려 있는지 확인해야 합니다.

# 리눅스 방화벽 포트 1521 오픈 및 설정 적용
firewall-cmd --zone=public --add-port=1521/tcp --permanent
firewall-cmd --reload

2. 서버 측 설정: listener.ora

서버에서 실행되는 리스너의 정보입니다. 파일 위치: $ORACLE_HOME/network/admin

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

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (ORACLE_HOME = /u01/app/oracle/product/11.2.0.4/db_1)
      (SID_NAME = orcl)
    )
  )

멀티테넌트(Multi-Tenant) 환경의 경우

오라클 12c 이상에서는 하나의 리스너에 여러 PDB를 등록하거나, PDB별로 리스너를 분리할 수 있습니다.

  • 방법 1 (통합): 하나의 SID_LIST 안에 여러 SID_DESC(CDB, PDB1, PDB2)를 나열합니다.
  • 방법 2 (개별): 각 PDB마다 다른 이름과 포트(1522, 1523 등)를 가진 리스너를 정의합니다.

3. 클라이언트 측 설정: tnsnames.ora

클라이언트 PC에서 원격 서버로 접속할 때 사용하는 별칭(Alias)을 정의합니다.

# ORA12C 서비스 접속 설정
ORA12C =
 (DESCRIPTION = 
   (ADDRESS_LIST =
     (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.9)(PORT = 1521))
   )
   (CONNECT_DATA =
     (SERVICE_NAME = ORA12C)
   )
 )

# ORA11G 서비스 접속 설정
ORA11G =
 (DESCRIPTION = 
   (ADDRESS_LIST =
     (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.9)(PORT = 1521))
   )
   (CONNECT_DATA =
     (SERVICE_NAME = ORA11G)
   )
 )

4. 리스너 관리 및 접속 테스트

명령어 설명
lsnrctl start 리스너 프로세스 시작
lsnrctl status 현재 리스너 상태 및 등록 서비스 확인
lsnrctl stop 리스너 중지

접속 테스트

sqlplus scott/password@ORA12C

실무 꿀팁 (Troubleshooting)

  1. TNSPING 활용: tnsping 서비스명 명령어로 네트워크 구간에 문제가 없는지 먼저 확인하세요.
  2. 동적 등록(Dynamic Registration): DB가 켜진 후 리스너에 등록되기까지 시간이 걸릴 수 있습니다. alter system register; 명령어로 강제 등록이 가능합니다.
  3. 호스트명 확인: listener.ora에 호스트명을 썼다면 클라이언트의 /etc/hosts 파일에도 등록되어 있어야 합니다.

 

반응형