Print Date: 2010-12-17 Oracle Database Net Service DATE : 2010-12-12 06:25 Writer : 박상수 License : 개인자료 - 본문서는모든사람에게열람및수정모두가능합니다 -
버전수정일작성자변경내역 1.0 2010/12/02 박상수 Oracle Net 제목 : Oracle Database Net Service... - 2 -
목차 1. 시스템구성... 5 1.1. 개요... 5 1.1.1. 정의... 5 1.1.2. 목적... 5 1.1.3. 환경... 5 2. Oracle Net 개념... 6 2.1. 데이터베이스접속방법... 6 2.2. Oracle Net 특징... 6 2.3. Oracle Net 종류... 6 2.4. Oracle Net 구성파일... 7 3. Oracle Net 설정... 9 3.1. Oracle Net 구조... 9 3.2. Listener Process 설정... 9 3.3. 서비스이름설정... 12 4. Oracle Net을이용한접속테스트... 13 4.1. 외부접속 (SQL Developer, Toad, Orange... 13 4.2. 내부접속 (sqlplus... 14 5. 참고자료... 15 제목 : Oracle Database Net Service... - 3 -
표목차 표 1 ORACLE DATABASE 접속방법...6 표 2 이름지정방식...6 표 3 이름지정방식파일서명...7 표 4 LISTENER COMMEND... 11 제목 : Oracle Database Net Service... - 4 -
1. 시스템구성 1.1. 개요 1.1.1. 정의 - 이기종컴퓨터환경에서 Oracle Net을통하여데이터베이스에접근할수있습니다. 반대로운영체제로접근하여데이터베이스에접근했다면그것은 Oracle Net를이용한것이아닙니다. 1.1.2. 목적 - Oracle Net Service의개념과설정파일확인 - Oracle Net 구조 - Oracle Net 리스너프로세스 - Database 접속테스트 1.1.3. 환경 - OS : Windows 7 Home Premium K - Oracle : Red Hat Enterprise Linux 4 X86 + Oracle Database 10g R2 - 프로세서 : Intel core(tm2 Duo CPU P8700 - 메모리 : 4G - 시스템종류 : 32비트 제목 : Oracle Database Net Service... - 5 -
2. Oracle Net 개념 2.1. 데이터베이스접속방법 - 오라클에서는접속방법을두가지로존재합니다.. 접속형태 Telnet, SSH 내용 Telnet, SSH 같은경우에는운영체제에먼저접속하는방식입니다. 이와같은경 우에는 Oracle Net 을이용하지않고단독적으로데이터베이스에접속합니다. Toad, Orange, sqlplus 툴을이용하여운영체제에대한접속없이데이터베이스에직접접속하는방식으 로 Oracle Net 을이용하게됩니다. 표 1 Oracle Database 접속방법 2.2. Oracle Net 특징 - 외부에서운영체제인증없이데이터베이스로직접접속하기위해서보통의경우 Oracle Net이라는아키텍처를이용하게됩니다. 프로토콜에독립성 광범위한플랫폼지원 추척및진단제공 기본보안제공 2.3. Oracle Net 종류 - 이름지정방식은다음과같은네가지종류가존재합니다. 종류 호스트이름방식 내용 대상데이터베이스의호스트이름또는 IP 를이용하여대상데이터 베이스에접속하는방식 로컬이름방식 클라이언트에존재하는 Tnsnames.ora 파일에등록된대상데이터베 이스의정보를이용하여접속하는방식 ( 가장선호하는방식 디렉토리이름지정방식 별도로존재하는디렉토리서버에서대상데이터베이스의정보를모 두관리하는방식 Oracle Name 방식 오라클에서제공하는디렉토리이름지정방식 표 2 이름지정방식 제목 : Oracle Database Net Service... - 6 -
2.4. Oracle Net 구성파일 - 오라클넷을사용하기위해서는몇가지필요한파일이있습니다. 그림 1 이름지정방식파일 - 이름지정방식에서어떤파일을이용하는지확인해보겠습니다.. 종류 내용 Ldap.ora 디렉토리서비스를사용할경우클라이언트와데이터베이스서버에 존재하는파일로해당디렉토리서버를엑세스할수있는정보를 저장합니다. Names.ora Oracle Names 방식의오라클디렉토리이름지정방식을이용할경 우 oracle Names 서버에서모든데이터베이스의정보를저장하고있 는파일입니다. Tnsnames.ora 클라이언트에존재하며, 데이터베이스의정보를저장하고있는파일 로로컬이름방식을사용할경우이용하게됩니다. Listener.ora 데이터베이스서버에존재하는파일로접속을요청하는클라이언트 와실제데이터베이스를연결해주는역할을수행하는리스너프로 세스의정보를저장하는파일입니다. Sqlnet.ora 클라이언트와데이터베이스서버양쪽에존재하는파일로오라클넷 의옵션설정등을저장하는파일입니다. 표 3 이름지정방식파일서명 제목 : Oracle Database Net Service... - 7 -
- 오라클넷을구성하는파일들은리눅스 / 유닉스의경우 $ORACLE_HOME/network/admin 디렉토리에 존재하며, 윈도우일경우에는 %ORACLE_HOME%/network/admin 폴더에존재하게됩니다. 파일이존재하는지확인해보겠습니다. [2010-12-02 04:39:40]-[oracle@calmmass:~/product/10g] $ cd $ORACLE_HOME/network/admin [2010-12-02 04:40:09]-[oracle@calmmass:~/product/10g/network/admin] $ ls listener.ora samples shrept.lst tnsnames.ora 제목 : Oracle Database Net Service... - 8 -
3. Oracle Net 설정 3.1. Oracle Net 구조 - 사용자접속요청시작 -> User Process 생성 -> tnsnames.ora 파일의정보수집 -> 리스너프로세스 -> listener.ora 정보수집 -> User Process 요청에의하여리스너프로세스는 Server Process 기동 -> 리스너프로세스는 Server Process 정보를유저프로세스에게전송 -> User Process는리스너프로세스와연결종료 -> User Process와 Server Process 직접연결 - 결론은클라이언트의 tnsnames.ora파일과데이터베이스서버의 listener.ora 파일이존재하고올바르게설정되어있다면정상적으로접속이가능합니다. 3.2. Listener Process 설정 - 리스너프로세스를설정하기위해서는 listener.ora 파일만올바르게설정하여리스너프로세스를기 동시켜주면됩니다.. 여기에서는 lsnrctl 명령어를이용하여상태를확인해보겠습니다. [2010-12-02 05:04:25]-[oracle@calmmass:~/product/10g/network/admin] $ lsnrctl status.. 생략.. to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP(HOST=calmmass.com(PORT=1521 STATUS of the LISTENER ------------------------ Alias Version LISTENER TNSLSNR for Linux: Version 10.2.0.4.0 - Production.. 생략.. Listener Parameter File Listener Log File /home/oracle/product/10g/network/admin/listener.ora /home/oracle/product/10g/network/log/listener.log Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp(HOST=calmmass.com(PORT=1521 (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc(KEY=EXTPROC0 Services Summary... Service "PLSExtProc" has 1 instance(s. Instance "PLSExtProc", status UNKNOWN, has 1 handler(s for this service... Service "testdb" has 1 instance(s. Instance "testdb", status READY, has 1 handler(s for this service..... 생략.. 제목 : Oracle Database Net Service... - 9 -
- Listener.ora 파일확인 ( LISTENER, SID_LISTENER [2010-12-02 05:15:29]-[oracle@calmmass:~/product/10g/network/admin] $ cat listener.ora # listener.ora Network Configuration File: /home/oracle/product/10g/network/admin/listener.ora # Generated by Oracle configuration tools. SID_LIST_LISTENER = // 리스너가서비스하는데이터베이스정보설정하며 // SID_LIST_[ 리스너명 ] 으로설정합니다. (SID_LIST = // 하나이상의데이터베이스를서비스할경우여러개의 // SID_DESC 를등록가능합니다. (SID_DESC = (SID_NAME = PLSExtProc // 리스너접속을허용하는데이터베이스의 SID 명을지정 (ORACLE_HOME = /home/oracle/product/10g // Oracle Home Directory (PROGRAM = extproc // 프로그램실행명령어 LISTENER = // 리스너이름이며다른이름으로설정가능, SID_LIST_[ 리스너명 ] // 항목에서리스너명과동일해야합니다. (DESCRIPTION_LIST = (DESCRIPTION = // ADDRESS : 데이터베이스서버의주소이며 Protocol, Server Name(IP or Hostname, port (ADDRESS = (PROTOCOL = TCP(HOST = calmmass.com(port = 1521 (ADDRESS = (PROTOCOL = IPC(KEY = EXTPROC0 제목 : Oracle Database Net Service... - 10 -
- Listener 자주사용하는명령어 명령어 내용 lsnrctl start lsnrctl stop lsnrctl reload lsnrctl status lsnrctl version lsnrctl trace 리스너프로세스시작리스너프로세스종료리스너프로세스재시작리스너프로세스상태확인리스너버전확인리스너 TRACE 표 4 LISTENER COMMEND 제목 : Oracle Database Net Service... - 11 -
3.3. 서비스이름설정 - 서비스이름은클라이언트의 tnsnames.ora 파일에의해데이터베이스에접근합니다. [2010-12-02 05:52:49]-[oracle@calmmass:~/product/10g/network/admin] $ cat tnsnames.ora TESTDB = (DESCRIPTION = (ADDRESS_LIST = // 서비스이름 // 접속하고자하는대상데이터베이스정보 // ADDRESS 들의모임 // ADDRESS : 접속하고자하는데이터베이스서버의리스너를호출하기위한주소정보 // Protocol, Hostname, Port 를지정할수있습니다. (ADDRESS = (PROTOCOL = TCP(HOST = calmmass.com(port = 1521 (CONNECT_DATA = // SERVICE_NAME 옵션을이용하여접속할리스너프로세스가사용 (SERVICE_NAME = testdb // 하는서비스이름을지정하거나또는 SID 옵션을이용 // 데이터베이스의 SID 명을지정 EXTPROC_CONNECTION_DATA = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = IPC(KEY = EXTPROC0 (CONNECT_DATA = (SID = PLSExtProc (PRESENTATION = RO 제목 : Oracle Database Net Service... - 12 -
4. Oracle Net을이용한접속테스트 4.1. 외부접속 (SQL Developer, Toad, Orange - Windwos 환경에서오라클클라이언트를설치합니다. - 관리자모드로설치를하게되면 %ORACLE_HOME%/network/admin 폴더에샘플파일이생성됩니다. - 위에정의한 tnsnames.ora에접속할데이터베이스의정보를설정합니다. - Tnsnames.ora 설정이정상적으로완료되었다면 ping테스트를반드시진행하시기바랍니다. 관련명령어는 tnsping [ 서비스이름 ] 을수행하면아래와같은메시지가나오게됩니다. c:\> tnsping testdb.. 생략.. Used TNSNAMES adapter to resolve the alias Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP(HOST = localhost(port = 1521 (CONNECT_DATA = (SERVICE_NAME = testdb OK (10 msec - 이후툴을이용하여데이터베이스에접속하시면됩니다. 제목 : Oracle Database Net Service... - 13 -
4.2. 내부접속 (sqlplus - Sqlplus로접속할경우 Oracle Net를사용하지않고 localhost에있는데이터베이스에접근이가능합니다. 단, 데이터베이스의설정에따라서모든유저가접속가능한것은아닙니다. - 서비스이름을기준으로접속테스트하겠습니다. [ 설명 ] 정상적으로네트워크 ( 서비스이름 가연결되어있는지확인하는방법입니다. 이부분은리스너까지만전달됩니다. 사용자가유저프로세스를생성하고유저프로세스가리스너프로세스를통해데이터베이스까지접속테스트를아래와같이진행하며밀리세컨드로시간이출력됩니다. [2010-12-02 06:18:24]-[oracle@calmmass:~/product/10g/network/admin] $ tnsping testdb.. 생략.. Used TNSNAMES adapter to resolve the alias Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP(HOST = localhost(port = 1521 (CONNECT_DATA = (SERVICE_NAME = testdb OK (0 msec [ 설명 ] 오라클넷을이용한접속테스트입니다. hr유저의패스워드는 oracle이며접속할서비스이름은 testdb 입니다. [2010-12-02 06:07:03]-[oracle@calmmass:~/product/10g/network/admin] $ sqlplus hr/oracle@testdb // Oracle Net 리스너프로세스이용한커넥션 [2010-12-02 06:18:33]-[oracle@calmmass:~/product/10g/network/admin] $ sqlplus / as sysdba // 일반적인로컬접속으로리스너프로세스사용안함 [ 설명 ] 리스너로그를통해리스너프로세스는어떤일을하는지확인해보도록하겠습니다. [2010-12-02 05:38:56]-[oracle@calmmass:~/product/10g/network/log] $ tail -f listener.log 02-DEC-2010 06:12:33 * ping * 0 // tnsping 에대한결과를로그에기록 02-DEC-2010 06:14:03 * (CONNECT_DATA=(SERVICE_NAME=testdb(CID=(PROGRAM=sqlplus(HOST=calmmass.com(USER =oracle * (ADDRESS=(PROTOCOL=tcp(HOST=127.0.0.1(PORT=33430 * establish * testdb * 0 // sqlplus hr/oracle@testdb 명령어를수행하여접속이완료되었을경우로그가남게됩니다. // sqlplus / as sysdba 명령어는수행하면리스너로그에기록되지않습니다.( 리스너사용안함 제목 : Oracle Database Net Service... - 14 -
5. 참고자료 사이트 [ 교육 ] 서진수샘오라클취업반 [ 세미나 ] 김영조샘 [ 책 ] 초보자를위한 Oracle 10g(81P ~ 91P 저자권순용, 김지한, 황오현 [ 책 ] 실전오라클백업과복구 (18P ~ 27P 저자서진수 [ 구글머신 ] Database Net Service Administrator s Guide 제목 : Oracle Database Net Service... - 15 -