강좌
클라우드/리눅스에 관한 강좌입니다.
데이터베이스 분류

Oracle 8i 네트워크 설정

작성자 정보

  • 웹관리자 작성
  • 작성일

컨텐츠 정보

본문

icon01.giftitle03.gif

글쓴이 : 노상근 sknho@deskpia.com

Database 설치에 웬 네트웍 ? 하실지도 모르겠다.   오라클은 클라이언트/서버 환경에서 수많은 고객을
     만족시켜온 데이터베이스이다.(지금도 많이 쓰이고 있지만).

     서버에 설치된 하나의 오라클 엔터프라이즈 에디션만 있으면 클라이언트는 아주 경량화된 클라이언트
     component만을 자신의 PC에 설치해서 오라클을 기반으로 한 응용 프로그램을 실행시킬 수 있다.
     이때 서버와 클라이언트간의 연결은 네트웍을 통하여 이루어지게
     된다.  

     이러한 Client/Server간의 통신을 위하여 설정해주어야 하는 부분이 바로 네트웍 설정이다.

     본격적인 설정에 앞서서 네트웍 설정에 나오는 용어 몇가지를 정리하도록 해보자.

1)  listener.ora : 클라이언트가 db에 접속하려 한다고 서버에게 말하면 서버는 그 요청을 들어야 한다.
     이 요청을 놓치지 말고 귀담아  듣도록 서버와 클라이언트간 통신 환경을 설정해주는 파일이라고 생각하면
    쉬울 것이다. 당연히 서버에 있어야 하겠고.

    client측이 오라클 서버로 접속할 수 있도록 필요한 프로토콜 및 포트번호(주로 1521) 를 설정해 주는
    파일로서 서버에 위치한다. protocol로서는 주로 tcp/ip가 사용될 것이다.

2) tnsnames.ora : client측에서 오라클 서버로 접속할때 필요한 프로토콜 및 포트번호, 서버주소, 인스턴스등을
   설정해주는 파일로서 클라이언트에 위치한다.

** linstener.ora와 tnsnames.ora는 둘다 Net8 configuration 작업을 해주면 자동으로 설정된 값에 의거하여
    만들어지는 파일들이다. 위에서 명시한바와 같이 둘의 이름은 다를지언정 추구하는 목적은 똑같다. (listener는
   서버용, tns는 클라이언트용)

 만일 A라는 서버가 B라는 서버에 접속하려 한다면 어떻게 해야할까 ?  이때 A라는 서버는 비록 이름은 서버지만
접속하려는 순간에는 B의 클라이언트가 된다.  그러므로 역시 접속하기 전에 tnsnames.ora를 만들어주어야 한다.

    이제 오라클 DB 설치도중 나오는 Net8 Configuration 설정과정을 예로 들면서 하나씩 알아보도록 한다.   
   오라클을 설치하다보면     Configuration tools라는 그래픽 박스가 나타나면서 이 과정이 수행된다.

 icon04.gif 가.  Net8 Configuration

       제일 먼저 화면에는 Listener configuration과 Naming Method configuration을 시작하고자 한다는 정중한
       메시지가 나온다. 말 그대로 Listner와 Naming Method를 설정하는 부분이다.   Next 버튼을 클릭하면 Listener의
      이름을 지어달라고 부탁하는 화면이 나올 것이다.  여기서 Listener의 이름 작명에 머리아파하지 말자.
      기본값으로 LISTNER라고 나올 것이다. 이걸 그대로 사용하면 된다.         
      (물론 사용자가 자기 이름으로 변경해도 된다.)  

      다음으로는 리스너 프로세서가 사용할 통신 프로토콜을 설정하자.  이부분은 자신의 시스템이 사용하는
      프로토콜을 선택하면 된다.(일반적으로 TCP/IP라 생각되는데...)

            TCP/IP Client Type 화면에서는 선택된 프로토콜이 어떤 클라이언트 유형에 적용될지를 선택할 수 있다.  
            일번적인 C/S환경에서는 'Net8 Client'를 선택한다.    인터넷과 관련된 클라이언트 유형이라면 IIOP
            Clients를 선택할 수 도 있다.  

             다음 화면에서는 사용할 TCP/IP Port number를 지정하게 된다.   기본값은 1521이 된다.
             
