티스토리 뷰

네트워크 파일

네트워크에 관한 파일에는 「tnsnames.ora」「sqlnet.ora」「listener.ora」 3가지가 있다.

기본적으로 %ORACLE_HOME%\network\ADMIN\에 있다.

이 위치를 변경하고 싶으면 「TNS_ADMIN」 환경 변수로 폴더를 지정하면 된다.

 

■ tnsnames.ora 파일 - 실무에서 주로 호스트명으로 설정해서 사용

tnsnames.ora 파일은 클라이언트 측에 두는 파일로 로컬 네이밍 구성의 네트워크에서 사용한다.

Oracle에서 데이터베이스에 접속할 때는 "connect system/manager@oradb" 등으로 적는데

@이후의 문자 부분을 연결 식별자라고 해서 연결하려는 데이터베이스를 의미한다.

 

호스트 네이밍 구성의 경우는 호스트명(서버명)이 되기 때문에 해당 호스트 명을 사용해 연결할 수 있지만, 

로컬 네이밍 구성인 경우 oradb의 부분을 @이후에 지정하고, 여기서 적었는 호스트나 port를 이용해 연결한다.

 

<tnsname.ora설정 예>

oradb =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.11)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = DB01)
    )
  )
파라미터 설명
oradb (임의로 정한 호스트서비스명) 호스트서비스명. 연결할 때의 @이후의 명칭임
ADDRESS 연결할 리스너의 연결정보
기본적으로 PROTCOL은 TCP인 상태로 변경하지 않음.
HOST는 Oracle이 설치되어 있는 머신을 지정한다.
PORT 번호는 기본 1521이지만, 하나의 머신 위에 여러개의 DB 서버를 두는 경우 각각의 DB 서버에 대해 별도의 포트 번호를 할당해야한다.
CONNECT_DATA 연결할 DB의 SID
SERVER=DEDICATED 공유 서버 구성할 때 전용 서버 연결시 지정

 

 

■ sqlnet.ora 파일 - 이거는 실무에서 한 번도 건드려본 적이 없음

sqlnet.ora 파일은 클라이언트와 서버에 필요한 네트워크 파일로 (로컬 네이밍 구성의 경우 클라이언트 측에는 불필요)

사용할 네이밍 메서드의 우선 순서나 기본 도메인 이름을 지정한다.

 

<sqlnet.ora 설정 예>

SQLNET.AUTHENTICATION_SERVICES = (NTS)
NAMES.DIRECTORY_PATH = (TNSNAMES, HOSTNAME)
NAMES.DEFAULT_DOMAIN = winsrv

・sqlnet.ora에서 사용하는 파라미터

파라미터 설명
SQLNET.AUTHENTICATION_SERVICES NONE/ALL/NTS 중 하나
NAMES.DIRECTORY_PATH 네이밍 메서드의 우선 순서를 지정.
왼쪽부터 순서대로 해결.
· TNSNAMES : 로컬 네이밍
· HOSTNAME : 호스트 네이밍
NAMES.DEFAULT_DOMAIN 연결 식별자에 도메인이 생략된 경우 기본 도메인

 

■ listener.ora 파일

리스너는 클라이언트에서 DB 연결 요청을 받는 프로세스를 말한다.

이 파일에서 리스너를 설정할 수 있다.

 

클라이언트에서의 연결은 모두 리스너가 받고 리스너가 어느 데이터베이스에 연결하면 좋은지 판단한다.

연결할 데이터베이스를 이 리스터 파일에 기술한다.

이 파일은 서버 측에 두는 파일이다.

 

리스너명은 listener.ora 파일 내에서 유일해야 한다. 또한 기본 리스너를 사용할 때에는 해당 파일이 없어도 괜찮음.

 

<listener.ora 설정 예>

LISTENER =      //:리스너명
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
      )
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = TCP)(HOST = dbsrv)(PORT = 1521))
      )
    )
  )

SID_LIST_LISTENER =      //:연결할 데이터베이스
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = DB01)
      (ORACLE_HOME = C:\oracle\ora90)
      (PROGRAM = extproc)
    )
    (SID_DESC =
      (GLOBAL_DBNAME = db01.world)
      (ORACLE_HOME = C:\oracle\ora90)
      (SID_NAME = DB01)
    )
  )

LOGGING_LISTENER = ON
LOG_FILE_LISTENER = listener.log
PASSWORDS_LISTENER = password
TRACE_FILE_LISTENER = listener.trc
TRACE_LEVEL_LISTENER = OFF

・listener.ora에서 사용하는 파라미터

파라미터 설명
GLOBAL_DBNAME 정적 서비스 구성이면 SERVICE_NAMES 파라미터 값
SID_NAME 인스턴스를 식별하는 ORACLE_SID를 설정
ORACLE_HOME 오라클이 설치되어 있는 루트 경로 지정
LOGGING_LISTENER 로그 출력(활성화/비활성화)
※ 디폴트 : ON
LOG_FILE_LISTENER 로그 파일명
※ 디폴트 : listener.log
LOG_DIRECTORY_LISTENER 로그 파일을 작성하는 디렉토리
PASSWORDS_LISTENER lsnrctl 프롬프트 시작할 때 인증용 비밀번호
TRACE_FILE_LISTENER 트레이스 파일명
※ 디폴트 : listener.trc
TRACE_DIRECTORY_LISTENER 트레이스 파일을 작성하는 디렉토리
TRACE_LEVEL_LISTENER 트레이스 기능 설정(OFF/USER/ADMIN/SUPPORT)
※ 디폴트 : OFF

※ ↑굵은 글씨의 LISTENER는 리스너명이 들어가야 한다.

디폴트의 리스너를 쓰는 경우에는 LISTENER 그대로 놔둬도 괜찮다.

'Oracle > [oracle] DB 네트워크' 카테고리의 다른 글

[Oracle] OracleNetServices  (0) 2022.05.20
[Oracle] 리스너(Listener) 명령(Command)  (0) 2022.05.18
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함