본문 바로가기

Web Develop Tech/Oracle9i Fundmantal II

ORACLE - Net Server 측 구성

Oracle Net Server 측 기본 구성


▶ Listener Process

    • 리스너는 클라이언트가 필요한게 아니라, 서버가 필요한 요소 입니다.
    • 리스너는 DB의 시작/종료 상태와는 상관없이 따로 구성되어야 합니다.
    • 클라이언트 서버 구분 없이 양쪽 모두 필요한 파일은 sqlnet.ora 입니다.
    • 이것은 특정한 정보를 기록하는 나머지 네트워크 기능과 관련된 파라미터를 설정하는 파일입니다.
    • 기존에 네트워크 관련 파라미터를 설정할 경우 이 sqlnet.ora 파일은 어디에서나 필요하다
  • Listener와 Listener.ora 파일
  • Listener 의 특성
    • 둘 이상의 Database에 대해 수신할 수 있습니다.
    • 여러 Listener가 단일 Database를 수신하여 로드 밸런싱을 수행합니다.
    • - 만약, DB는 하나고, 접속하려는 사용자가 굉장히 많다면 수분의 시간이 걸릴 수도 있습니다.
    • - 이 리스너를 설정하면, 다중사용자의 접속도 원활하게 가능하게 합니다.
    • Listener는 여러 프로토콜을 통해 수신할 수 있습니다.
    • Oracle Net에 있는 Listener의 기본 이름은 LISTENER입니다.
    • - 오라클을 설치하면 이름이 LISTENER인 리스너가 존재합니다.
    • - 이 리스너는 메뉴얼로 설정할때는 Listener의 주소와 정보가 자동으로 설정됩니다.
    • - TCP/IP 1521포트를 기본으로 사용하는 리스너가 만들어져 있다.
    • Listener이름은 listener.ora파일에 대해 고유해야 합니다.
    • - DB가 여러개라 하더라도, 리스너는 하나의 오라클에 한번 만들어지는 파일이므로,
    • - 하나만 수신을 할 수 있고, 하나만 사용가능합니다.
    • - 동일한 포트를 사용하면 되지 않고, 다른 리스너를 내부에서 가동하더라도, 포트번호는
    • 같게하면 안된다.
  • 연결방식
    • 연결할 때 서버프로세스가 연결을 생성하고, 리스너를 수행한다.
    • 클라이언트가 Server에 대한 연결을 요청하면 Listener는 다음 중 하나를 수행한다.
    • Server Process를 생성하고, 연결을 계승(전달)한다.
    • - 스폰 & 비퀴스 방식
    • Oracle Shared Server 구성에서 Dispatcher로 연결을 전달한다.
    • - 디스패쳐는 생성이 아니라, 파라미터로 구성해서 시작할때 백그라운드로 수행된다.
    • - 리스너가 접속을 시작하면, 디스패쳐가 시작해서, 클라이언트로 연결을 재지정하여 접속.
    • - Redirect 방식
    • 운영체제나 플랫폼에 따라서 설정방식이 조금 달라질 수 있다. 즉, Direct handoff 방식과 Spawn and Bequeath 연결방식이 달라질 수 있다는 말.
    • 그림 설명 : Spawn and Bequeath and Direct Hand-Off Connections

      • Listener는 클라이언트의 요청을 받습니다.

      • 리스너는 리스너로부터 연결요청을 전달하는 Dedicated Server 를 시작하거나, 연결요청을 Dispatcher에 직접 전달합니다.

      • 클라이언트는 Dedicated Server 또는 Dispatcher에 직접 연결된다.

    • 재지정 세션(Redirect Session)

      • 클라이언트가 구성된 프로토콜을 사용하여 Listener에 연결하고 Listener에 연결 패킷을 전송한다.

      • Listener는 새로운 연결을 처리하기 위하여 새 스레드나 Process를 생성한 다음 Listener와 새 Process 또는 스레드 간에 IPC 연결이 설정된다.

      • 새 Process 또는 스레드는 사용자 정의 포트 목록에서 새 TCP/IP 포트를 선택하고 이 정보를 다시 Listener로 전달한다.

      • Listener가 이 새 포트를 다시 클라이언트로 전송한다.

      • 재지정 패킷에 지정된 주소로 새 연결이 설정된다.

    • 서비스 구성 및 등록

      • Listener는 다음의 두 가지 방식으로 구성할 수 있다.
        • Dynamic 서비스 등록
        • listener.ora 파일의 구성이 필요하지 않다.
        • Listener는 PMON Process에 의존한다.
      • Static 서비스 구성
        • Oracle8 및 이전 릴리스에서 사용
        • listener.ora 파일의 구성이 필요
        • Oracle Enterprise Manager 및 기타 서비스에 필요
    • Static 서비스 등록 :
      • * Oracle8 및 이전 릴리스에서 사용
      • * listener.ora 파일의 구성이 필요
      • * Oracle Enterprise Manager 및 기타 서비스에 필요
      • Oracle 소프트웨어 설치 시 listener.ora 파일에 대한 기본설정
        Listener 이름 : LISTENER
        포트 :1521
        프로토콜 : TCP/IP
        SID 이름: 기본 Instance
        Host 이름 : 기본 Host 이름
    • Static 서비스 등록 : listener.ora 파일
    • Static 서비스 등록 : listener.ora 파일
      • listener.ora 파일은 다음 Parameter를 포함한다.
        • LOG_DIRECTORY_listener_name
        • LOG_FILE_listener_name
        • LOGGING_listener_name
        • PASSWORD_listener_name : 누군가가 리스너를 종료시킬려고 할때, 암호를 요청하게끔 설정합니다.
        • SAVE_CONFIG_ON_STOP_listener_name : 말그래도, 종료시에, 설정파일(CONFIG)를 저장 시킵니다. 운영중에 리스너를 변경할 수 있는데, 이 변경은 종료후 다시 시작시엔 저장되지 않습니다. 그래서 파라미터를 설정하여, 다음에 시작할때에도 이전 리스너의 구성요소 그대로 시작할 수 있도록 해줍니다.
        • SID_LIST_listener_name
        • TRACE_DIRECTORY_listener_name
        • TRACE_FILE_listener_name
        • TRACE_LEVEL_listener_name : Trace의 레벨은 3가지, USER, ADMIN, SUPPORT
      • Trace 와 LOG
        • Log는 일어났던 모든 결과를 모두 기록합니다.
        • 반면 TRACE 는 추적자로서 LOG를 하면서 좀 더 상세한 정보를 남깁니다.
        • 하지만, Trace와 Log 를 둘다 활성화하게 되면, 성능이 저하된다.
        • 따라서, Trace는 기본적으로 OFF 시켜야 합니다. 하지만 LOG파일을 확인하다가 문제가 발생할 소지가 보일 경우, TRACE를 ON 시켜서 확인합니다
    • Dynamic 서비스 등록 : 등록 구성
      • 궁극적인 목적은 로드 벨런싱입니다. 로컬 디비 형태가 아니라면, 각각의 인스턴스들 의 부하를 막기위해 인스턴스 spfile에 디스패쳐 파라메터를 이용해 각 인스턴스 를 정의 해두면 CPU사용률을 비교해서 디스패쳐에 지정해준 인스턴스로 클라이언트를 분산시켜 주는 것입니다.
        • 서비스 등록을 위해서는 다음의 초기화 Parameter를 구성해야 한다.
          • SERVICE_NAMES : DB에 대한 다른 별칭을 부여해주는 것을 의미합니다.
          • INSTANCE_NAME : 말그대로 인스턴스의 이름. DB의 이름과 다르다.
        • Dynamic 서비스 등록 : Listener에 정보 등록
        • 기본적으로, PMON은 TCP/IP의 기본 로컬 주소인 포트 1521에서 Server의 로컬 Listener에 서비스 정보를 등록한다.
        • PMON은 다음 경우에 기본 Listener가 아닌 다른 Listener에 등록할 수 있다.
          • LOCAL_LISTENR 초기화 Parameter가 정의된 경우
              • [1] 예 ; 로컬리스너가 이름이 LISTENER인(Default Listener) 두개의 파라미터
                • Service_ nam
                • Instance_name
            • [2] 예 ; 로컬리스너가 Default가 아닌 경우
              • Local_Listener = TEST <-이렇게 추가를 해줘야 합니다.
            • [3] 예 ; 하나의 DB에 두개의 인스턴스가 존재한다(병렬서버)
              • Instance 1 : Instance 1 + Listener 1이 존재.
              • Instance 2 : Instance 1 + Listener 1이 존재.
              • (이미지 추가로 찍어서 추가할 것)
              • 병렬서버를 사용하면서 좋은 점은, 만약 Instance 2가 중지될 경우에 어떤 사용자가 손상된 Instance 2로 접속하더라도, Instance 1의 Instance 를 이용하여 DB 접속 및 사용이 가능합니다.
        • Oracle Shared Server에 대해 DISPATCHERS 초기화 Parameter의 LISTENERS 속성이 정의된 경우
  • Oracle9i JVM에 대한 Listener 구성 : HTTP
    • HTTP를 사용하는 클라이언트로부터 연결을 받아들이도록 Listener를 구성할 수 있다.
    • Database가 Oracle8i 또는 이전 버전이면 Oracle9i Listener가 사용되는 경우에도 Static Listener 구성을 사용한다.
    • Listener와 Database가 모두 Oracle9i 버전이면 서비스 등록 중에 Dynamic으로 구성이 수행된다.
    • Oracle Net Manager를 사용하여 구성할 수 있다.
  • Listener Control 유틸리티 (LSNRCTL) : Listener Control 유틸리티 명령은 명령행이나 LSNRCTL 프롬프트에서 실행할 수 있다.
    • Unix 명령행 구문: $ lsnrctl <command name>
      프롬프트 구문 : LSNRCTL> <command name>
      기본이 아닌 Listener 제어 : LSNRCTL> SET current_listener listener02
  • LSNRCTL 명령
    • Listener 시작 : $lsnrctl START listener_name
      Listener 정지 : $lsnrctl STOP listener_name
    • 윈도우에서는 시작->실행->Services.msc 를 클릭하여, 서비스 응용도구를 이용하여, 리스너를 싲가하고 정지할 수 있습니다.



  • 추가 LSNRCTL 명령
    • CHANGE_PASSWORD
      EXIT
      HELP : 리스너 명령어 도움말 모음


      QUIT : 리스너를 빠져나감
      RELOAD
      SAVE_CONFIG
      SERVICES
      SET Parameter
      SHOW Parameter
      STATUS
  • LSNRCTL SET 및 SHOW 수정자
    • SET으로 Listener Parameter 변경 :LSNRCTL> SET trc_level ADMIN
    • SHOW로 Parameter의 값 표시 :LSNRCTL> SHOW trc_directory
  • LSNRCTL SET 및 SHOW 수정자
    • SET CURRENT_LISTENER
      SET LOG_DIRECTORY
      SET LOG_FILE
      SET LOG_STATUS
      SET PASSWORD
      SET SAVE_CONFIG_ON_STOP
      SET TRC_DIRECTORY
      SET TRC_FILE
      SET TRC_LEVEL

Oracle Net Manager를 이용한 리스너 설정


[1] 시작->모든 프로그램->Oracle OraHOME -> Configuration and Miguation Tools -> Net Manager를실행합니다.

[2] Net Manager 의 메인화면입니다.



[3] 기존에 설치된 리스너의 정보를 여기서 볼 수 있으며, 추가적으로 변경할 수도 있습니다.



[4] 리스너 폴더를 선택하고, 좌측에 + 기호를 클릭하면 새로운 리스너를 추가할 수 있습니다.



[5] 중복되지 않을 이름으로 작성합니다.



[6] 추가된 리스너를 클릭하고 수신위치 등을 지정합니다. 중앙 하단을 보시면 "주소 추가"가 있습니다. 클릭



[7] 서버의 정보에 맞는 주소를 입력합니다.



[8] 다음으로 데이터베이스 서비스를 추가합니다.


[9]서버의 데이터베이스 정보에 맞게 입력하도록 합니다.

# 이렇게 하면, 성공적으로 리스너를 등록/제거/수정을 할 수 있습니다.

차암~ 쉽죠잉~~~~~~~~~~~~~~~~♬