여기서 한가지 주의사항이 있다. 지정된 포트를 제대로 사용하려면 솔라리스의 etc/services 파일에 '
             listener 1521/tcp'라는 값이 설정되어 있어야 한다.   물론 여러분이 처음 오라클을 설치하였다면 설정이
            되어있을리 만무하다.   오라클 설치를 모두 마친후에,  파일을 열어서 꼭 설정해주도록 하자.
           (설정후에는 시스템을 리부팅해주어야 한다)

            만일 여러분이 설치한 오라클 서버에 수많은 사용자들이 동시에 접속해야 한다면 리스너 프로세서
           하나만으로는모자라는 경우가 생길 수 있다.  이 경우에는 리스너를 하나이상 설치해 주어야 한다.  
           'More Listner ?'화면에서는 이러할 때를 대비하여 복수 리스너를 설치할 수 있도록 해준다.
           그러나 일반적으로는 하나의 Listner로도 충분하므로 'No'를 선택하자.

           리스너 설치가 완료되면 다음으로는 Naming Method 설치메뉴가 나온다.  여러분이 속해있는 네트워크에
           여러개의 데이터베이스가 설치되어 운영중이라면 Named Server를 설치하여 오라클 데이터베이스에
           접속할때의 환경을 만들어 주어야 한다. 
           그렇지 않고 오라클 데이터베이스만을 사용한다면 이것 역시 'No'를 선택하고 넘어가면 된다.

           이것을 마치면 Net8 Configuration Assistance 설치가 모두 완료되었다는 화면이 나온다.

 icon04.gif 나.  리스너 동작상태 확인

       ** 주의 :  아래 사항은 오라클 데이터베이스 설치를 모두 마친후 오라클 사용자로 로그인하여 확인해야 한다.
           설치도중에 시도하면서 안된다고 고민하지 말것..  

            
   이제껏 설치한 서버의 리스너가 잘 동작하는지 동작상태를 확인해보자.

$ lsnrctl status 라는 명령을 주면 된다.

 
만약 protocal adapter error니 no listener니 하는 에러메시지가 잔뜩 나오면서 작동을 하지 않고 있으면 ...
 실망하지 말고 아래 명령어를 실행해보자.

$ lsnrctl start listener

작동을 멋지게 시작할 것이다.

그래도 작동을 하지 않는다면...  
위에서 언급한 etc/services 파일에 'listener 1521/tcp'라는 값이 설정되어
있는지를 확인해보자. 대부분 이것이 제대로 설정되어 있지 않아 일어나는 불상사이다.


  위의 과정을 거치게 되면 listener.ora 및 tnsnames.ora가 생성되는데 참고로 그 내용은 다음과 같다.
  화일들의 위치는 $ORACLE_HOME/network/admin에 있다.  확인해 보기 바란다.
 

# LISTENER.ORA Network Configuration File: /oracle/app/oracle/product/8.1.7/network/admin/listener.ora
 # Generated by Oracle configuration tools.

    LISTENER =
     (DESCRIPTION_LIST =
       (DESCRIPTION =
         (ADDRESS_LIST =
           (ADDRESS = (PROTOCOL = TCP)(HOST =
              kimhg.rush.co.kr)(PORT = 1521)))
                                (ADDRESS_LIST =
                                   (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
                                 )
                               )
                             ) 

                           SID_LIST_LISTENER =
                             (SID_LIST =
                               (SID_DESC =
                                 (SID_NAME = PLSExtProc)
                                 (ORACLE_HOME = /oracle/app/oracle/product/8.1.7)
                                 (PROGRAM = extproc)
                               )
                               (SID_DESC =
                                 (GLOBAL_DBNAME = ora817)
                                 (ORACLE_HOME = /oracle/app/oracle/product/8.1.7)
                                 (SID_NAME = ora817)
                               )
                             )
                                   

  # TNSNAMES.ORA Network Configuration File:

                           /oracle/app/oracle/product/8.1.7/network/admin/tnsnames.ora
                           # Generated by Oracle configuration tools.

                           ORA817 =
                             (DESCRIPTION =
                               (ADDRESS_LIST =
                                 (ADDRESS = (PROTOCOL = TCP)(HOST =kimhg.rush.co.kr)(PORT = 1521))
                               )
                               (CONNECT_DATA =
                                 (SERVICE_NAME = ora817)
                               )
                             )
                            INST1_HTTP =
                             (DESCRIPTION =
                               (ADDRESS_LIST =
                                 (ADDRESS = (PROTOCOL = TCP)(HOST =kimhg.rush.co.kr)(PORT = 1521))
                               )
                               (CONNECT_DATA =
                                 (SERVER = SHARED)
                                 (SERVICE_NAME = ora817)
                                 (PRESENTATION = http://admin)
                               )
                             )

 

                            * listener 스타트

                             Listener가 재대로 동작하는지 확인한다.

                             lsnrctl start (리스너 스타트)

                             lsnrctl status (리스너 상태 확인)

                             lsnrctl stop (리스너 종료)

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,039 명
  • 현재 강좌수 :  35,836 개
  • 현재 접속자 :  131 명