>>wanna 님께서 쓰시길<<
:: 아! 먼저 이것부터 질문할께요.
:: 전 win98 쓰는데 도스창에서 lsnrctl start 하는 거랑 윈도우 아이콘 start database
:: 하는 거랑의 차이는 몬가요?
오라클 데몬은 두개 입니다.(물론 정확하게 설명하자면 더 많지만 편의상 DB Writer, Log Writer, Sys Monitor 등등은 묶어서 그냥 DB 데몬이라고 보시면 됩니다.) DB 데몬이 있고, 리스너 데몬이 있습니다.
start database 하는 것은 db 데몬을 띄우는 거고, lsnrctl start 하는 것은 리스너
데몬을 띄우는 겁니다.
DB 데몬만 떠 있어도 IPC 접속에 의한 로컬 연결은 가능하지만, TCP/IP 등을 이용하여
원격에서 오라클에 접속하도록 하려면 반드시 리스너 데몬을 띄워야 하겠지요.
:: 도스창에서 리스너 뛰우면 java 연결이 안되고 윈도우 아이콘으로 뛰워야 연결이
:: 되네요.. 그리고 저의 전역데이타명이 oracle 인데
::
:: String url = "jdbc:oracle:thin:@localhost:1521:orcl"; //oracle 로 하면 안되요.
:: Connection con = DriverManager.getConnection(url,"scott","tiger");
::
:: 이유좀 설명해주심 감사하겠슴다.
자바 씬 드라이버의 경우에는 로컬이라도 Net8을 이용하여 접속합니다.(사실 리스너
를 이용하지 않는 로컬 접속이란 것은 단지 관리자를 위한 목적으로 사용된다고 보시면
됩니다.)
따라서 자바 JDBC를 이용하여 접속하자면 반드시 DB 데몬과 리스너 데몬이 떠 있어야
하겠지요.
::
:: 저의 listener.ora 입니다.
:: # D:\ORACLE8I\ORA81\NETWORK\ADMIN\LISTENER.ORA Configuration File:d:\Oracle8i\Ora81\network\admi
:: n\listener.ora
:: # Generated by Oracle Net8 Assistant
::
:: LISTENER =
:: (DESCRIPTION_LIST =
:: (DESCRIPTION =
:: (ADDRESS_LIST =
:: (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
:: )
:: )
:: )
::
:: SID_LIST_LISTENER =
:: (SID_LIST =
:: (SID_DESC =
:: (SID_NAME = oracle)
:: (ORACLE_HOME = d:\Oracle8i\Ora81)
:: (PROGRAM = extproc)
:: )
:: )
::
:: tnsname.ora 입니다.
:: # D:\ORACLE8I\ORA81\NETWORK\ADMIN\TNSNAMES.ORA Configuration File:d:\Oracle8i\Ora81\network\admi
:: n\tnsnames.ora
:: # Generated by Oracle Net8 Assistant
::
:: WANNAEGO.DONGBU.THRUNET.COM =
:: (DESCRIPTION =
:: (ADDRESS_LIST =
:: (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
:: )
:: (CONNECT_DATA =
:: (SID = oracle)
:: (PRESENTATION = RO)
:: )
:: )
::
:: 마지막으로요.. ^.^; 리스너 뛰울시 그냥 lsnrctl 만 하면 안되고
:: 꼭 start 도 해주어 야 하나요? lsnrctl 만 뛰우고 status 하면
:: LSNRCTL> status
:: (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))에 연결되었습니
:: 다
:: TNS-12541: TNS:리스너가 아닙니다
:: TNS-12560: TNS:프로토콜 어댑터 오류
:: TNS-00511: 리스너가 아닙니다
:: 32-bit Windows Error: 61: Unknown error
:: LSNRCTL>
:: 이런 메세지가 나오고 start 까지 해주면
:: LSNRCTL> status
:: (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))에 연결되었습니다
:: 리스너의 상태------------------------
:: 별칭 LISTENER
:: 버전 TNSLSNR for 32-bit Windows: Version 8.1.5.0.0 - Production
::
:: 시작 날짜 18-APR-01 06:03:34
:: 업타임 0 일 0 시간. 0 분. 3 초
:: 트레이스 수준 off
:: 보안 OFF
:: SNMP OFF리스너 매개변수 파일 d:\Oracle8i\Ora81\network\ad
:: min\listener.ora
:: 리스너 로그 파일 d:\Oracle8i\Ora81\network\log\listener.log
:: 서비스 요약...
:: oracle has 1 서비스 핸들러
:: 명령이 성공적으로 수행되었습니다
:: LSNRCTL>
:: 이렇게 뜨는데 이것이 정상인지요..
:: 감사함다.
lsnrctl start를 해주는 것이 정상입니다. lsnrctl을 치면 리스너 콘솔모드로 들어
가지만 lsnrctl start를 하면 바로 리스너가 시동되죠...
리스너가 시동되어 있는 상태에서 lsnrctl status를 쳐보세요. 그럼 리스너 상태만
화면에 표시해 줄겁니다. 또한 lsnrctl stop을 치면 떠 있는 리스너를 종료시킵니다.
애초에 lsnrctl이란 것은 이렇게 여러 목적을 위해서 만들어진 거죠...:)
|