행위

오라클 리스너 SQLNET 설정

DB CAFE

Dbcafe (토론 | 기여)님의 2019년 4월 16일 (화) 10:18 판 (tnsnames.ora)
thumb_up 추천메뉴 바로가기


1 오라클 접속 정보 설정(listener.ora, sqlnet.ora, tnsnames.ora)[편집]

  • tnsnames.ora 와 listner.ora

tnsnames.ora 파일은 client에서 Oracle server에 접속할 때 client 에 설정하는 파일. listener.ora 파일은 client가 Oracle server에 접속 server 에 설정 파일.

1.1 listener.ora[편집]

- 위치: 서버에서 $ORACLE_HOME/network/admin/listener.ora - 오라클 서버에서 클라이언트의 요청을 듣고, 클라이언트와의 통신 환경을 설정하는 파일 - 오라클 서버에 존재, 오라클 클라이언트에서 서버로 접속할 때 필요한 프로토콜 및 포트 정보등을 설정하는 파일 - 설정형식:

LISTENER = 
        (DESCRIPTION_LIST = 
              (DESCRIPTION = 
                  (ADDRESS_LIST = 
                        (ADDRESS = (PROTOCOL = TCP)(HOST = 호스트ip)(PORT = 포트번호)) 
                  ) 
                     )
         ) 
     SID_LIST_LISTENER = 
        (SID_LIST = 
            (SID_DESC = 
                 (SID_NAME = SID_name) 
                 (ORACLE_HOME = 오라클위치) 
            ) 
        )
  • LISTENER : 리스너 이름이며 다른 이름으로 설정 가능. SID_LIST_리스너명 항목에서 리스너명과 동일
  • ADDRESS_LIST : ADDRESS들의 모임이며 여러 개의 ADDRESS를 동시에 설정 가능
  • ADDRESS : 데이터베이스 서버의 주소이며 프로토콜, 서버명 및 사용포트로 구성된다.
  • SID_LIST_LISTENER : 리스너가 서비스하는 데이터베이스 정보를 설정하며 SID_LIST_리스너명으로 설정
  • SID_LIST : 해당 리스너 프로세스가 하나 이상의 데이터베이스를 서비스 할 경우에 해당 부분에 여러개의 SID_DESC를 등록한다.
  • SID_NAME : 리스너의 접속을 허용하는 데이터베이스의 SID 명을 지정한다.

- 상태 확인 command : lsnrctl status

1.2 tnsnames.ora[편집]

- 위치: 클라이언트에서 $ORACLE_HOME/network/admin/tnsnames.ora - 클라이언트에서 오라클 서버로 접속할 때 필요한 프로토콜 및 포트번호, 서버주소, 인스턴스등을 설정해주는 파일 - 설정형식:

ORCL =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 122.99.166.149)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = ORCL)
    )
  )
  • ORCL : 서비스이름(클라이언트에서 보이는)
  • DESCRIPTION : 접속하는 대상 데이터베이스 정보
  • ADDRESS : 접속하는 데이터베이스 서버의 리스너 주소
  • CONNECT_DATA : SERVICE_NAME 옵션을 이용하여 접속할 리스너 프로세스가 사용하는 서비스 이름을 지정하거나
               , SID옵션을 이용하여 데이터베이스의 SID명을 지정

- 상태 확인 command : tnsping TNS명 횟수

1.3 sqlnet.ora[편집]

  • 위치 : 서버에서 $ORACLE_HOME/network/admin
  • 클라이언트가 오라클 서버로의 접속 방식을 설정하는 파일
  • 설정 형식 : SQLNET.AUTHENTICATION_SERVIVCES = {none | NTS}

-> 클라이언트가 오라클 서버로 접속할 때 오라클이 어떠한 인증 서비스를 사용할 것인가?

   none으로 설정하면 sys account로 login할 때, 반드시 암호를 입력해야 들어갈 수 있음

NAMES.DIRECTORY_PATH = {tnsnames | onames | hostname} -> 클라이언트가 디비 접속 시 사용하는 string name alias를 무엇을 통해 확인할 것인지 설정.

      1. tnsnames 로컬네임서버
        1. tnsnames는 tnsnames.ora 파일의 정보를 이용하여 확인.
        2. onames 오라클 네임서버
        3. hostname 호스트네임서버

AUTOMATIC_IPC = ON -> AUTOMATIC_IPC = { ON | OFF } ON으로 되어 있는경우 SQL*Net이 같은 alias정보를 가진 local database가 있는지 check

TRACE_LEVEL_CLIENT = OFF -> client쪽에 trace 설정 방법