본문 바로가기
IT/Oralce work shop 1

[오라클] network 설정

by BlowIt 2011. 10. 24.

네트워크 설정에 필요한 파일들을 보면
1. listener.ora
2. tnsnames.ora
3. sqlnet.ora

크게 위의 3가지 파일이 있다.
파일의 위치는 $ORACLE_HOME/network/admin 에 위치한다.
오라클 설치를 막 끝냈다면 아무런 네트워크 설정이 되어있지 않을 것임으로 파일이 존재하지 않을 수도 있다.
그렇다면 vim 편집기로 만들어 주면된다.
** 주의할 것은 파일이름이나 파일의 내용에 절대로

오타가 있어서는 안된다



서버측 : listener.ora, sqlnet.ora
클라이언트측 : tnsnames.ora, sqlnet.ora

서버측에는 listener.ora 파일이 필수적이고 어떤 프로토콜, 포트번호를 사용할 것인지 등을 명시한다.
클라이언트측은 tnsnames.ora 파일이 필수적이다. 안의 network alias를 설정해 그 이름으로 서버에 접속을 한다.
** 기본적인 tnsnames.ora의 alias를 이용한 접속방법
   - 클라이언트 측에서 서버측으로 접속할 때 ip또는 machine name으로 식별하고 어느 port로 들어갈 것인지를 판단한다.
      또한 protocol은 어떤 것을 쓸 것인가가 매칭되야 접속이 가능하다. 이 때 해당포트는 개방되어 있어야하고 방화벽의 문제로
      접속이 안될 수도 있다. ping test를 통해서 문제를 확인한다.
      ex) SQL> connect hr/hr@orcl 또는 $sqlplus hr/hr@orcl
           의 명령어로 orcl측으로 접속하게 된다.

일반적인 listener.ora의 형태

listener=
  (address=(protocol=tcp)(host=localhost.localdomain)(port=1521))

  sid_list_listener=
    (sid_list=
      (sid_desc=
         (oracle_home=/u01/app/oracle/product/10.2.0/db_1)
         (sid_name=NEWDB1)
      )
      (sid_desc=
         (oracle_home=/u01/app/oracle/product/10.2.0/db_1)
         (sid_name=orcl)
      )
    )

LSNR2=
(address=(protocol=tcp)(host=localhost.localdomain)(port=1522))
--------------------------------------------------------------------------------
listener.ora의 listener는 기본포트인 1521 사용하며 정적으로 listener를 통해 받을 sid_list를 정의하고 있다.
반면 LSNR2는 아무런 해당사항이 없는데 이는 동적으로 sid를 받기 위함이다. 기본포트인 1521을 제외한 
포트번호를 이용해 동적으로 sid를 받기 위해서는  tnsnames.ora에 명시적으로 적어줘야
LSNR2를 사용할 수 있음을 기억해야한다. 붉은색의 alias가 같음을 확인한다.
--------------------------------------------------------------------------------

일반적인 tnsnames.ora의 형태

LSNR2=
  (address=(protocol=tcp)(host=localhost.localdomain)(port=1522))

NEWDB1=
  (description=
    (address=(protocol=tcp)(host=localhost.localdomain)(port=1521))
    (connect_data=
      (service_name=NEWDB1)
      (server=dedicated)
    )
  )
NEWDB1_s=
  (description=
    (address=(protocol=tcp)(host=localhost.localdomain)(port=1522))
    (connect_data=
      (service_name=NEWDB1)
      (server=shared)
    )
  )
--------------------------------------------------------------------------------
tnsnames.ora에는 접속할 서버가 dedicated인지 shared인지 명시적으로 적어줄 수 있는데
shared 서버를 구성하기 위해서는 서버측에서 connection pooling을 위한 dispatcher를
설정해놓아야 한다. 해당 파라미터는
  - local_listener
  - dispatchers
  - sessions
  - shared_servers
등이 존재한다.

- connection pooling이란
 서버에 가용한 세션을 정해놓으면 dedicated는 한 번 점유한 listener를 놓치 않는다.
 shared서버에서는 이 문제를 해결하기 위해 queue를 구성 후 접속한 순서대로 줄을 세워놓고 
 먼저 접속한 순서대로 접속시킨다. 여기에서 접속할 수 있는 것은 그 순간 listener를 사용하지
 않는 session의 것도 접속대상이 된다. 따라서 가용한 모든 공간을 활용할 수 있음을 의미한다.
-------------------------------------------------------------------------------- 

- 3-tier 구성
  사용자 - 웹서버 - DB서버
  사용자는 1차적으로 웹서버에 접속하므로 DB서버의 존재유무를 눈치채지 못하고 사용하게 된다.

'IT > Oralce work shop 1' 카테고리의 다른 글

[오라클] PCT_USED, PCT_FREE  (0) 2011.11.01
[오라클] shrink  (0) 2011.11.01
[오라클] 클러스터링 팩터  (0) 2011.10.26
[오라클] 수동 database 생성  (0) 2011.10.24
오라클 기본 구조  (0) 2011.06.25

댓글