오라클의 인스턴스로 접속을 가능하게 해주는 다음과 같은 세가지 영역이 존재한다.

  • 사용자 프로세스
  • 오라클 리스너 (Oracle Listener)
  • 오라클 넷클라이언트(Oracle Net Client)

사용자 프로세스는 데이터 베이스로의 접속을 시도하는 일종의 소프트웨어로서,

데이터 베이스와의 통신에 오라클 넷 서비스 를 이용한다.

※ 오라클 넷 서비스

다양한 네트워크 와이어-레벨 프로토콜을 통한 통신을 지원하는 컴포넌트의 집합이며, 개발자나 데이터베이스 운영자가

여러가지 다른 하드웨어 플랫폼에서의 환경을 설정하는 복잡한 작업을 대신한다.

예를 들어 윈도우 2000서버에서 레지스트리를 편집하거나 리눅스 서버에서 환경설정 파일을 편집하는 대신에

오라클에서는 몇가지 간단한 설정파일(오라클의 설치된 경로에 특정영역에 있는)을 이용해서 오라클 넷을 관리한다.

오라클은 오라클 넷 서비스를 설정하는 작업을 위해 Oracle Net Manager 와 Oracle Net Configuration Assistant 와 같은

툴을 제공한다.

오라클 리스너 (Oracle Listener)는 오라클 데이터베이스 서버에서 실행되는 프로세스이며, 클라이언트 어플리케이션에서 보내는 접속 요청을 청취하는 역할을 한다.

클라이언트는 청취자로 보내는 초기 접속요청에 서비스의 이름을 지정해야 한다.

이 서비스의 이름은 클라이언트가 접속하려는 데이터베이스의 인스턴스를 구별해주는 식별자이다.

※ 오라클 리스너 설정

오라클 리스너의 설정을 수동으로 변경하고자 한다면 listener.ora 파일을 찾아서 설정정보를 변경하면 된다.

Unix 의 경우 $ORACLE_HOME/network/admin 에서 찾을 수 있고,

윈도우의 경우 %ORACLE_HOME%\network\admin 에서 찾을 수 있다.

두 운영체제에서 모두 TNS_ADMIN 이란 환경변수를 만들고 오라클 넷 서비스 파일이 위치한 디렉토리를 가리키도록 할 수 있다.

=== >> 리눅스에서의 listener.ora 예 << ===

TCP/IP 프로토콜로 slaphappy.us.oracle.com 의 1521 포트를 청취할 리스너 프로세스 이다.

LISTENER 는 데이터베이스를 설치할 때 지정되는 오라클 리스너의 표준 이름이지만, 다른 포트들을 청취하는

여러개의 리스너를 다른 이름으로 만들 수 있다.

LISTENER =

(ADDRESS_LIST=

(ADDRESS=(PROTOCOL=tcp)(HOST=slaphappy.us.oracle.com)(PORT=1521))

)

SID_LIST_LISTENER는 LISTENER 에 연결하는 클라이언트에 제공할 수 있는 서비스들을 지정한다.

SID는 시스템 식별자 이며,

SLAPDB는 전역 데이터 베이스 이름,

US.ORACLE.COM은 설치시에 데이터베이스에 할당된 전역 데이터베이스 도메인,

SLAPDB는 설치시에 데이터베이스에 할당된 인스턴스 이름,

ORACLE_HOME은 오라클 데이터베이스가 설치된 경로 이다.

SID_LIST_LISTENER=

(SID_LIST=

(SID_DESC=

(GLOBAL_DBNAME=slapdb.us.oracle.com)

(SID_NAME=slapdb)

(ORACLE_HOME=/u01/app/oracle/oracle10g)

)

)

lsnrctl라는 유틸을 이용하면 리스너가 실행되는 동안 리스너의 설정을 변경할 수 있는데

STOP,START,RELOAD,STATUS,SHOW(파라미터),SET(파라미터)등과 같은 작업을 제공하는 명령어라인 어플리케이션이다.

리스너의 세팅을 listener.ora에 기록할지를 오라클 넷 서비스에게 알려주는 역할을 한다.

SAVE_CONFIG_ON_STOP_LISTENER = ON

리스너의 로그파일의 위치를 지정한다.

LOG_FILE_LISTENER=lsnr.log

LOG_DIRECTORY_LISTENER = /u01/app/oracle/oracle 10g/network/log

오라클의 넷 컴포넌트들에 대한 부가적인 정보를 제공한다.

TRACE_FILE_LISTENER = lsnr

TRACE_DIRECTORY_LISTENER = /u01/app/oracle/oracle 10g/network/log

이 항목이 OFF이면 리스너에 어떤 일이 일어나도 추적파일에 정보를 기록하지 않는다.

USER - 사용자 접속에 의해 발생한 오류에 대한 정보를 기록한다.

ADMIN - 리스너의 설치와 설정에 관련된 문제만을 보여줄 수 있도록 추적정보를 기록한다.

SUPPORT - 이척적은 오라클 서비스지원(OSS:ORACLE SERVICE SUPPORT)을 호출할 때 이용된다.

이때 생성된 추적정보는 OSS로 전달되어 문제 해결에 이용될 수 있다.

TRACE_LEVEL_LISTENER = OFF

서버와 마찬가지로 오라클 클라이언트 툴 역시 네트워크 상의 데이터 베이스와 통신 할 수 있도록 하는 설정이 필요하다.

클라이언트를 위한 설정파일은 tnsnames.ora 이다.

이 설정 파일의 내부에는 오라클의 툴이 데이터베이스에 접속하는 데 이용되는 접속 설정 리스트가 포함되며, 접속 설정은

서버의 호스트 이름과 서버와의 통신에 이용된 프로토콜 리스너와의 통신에 이용된 포트 등을 지정한다.

=== >> tnsnames.ora << ===

SLAPDB.US.ORACLE.COM =

(DESCRIPTION =

(ADDRESS_LIST =

( ADDRESS = (PROTOCOL = TCP)

(HOST = slaphappy.us.oracle.com)

(PORT = 121)

)

)

)


'먹고살기 > Oracle' 카테고리의 다른 글

[ORACLE] 데이터베이스 시작의 3단계 설명  (0) 2011.04.22
오라클 변환함수 ( TO_CHAR )  (0) 2011.04.22
오라클 메모리  (0) 2011.04.22
오라클 내부의 구조  (0) 2011.04.22
PTW-1- Oracle Memory (SGA, PGA, UGA)  (0) 2011.04.22