1. listener.ora (default location = $ORACLE_HOME/network/admin)
LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = linux-single)(PORT = 1521)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) )
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))) TNS-12541: TNS:no listener TNS-12560: TNS:protocol adapter error TNS-00511: No listener Linux Error: 111: Connection refused Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521))) TNS-12541: TNS:no listener TNS-12560: TNS:protocol adapter error TNS-00511: No listener Linux Error: 111: Connection refused
리스너 시작
[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 System parameter file is /oracle/app/oracle/product/11.2.0/network/admin/listener.ora Log messages written to /oracle/app/oracle/diag/tnslsnr/linux-single/listener/alert/log.xml Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=linux-single)(PORT=1521))) Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=linux-single)(PORT=1521))) STATUS of the LISTENER ------------------------ Alias LISTENER Version TNSLSNR for Linux: Version 11.2.0.3.0 - Production Start Date 02-AUG-2013 00:22:04 Uptime 0 days 0 hr. 0 min. 0 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File /oracle/app/oracle/product/11.2.0/network/admin/listener.ora Listener Log File /oracle/app/oracle/diag/tnslsnr/linux-single/listener/alert/log.xml Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=linux-single)(PORT=1521))) (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521))) The listener supports no services The command completed successfully
리스너 상태체크
[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))) STATUS of the LISTENER ------------------------ Alias LISTENER Version TNSLSNR for Linux: Version 11.2.0.3.0 - Production Start Date 02-AUG-2013 00:22:04 Uptime 0 days 0 hr. 0 min. 24 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File /oracle/app/oracle/product/11.2.0/network/admin/listener.ora Listener Log File /oracle/app/oracle/diag/tnslsnr/linux-single/listener/alert/log.xml Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=linux-single)(PORT=1521))) (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521))) Services Summary... Service "LINUXORCL" has 1 instance(s). Instance "LINUXORCL", status READY, has 1 handler(s) for this service... 사용준비완료 Service "LINUXORCLXDB" has 1 instance(s). Instance "LINUXORCL", status READY, has 1 handler(s) for this service... The command completed successfully |
2. tnsnames.ora 설정 (location = $ORACLE_HOME/network/admin)
LINUXORCL = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 122.99.166.149)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = 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월 - 2013 16:02:49
Copyright (c) 1997, 2011, Oracle. All rights reserved.
사용된 매개변수 파일: F:\app\Boeok\product\11.2.0\client_1\network\admin\sqlnet.ora
별칭 분석을 위해 TNSNAMES 어댑터 사용 (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 122.99.166.149 )(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = LINUXORCL)))에 접속하려고 시도 하는 중 확인(30밀리초) <-- 해당 서버와의 응답시간
C:\Users\Boeok>
sqlplus 접속시도
C:\Users\Boeok>sqlplus test/test@LINUXORCL
SQL*Plus: Release 11.2.0.3.0 Production on 목 8월 1 16:05:03 2013
Copyright (c) 1982, 2011, Oracle. All rights reserved.
다음에 접속됨: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - Production With the Partitioning, OLAP, Data Mining and Real Application Testing options
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에 공백이 존재해서도 안된다.
출처: http://boeok.tistory.com/category/Oracle/Admin?page=2 [Secret]