반응형
오라클 네트워크 연결 완벽 가이드: Listener.ora & Tnsnames.ora
오라클 데이터베이스를 원격으로 연결할 때 가장 핵심이 되는 두 가지 설정 파일, listener.ora와 tnsnames.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)
- TNSPING 활용:
tnsping 서비스명명령어로 네트워크 구간에 문제가 없는지 먼저 확인하세요. - 동적 등록(Dynamic Registration): DB가 켜진 후 리스너에 등록되기까지 시간이 걸릴 수 있습니다.
alter system register;명령어로 강제 등록이 가능합니다. - 호스트명 확인:
listener.ora에 호스트명을 썼다면 클라이언트의/etc/hosts파일에도 등록되어 있어야 합니다.
반응형