[Oracle] Oracle Net Concept (오라클 넷)

Last Updated on 5월 25, 2021 by 태랑(정현호)


크게 오라클에 접속 하는 방법에는 두가지가 있을 수 있다.
그 중 하나는 텔넷등을 이용해서 운영체제에 먼저 접속을 한후 데이터베이스에
접속하게 되는 경우이고 다른 하나는  툴을(Toad/Golden/Sqlplus) 이용하여 데이터베이스에
직접 접속하는 방법이 있다. 툴을 이용할 경우 오라클 넷을 이용하게 된다.

 오라클 넷은 다음과 같은 특징을 갖는다.

 0. 프로토콜에 독립성
 0. 광범위한 플랫폼 지원
 0. 추적 및 진단 제공
 0. 기본 보안 제공

 이러한 오라클 넷을 사용하기 위해서는 4가지 이름 지정 방식 중 하나를 선택하여야 한다.
보통 로컬 이름 방식이 보편적으로 사용되어 진다.

 이름 지정 방식에는 다음과 같은 4가지가 있다.

 0. 호스트 이름 방식
  :: 대상 DB의 호스트 이름 또는 IP를 이용하여 접속
 
 0. 로컬 이름 방식
  :: 클라이언트에 존재하는 Tnsnames.ora 파일에 등록된 대상 DB의 정보를 이용하여 접속하는 방식이다.
 
 0. 디렉토리 이름 지정 방식
  :: 별도로 존재하는 디렉토리 서버에서 DB의 정보를 모두 관리하는 방식이다.
 
 0. Oracle Names 방식
  :: 오라클에서 제공하는 디렉토리 이름 지정 방식

 오라클 넷을 사용하기 위해서는 다음의 5개의 파일이 필요하다.

 0. ldap.ora
  :: 디렉토리 서비스를 사용할 경우 클라이언트와 DB서버에 존재하며 해당 디렉토리 서버를 액세스 할 수 있는 정보를 저장한다.

 0. names.ora
  ::  Oracle Names 방식의 오라클 디렉토리 이름 지정 방식을 이용할 경우 서버에서 모든 DB 정보를 저장하고 있는 파일이다.

 0. tnsname.ora
  :: 클라이언트에 존재하며, DB의 정보를 저장하고 있는 파일로 로컬 이름 방식을 사용할 경우 이용하게 된다.

 0. listener.ora
  :: DB 서버에 존재하는 파일로 접속을 요청하는 클라이언트와 실제 DB를 연결해 주는 역할을 수행하는 리스터 프로세스의 정보를 저장하는 파일이다.

 0. sqlnet.ora
  :: 클라이언트와 DB 서버 양쪽에 존재하는 파일로 오라클 넷의 옵션 설정 저장

오라클 넷을 구성하는 파일들은

리눅스/유닉스의 경우 $ORACLE_HOME/network/admin에 존재하며,

Windows의 경우 %ORACLE_HOME%/network/admin 애 존재한다.

다음은 로컬 이름 방식에서 구조 및 절차이다.

1) 접속 요청을 하게되면 클라리언트에 유저 프로세스가 생성된다.
해당 유저 프로세스는 그림에서 1과 같이 지정된 위치에 존재하는
tnsnames.ora 파일로 부터 접속하고자 하는 데이터베이스에 대한 정보를 획득한다.
(tnsnames.ora 파일에는 접속하고자 하는 DB의 서버와 IP, 포트 등 접속을 위한 기본 정보들이 기록 되어 있다.)

 2) 1)에서 획득한 정보로 접속을 시도 하면 listener.ora 파일의 정보를 이용해 미리
기동되어 있는 리스너 프로세스가 그림에서 2와 같이 유저 프로세스 요청을 수신한다.

 3) 리스너 프로세스는 해당 요청을 처리하기 위해 그림에서 3과 같이 서버프로세스를 가동 시킨다.

 4) 리스너 프로세스는 해당 서버 프로세스에 대한 정보를 유저 프로세스에게 전달한다.

 5) 서버 프로세스의 정보를 전달받은 유저프로세스는 리스너와 연결을 끊고 그림에서 5와 같이 서버 프로세스와 직접 통신하면서 작업에 대한 결과를 받는다.

 결국 로컬 이름 방식에서는 클라이언트의 tnsmanes.ora 파일과 DB서버의 listener.ora 파일만 올바르게 설정되고 존재하면 접속이 가능하다.

연관된 다른 글

 

답글 남기기