1. listener.ora (default location = $ORACLE_HOME/network/admin)
LISTENER =
SID_LIST_LISTENER= (SID_LIST = (SID_DESC = (ORACLE_HOME=/oracle/app/oracle/product/11.2.0) (SID_NAME=LINUXORCL) ) ) ADR_BASE_LISTENER = /oracle/app/oracle |
- LISTENER : 리스너 이름이며 다른 이름으로 설정 가능. SID_LIST_리스너명 항목에서 리스너명과 동일
- ADDRESS_LIST : ADDRESS들의 모임이며 여러 개의 ADDRESS를 동시에 설정 가능
- ADDRESS : 데이터베이스 서버의 주소이며 프로토콜, 서버명 및 사용포트로 구성된다.
- SID_LIST_LISTENER : 리스너가 서비스하는 데이터베이스 정보를 설정하며 SID_LIST_리스너명으로 설정
- SID_LIST : 해당 리스너 프로세스가 하나 이상의 데이터베이스를 서비스 할 경우에 해당 부분에 여러개의
SID_DESC를 등록한다.
- GLOBAL_DBNAME : 전역 데이터베이스 이름을 지정하며 생략 가능하다.
- ORACLE_HOME : 오라클 홈 디렉토리의 위치를 지정한다.
- SID_NAME : 리스너의 접속을 허용하는 데이터베이스의 SID 명을 지정한다.
리스너 파라메터
- LOG_DIRECTORY_리스너명 : 로그 파일이 저장될 경로 이름을 설정
- LOG_FILE_리스너명 : 로그가 기록될 파일명 설정
- LOGGING_리스너명 : 로그 기능의 활성화 여부 설정 (ON 또는 OFF)
- PASSWORD_리스너명 : 리스너를 중단시킬 경우 필요한 비밀번호를 설정
[LINUXORCL]linux-single:/oracle> lsnrctl status <---리스너 상태체크 LSNRCTL for Linux: Version 11.2.0.3.0 - Production on 02-AUG-2013 00:19:39 Copyright (c) 1991, 2011, Oracle. All rights reserved. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=linux-single)(PORT=1521))) 리스너 시작 [LINUXORCL]linux-single:/oracle> lsnrctl start <-- 리스너 시작 LSNRCTL for Linux: Version 11.2.0.3.0 - Production on 02-AUG-2013 00:22:02 Copyright (c) 1991, 2011, Oracle. All rights reserved. Starting /oracle/app/oracle/product/11.2.0/bin/tnslsnr: please wait... TNSLSNR for Linux: Version 11.2.0.3.0 - Production Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=linux-single)(PORT=1521))) 리스너 상태체크 [LINUXORCL]linux-single:/oracle> lsnrctl status <-- 리스너 상태체크 LSNRCTL for Linux: Version 11.2.0.3.0 - Production on 02-AUG-2013 00:22:26 Copyright (c) 1991, 2011, Oracle. All rights reserved. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=linux-single)(PORT=1521))) |
2. tnsnames.ora 설정 (location = $ORACLE_HOME/network/admin)
LINUXORCL = |
- LINUXORCL : 서비스이름
- DESCRIPTION : 접속하고자 하는 대상 데이터베이스 정보
- ADDRESS : 접속하고자 하는 데이터베이스 서버의 리스너를 호출하기 위한 주소정보
- CONNECT_DATA : SERVICE_NAME 옵션을 이용하여 접속할 리스너 프로세스가 사용하는 서비스 이름을 지정
하거나 또는 SID옵션을 이용하여 데이터베이스의 SID명을 지정
tnsping test C:\Users\Boeok>tnsping LINUXORCL TNS Ping Utility for 32-bit Windows: Version 11.2.0.3.0 - Production on 01-8월 - Copyright (c) 1997, 2011, Oracle. All rights reserved. 사용된 매개변수 파일:
C:\Users\Boeok>
sqlplus 접속시도
SQL*Plus: Release 11.2.0.3.0 Production on 목 8월 1 16:05:03 2013 Copyright (c) 1982, 2011, Oracle. All rights reserved.
SQL> 클라이어트에서 서버로 접속된 상황 |
3. SQLNET.ORA
클라이언트와 데이터베이스 서버 양쪽에 존재하는 파일로 오라클 넷을 옵션 설정등을 저장하는 파일.
즉. 오라클 서버로 어떻게 접속할 것인지를 설정하는 파일
SQLNET.AUTHENTICATION_SERVICES= (NTS | none) 클라이언트가 오라클 서버로 접속할 때 오라클이 어떠한 인증 서비스를 사용할 것인가 none : sys 계정으로 로그인할때 비밀번호를 입력해야만 들어 갈수 있게 설정 sqlplus "/as sysdba" 가 안먹힘
NAMES.DIRECTORY_PATH= (TNSNAMES | ONAMES | HOSTNAME) 클라이언트가 디비 접속 시 사용하는 STRING NAME ALIAS를 무엇을 통해 확인할지를 결정하는 것
TNSNAME : 로컬네임서버를 확인하겠다는 의미, (TNSNAME.ORA파일 확인)
ONAMES : 오라클 네임서버를 확인하겠다는 의미이며 추가적으로 NETWORK ADDRESS를 설정해줘야 함.
HOSTNAME : 호스트네임서버를 확인하겠다는 의미이며 TNSNAME.ORA파일은 필요없이 DNS나 WINDOWS의 경우 HOST파일(C:\WINDOWS\SYSTEM32\DRIVERS\ETC)에 등로되어 있으면 된다 주의사항 --> 공백이 절대 존재해선 안된다 NAMES.DIRECTORY_PATH=(TNSNAMES, HOSTNAME) X NAMES.DIRECTORY_PATH=(TNSNAMES,HOSTNAME) O
만약 공백 존재시 다음과 같은 에러가 발생할수 있다. ORA-12170 : TNS: Connect timeout occured ORA-12560 : TNS: protocol adapter error
tcp.validnode_checking = yes
tcp.invited_nodes = (IP1, IP2, IPn) <- 정의된 IP만 접근 나머지는 모두 접근 거부 tcp.excluded_nodes=(IP1, IP2, IPn) <- 정의된 IP만 접근거부, 나머지는 모두 접근 가능 sqlnet.expire_time = 10 <-- 세션을 정리하는 시간 10분에 한번씩 신호를 보내서 새션을 정리하는 옵션
|
Point : 클라이언트와 서버의 접속이 안될때 확인해야할 방법중 가장 우선은 방화벽이 설정되어 있는지 아닌지를 확인해야한다 os에서 방화벽을 실행시켜두면 리스너와 클라이어인트설정이 잘되어도 접속이 되지 않는다.
그 다음으로는 위에서 보여준것과 같이 listener, tnsname, sqlnet.ora에 공백이 존재해서도 안된다.
'Oracle > Admin' 카테고리의 다른 글
Data Pump 사용방법 (0) | 2013.08.02 |
---|---|
리스너가 db를 인식 못한다고 나올때... (0) | 2013.08.02 |
SYS, SYSTEM PASSWORD를 잃어버려 DB접속을 못할 경우. (0) | 2013.08.01 |
Oracle User Password 기간 무제한 설정 (0) | 2013.08.01 |
오라클 넷(Oracle Net)의 개념 (0) | 2013.08.01 |