본문 바로가기

Web Develop Tech/Oracle9i Fundmantal II

ORACLE - 이름 지정 방식 구성

이름 지정 방식 - 목표


  • 이 단원을 마치면 다음을 수행할 수 있다.
    • Host 이름 지정과 로컬 서비스 이름 분석 간의 차이점 설명
    • Oracle Net Manager를 사용하여 다음 사항 구성 :
      • Host 이름 지정 방식
      • 로컬 이름 지정 방식
      • 네트 서비스 이름
      • 간단한 연결 문제 해결

이름 지정 방식 - 개요


  • 이름 지정 방식은 Database 서비스에 대한 연결을 시도할 때 클라이언트 응용 프로그램에서 연결 식별자를 Connect Descriptor로 변환하기 위해 사용한다.

  • Oracle Net은 다음의 다섯 가지 이름 지정 방식 제공
    • Host 이름 지정
      • conn hr/hr @ xxxx ◀는 host, protocol, port, service(SID)가 들어갈 수 있다.
      • @뒤에 나오는 이름은, 실제 실행중인 서버의 컴퓨터 이름이 된다. 이것은 tnsname이 아니다.
      • TCP/IP 프로토콜을 이용하며, 서버 및 클라이언트도 TCP/IP 방식이어야 한다.
    • 로컬 이름 지정
      • tnsnames.ora 를 각 클라이언트가 구성을 해서 DB를 찾아간다.
      • 클라이언트의 수가 늘어나거나, 서버의 변화가 있을 경우에는 tnsnames.ora 파일의 갱신이 필요하고, 유저의 수가 늘어나면, DB가 많은 부담을 느낄 수 있다. 또한, 관리자가 직접 갱신할 것이 많아진다.
    • Directory 이름 지정 - Oracle Names 와의 기능은 동일하지만, 관리 및 프로토콜의 방식에 차이가 있다.
      • 트리구조의 name 서버를 구성할 수 있다. (대기업 등에서 사용한다.)
    • Oracle Names - Oracle 9i 이전 버전에서 사용했던 방식
    • 외부 이름 지정 - 비 오라클 방식
      • 오라클과 호환되는 서드파티 도구나 응용프로그램에서 사용한다.

Host 이름 지정


  • 다음 조건에서는 클라이언트가 Host 이름을 사용하여 Server에 연결할 수 있다.
    • Oracle Net 서비스 클라이언트 소프트웨어를 사용하여 Oracle Database 서비스에 연결하는 경우
      • 클라이언트와 서버 둘다 오라클을 설치했을 경우.
    • 클라이언트와 Server가 TCP/IP 프로토콜을 사용하여 연결하는 경우
    • Host 이름이 DNS 또는 로컬 /etc/hosts 파일과 같은 IP 주소 변환 방식을 통해 분석되는 경우
    • Oracle Connection Manager 또는 보안 옵션과 같은 고급 기능이 사용되지 않는 경우
      • 암호화 등의 고급 기능의 추가적 사용이 불가능하다.

Host 이름 지정 - 클라이언트 측


  • names.directory_path = 사용자가 서버에 접속할 때 사용할 naming 메소드가 무엇인지 기술한다.
    • (,)로 구분하여 여러개의 방식을 지정할 수 있으며, 가장 앞에 지정한 방식이 우선된다.

Host 이름 지정 -서버 측


  • GLOBAL_DBNAME = stc-sun02.us.oracle.com 이 도메인은 서버 파라미터파일(DB_DOMAIN_NAME에 적음)
    • 이것은 HOST 이름 지정방식에서반드시 필요한 구성요소가 된다.
    • 이곳에서는 DB이름을 적는 것이 아니라, 서버의 컴퓨터 이름을 적어준다.

Host 이름 지정 -예제


  • listener.ora 파일 :

    • 서버에서는 위와 같이 지정하였다면, 아래의 클라이언트도 마찬가지로 @ 뒤에 동일하게 적용한다.

  • 클라이언트에서 연결 :




Net Manager를 사용하여 Host 이름 지정 구성


  • 사용방법 중에, 왼쪽은 가능한 방법, 그리고 오른쪽은 선택된 방법이다.
    • 선택해서 올림/내림 버튼으로 우선순위를 지정할 수 있다.
    • 이 작업을 수행하고 나면, Names.Directory_path 가 변경이 된다.


로컬 이름 지정


  • 어떠한 방식을 사용하더라도, tnsnames.ora 가 있어야 한다.
  • 서버측에도 sqlnet.ora가 존재할 수 있다. 추가 구성을 했을 경우

Net Manager를 사용하여 tnsnames.ora 파일구성


  • 서비스 이름에는 @ 뒤에 사용할 이름을 넣는 것이다.





  • 둘 중에 하나만 넣어도 된다. 하지만 SID를 넣는것보다는 서비스 이름을 입력했을 때 더 많은 장점을 제공할 수 있다.
  • Service_name 을 입력하게 되면, INSTANCE를 가리지 않고, DB 서비스에 접속이 가능하다.(병렬서버)구성
  • 실제 DB의 이름이 ORCL이라고 했지만, 별칭을 ORDDD1로 지정했더라도, 사용자는 ORDDD1로 접속할 수 있으며, 이렇게 할 경우 이점은 사용자에게 DB의 이름이 노출되지 않는다는 것이다.
  • 접속유형에 내 전용서버를 할당 받고 싶을 경우, 접속유형을 선택할 수 있다.

  • 테스트를 클릭하면 다른 창이 또 뜨는데, 그곳에는 ID와 PW가 자동으로 입력되어 있고, 그것은 scott/tiger로 되어 있다. 9i 버전이후에는 직접 수정해야 한다.
  • 이 테스트 버튼은 운영체제의 PING과 같으며, 오라클에는 TNSPING 이라는 유틸리티를 이용하여, 서버와 접속상태를 테스트할 수 있다.

  • 과정이 끝나면, 다음과 같이 설정했던 내용의 확인이 가능하다.

▼위의 마법사를 끝내고 나면, 다음의 파일을메모장등을 통해 확인이 가능하다.

TNSNAME.ORA 파일

SQLNET.ORA

클라이언트측 문제 해결


다음 오류 코드는 클라이언트측의 문제와 관련되어 있다.

이러한 문제들은 대부분 작성하는 사용자의 오타에 의해 발생된다.